From 36667740cbd8c7db17304be0a1eea201590d25e0 Mon Sep 17 00:00:00 2001 From: hathach Date: Tue, 30 Jun 2026 13:35:35 +0700 Subject: build.py: prefer pico/pico2 for rp2040 CI; skill: drop one-time 0.20.0 backfill note - ci_preferred_boards: rp2040 -> raspberry_pi_pico, raspberry_pi_pico2 so the one-board CI/metrics build uses a Pico (the first-alphabetical board failed). - make-release skill: the metrics backfill was a one-time 0.20.0 task, not a recurring release step; keep only the CI auto-compare note. Co-Authored-By: Claude Opus 4.8 (1M context) --- .claude/skills/make-release/SKILL.md | 14 -------------- tools/build.py | 1 + 2 files changed, 1 insertion(+), 14 deletions(-) diff --git a/.claude/skills/make-release/SKILL.md b/.claude/skills/make-release/SKILL.md index 2c6388937..49ca29313 100644 --- a/.claude/skills/make-release/SKILL.md +++ b/.claude/skills/make-release/SKILL.md @@ -82,17 +82,3 @@ Then create a GitHub release from the `X.Y.Z` tag. ## 5. Code size vs the previous release (CI-automatic) On the GitHub **release** event, `build.yml`'s `code-metrics` job builds the matrix with `--target tinyusb_metrics`, combines per-board `metrics.json`, downloads the **previous** tag's `metrics.json` (`gh release download $PREV -p metrics.json`), runs `metrics.py compare`, and uploads both `metrics.json` and `metrics_compare_-.md` to the release. No manual step — **provided the previous release has a `metrics.json` asset**. After releasing, confirm those two assets appeared. - -**Backfilling a missing baseline** (e.g. 0.20.0 predates the upload): do NOT try to graft current metrics tooling onto the old tag — the build system, `hw/bsp`, examples and `src/` are co-evolved (current `family_support.cmake` renamed cmake funcs the old example `CMakeLists` call; current `hw/bsp` uses newer `src/` APIs), so every build fails. Build the **old tag's own tree** and post-process its linker maps (0.20.0 already emits `*.elf.map` via `-Map`): - -```bash -git worktree add && cd -# one board per arm-gcc family, all examples: -# for fam: python3 tools/get_deps.py ; (cd examples && cmake -B build- -DBOARD= -GNinja -DCMAKE_BUILD_TYPE=MinSizeRel . && cmake --build build-) -# old tag lacks linkermap/metrics.py — use the CURRENT checkout's copies: -for m in $(find examples -name '*.elf.map'); do python3 /tools/linkermap/linkermap.py -j "$m"; done -python3 /tools/metrics.py combine -j -m -f "$(pwd)/src" -o metrics $(find examples -name '*.map.json') -gh release upload metrics.json -``` - -`metrics.py` keys units by **basename**, so the local absolute `-f /src` filter stays comparable to CI's `-f tinyusb/src`. Caveat: this is arm-gcc-only unless you also build the other CI toolchains (riscv/aarch64/…); files only built by those will show as spurious "added" in the next release's compare. diff --git a/tools/build.py b/tools/build.py index 86bc30d28..fe0d302c8 100755 --- a/tools/build.py +++ b/tools/build.py @@ -39,6 +39,7 @@ ci_skip_boards = { } ci_preferred_boards = { + 'rp2040': ['raspberry_pi_pico', 'raspberry_pi_pico2'], 'samd2x_l2x': ['metro_m0_express'], 'samd5x_e5x': ['metro_m4_express'], 'stm32h7': ['stm32h743eval'] -- cgit v1.3.1