Two things about the revision string the C modules report (audioecho.__revision__ and friends), both seen on 2026-09-27 building the ESP32-P4 image on v0.6.2.
It's stamped when CMake configures, not when it builds. An incremental rebuild in a reused build directory, after the audiodsp checkout moved from a branch to the v0.6.2 tag, flashed the old gc518ba0 string over v0.6.2 code. Deleting CMakeCache.txt fixed it. Any firmware built in a reused build dir after moving the checkout carries a stale revision, and the effects program's board gates read that string as the pin.
It names v0.0.3, not the release. At the v0.6.2 commit it reads v0.0.3-283-g1c89b03: the release tags are lightweight, and git describe without --tags names the last annotated tag. The hash is right; the name isn't what a reader expects.
Suggested fix: compute the revision at build time (a custom command that regenerates the header when HEAD changes), and use git describe --tags in micropython.cmake and micropython.mk (and the CircuitPython path), or have the release chain cut annotated tags. The CPython wheel's _audiodsp.__revision__ should follow the same rule.
Two things about the revision string the C modules report (
audioecho.__revision__and friends), both seen on 2026-09-27 building the ESP32-P4 image on v0.6.2.It's stamped when CMake configures, not when it builds. An incremental rebuild in a reused build directory, after the audiodsp checkout moved from a branch to the v0.6.2 tag, flashed the old
gc518ba0string over v0.6.2 code. DeletingCMakeCache.txtfixed it. Any firmware built in a reused build dir after moving the checkout carries a stale revision, and the effects program's board gates read that string as the pin.It names v0.0.3, not the release. At the v0.6.2 commit it reads
v0.0.3-283-g1c89b03: the release tags are lightweight, andgit describewithout--tagsnames the last annotated tag. The hash is right; the name isn't what a reader expects.Suggested fix: compute the revision at build time (a custom command that regenerates the header when HEAD changes), and use
git describe --tagsinmicropython.cmakeandmicropython.mk(and the CircuitPython path), or have the release chain cut annotated tags. The CPython wheel's_audiodsp.__revision__should follow the same rule.