MicroPython v1.29.0 shipped 2026-08 (we pin 1.28.0 in cmods). Brad's headline: the new manifest c_module() — declaring user C modules in manifest.py, intended to replace USER_C_MODULES — is the better story for 'cmods is optional' and the reason to retool. Checklist of everything else in the notes that touches us, for whenever the pin moves (a deliberate phase, not a drive-by):
The retool opportunity
Patch-series re-port risks
New upstream capability with completeness implications
Breaking changes to sweep for
Consumers to re-verify after the move
No date; the pin moves when a program needs it, per house practice.
MicroPython v1.29.0 shipped 2026-08 (we pin 1.28.0 in cmods). Brad's headline: the new manifest
c_module()— declaring user C modules in manifest.py, intended to replaceUSER_C_MODULES— is the better story for 'cmods is optional' and the reason to retool. Checklist of everything else in the notes that touches us, for whenever the pin moves (a deliberate phase, not a drive-by):The retool opportunity
c_module()in manifests replaces the USER_C_MODULES symlink-glob discovery — this can retire workspace-craft's entire symlink include/exclude section (new-module drift, stale-symlink persistence) in favor of explicit per-build declarations. Design the cmods shape around it.Patch-series re-port risks
New upstream capability with completeness implications
network.USBD_NCM(Ethernet-over-USB, off by default) — a new USB device class exists upstream; usbif's costume roster should deliver it or record the exclusion with cause (org design principle 1).Breaking changes to sweep for
machine.SDCard.readblocks/writeblocksreturn semantics reversed (bool → 0/negative) — grep board code and examples.latin-1now raises LookupError — grep the tree.Consumers to re-verify after the move
No date; the pin moves when a program needs it, per house practice.