summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/reference/hil_boards.md2
-rw-r--r--docs/superpowers/specs/2026-08-19-ci-build-family-filter-design.md13
2 files changed, 14 insertions, 1 deletions
diff --git a/docs/reference/hil_boards.md b/docs/reference/hil_boards.md
index e8f364646..678f7f0ed 100644
--- a/docs/reference/hil_boards.md
+++ b/docs/reference/hil_boards.md
@@ -12,7 +12,7 @@
| espressif_s3_devkitm | device, host | esptool | espressif_s3_devkitm, espressif_s3_devkitm-DMA | Use TS3USB30 mux to test both device and host |
| feather_nrf52840_express | device | jlink | | |
| max32666fthr | device | openocd | | |
-| metro_m4_express | device, dual | jlink | | pl23x; audio_test_freertos skipped: samd51 iso-IN capture fails (arecord EIO) |
+| metro_m4_express | device, dual | jlink | metro_m4_express | pl23x; audio_test_freertos skipped: samd51 iso-IN capture fails (arecord EIO) |
| lpcxpresso11u37 | device | jlink | | |
| lpcxpresso55s28 | device | jlink | | |
| ra4m1_ek | device | jlink | | |
diff --git a/docs/superpowers/specs/2026-08-19-ci-build-family-filter-design.md b/docs/superpowers/specs/2026-08-19-ci-build-family-filter-design.md
index b10f5b4ae..524568aeb 100644
--- a/docs/superpowers/specs/2026-08-19-ci-build-family-filter-design.md
+++ b/docs/superpowers/specs/2026-08-19-ci-build-family-filter-design.md
@@ -146,6 +146,19 @@ the existing `test_hil_util.BottomLayer` structural tests.
Fail-open survives where it belongs: an *unclassified* path or any exception widens to `ALL` on
every axis.
+### A class no example enables selects nothing
+
+`src/class/bth` is the live instance: no example's `tusb_config.h` sets `CFG_TUD_BTH`, so
+rules 8-10 resolve to no examples and a bth-only PR builds nothing and runs nothing. That is
+the empty-means-empty ruling applied to classes, and it is deliberate — nothing compiles the
+file, so nothing can validate it, and the master-push build is the net.
+
+Worth stating plainly because the exposure changed: GHA used to rebuild everything for such
+a PR by accident, through the empty-`families` bug in `build.yml`. With that fixed, both
+providers now correctly build nothing, so `tud_bt_*` can be broken by a green PR.
+`TestClassesWithNoEnablingExample` pins the set to `{bth}` so a second class cannot enter
+this state unnoticed.
+
### Why `hw/mcu/**` is rule 7 and not "full"
`hw/mcu` is overwhelmingly dependency territory — `tools/get_deps.py` has 87 entries under it,