mirror of
https://github.com/alexhopeoconnor/DFTE.git
synced 2026-10-13 15:51:18 +10:00
51 lines
2.8 KiB
Markdown
51 lines
2.8 KiB
Markdown
# Development and releases
|
||
|
||
Released applications should use a public Git tag. While changing DFTE with a sibling library, select a local `symlink://` or `file://` dependency from an ignored PlatformIO override rather than changing tracked application dependencies.
|
||
|
||
## Target pins
|
||
|
||
DFTE uses one maintained ESP32 fixture baseline:
|
||
|
||
| Test selector | pioarduino platform | Framework stack | Purpose |
|
||
| --- | --- | --- | --- |
|
||
| `esp32` | `55.03.311` | Arduino-ESP32 3.3.11 / ESP-IDF 5.5.5 | Maintained baseline |
|
||
|
||
These are test-harness fixture lanes, not DFTE package dependencies: a consuming
|
||
application owns its `platform` pin and tests the complete framework/toolchain
|
||
stack. Do not copy a compiler or toolchain package between lanes; each pinned
|
||
pioarduino platform resolves its matched framework, uploader, and toolchain.
|
||
|
||
All DFTE ESP8266 test and example environments pin framework commit `521ae60`
|
||
for the upstream Postmortem large-jump linker fix. The exact rationale and
|
||
update rule are in the shared [ESP8266 linker-workaround
|
||
note](https://github.com/alexhopeoconnor/arduino-home-assistant/blob/main/docs/ESP8266-LINKER-WORKAROUND.md).
|
||
|
||
For the pioarduino release-to-Core mapping and cache-collision diagnosis, see
|
||
[DeviceFramework's toolchain guide](https://github.com/alexhopeoconnor/DeviceFramework/blob/main/docs/TOOLCHAINS.md).
|
||
|
||
`./scripts/test.sh` uses the persistent PlatformIO Core/cache shared by the
|
||
maintained framework repositories:
|
||
`${XDG_CACHE_HOME:-$HOME/.cache}/arduino-framework-platformio/core-3.3.11`.
|
||
All maintained ESP32 lanes pin this exact graph, avoiding repeated downloads
|
||
while keeping stale global `tool-esptoolpy` metadata from shadowing the current
|
||
pioarduino uploader. Override it with `DFTE_PLATFORMIO_CORE_DIR`,
|
||
`DFTE_PLATFORMIO_PACKAGES_DIR`, and `DFTE_PLATFORMIO_CACHE_DIR` for another
|
||
disk; the script never clears that cache or pins one compiler separately.
|
||
|
||
Start a release with `bump-version.sh`. It updates package metadata and canonical installation snippets, then creates the changelog section. Replace its generated TODO with the release summary and update any behavioural documentation before running:
|
||
|
||
```bash
|
||
./scripts/bump-version.sh vMAJOR.MINOR.PATCH
|
||
# Replace the generated CHANGELOG TODO with the release summary.
|
||
./scripts/check-docs.sh
|
||
./scripts/test.sh compile --platform esp8266
|
||
./scripts/test.sh compile --platform esp32
|
||
./scripts/test.sh examples --platform esp8266
|
||
./scripts/test.sh examples --platform esp32
|
||
./scripts/prepare-release.sh vMAJOR.MINOR.PATCH --tag
|
||
```
|
||
|
||
Push the branch and annotated tag. GitHub Actions repeats the board-free compile checks, validates the package, and creates a GitHub Release from that version’s changelog section. It does not publish to the PlatformIO Registry.
|
||
|
||
Back to [documentation](README.md) · [project overview](../README.md).
|