Skip to content

MicroPython 1.28 → 1.29 pin move: retool checklist #1

Description

@bdbarnett

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

  • 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.
  • micropython#19667 (BUILD= qstr pollution) is still OPEN upstream — the never-pass-BUILD= rule survives 1.29; watch for the promised community PR.

Patch-series re-port risks

  • TinyUSB bumped to 0.21.0 — usbif's patches (extension header, IAD policy, speed-aware descriptor service, PHY handoff) sit directly on this; expect a re-port pass, coordinate with the usbif program.
  • IDF v5.5.2 — re-test usbif's open P4 defects against it (P4 HS-host detects nothing — 'suspect IDF P4 host support'; P4 FS-device EP0 stall). The bump may resolve or reshape them.
  • Verify all series profiles apply/reverse cleanly against v1.29.0 before it becomes the pin.

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/writeblocks return semantics reversed (bool → 0/negative) — grep board code and examples.
  • Encoding validation strict: only utf-8/utf8/ascii; latin-1 now raises LookupError — grep the tree.
  • esp32 firmware ~+1.6% — check the P4/S3 partition headroom with usbif + LVGL aboard.

Consumers to re-verify after the move

  • lvgl-bindings/fonts regenerate (standing rule on any pin move)
  • wasm port / Workbench simulator boot
  • vst3 engine build (unix/windows make ports; MICROPY_FORCE_32BIT was removed from unix — confirm nothing references it)
  • rp2 pico-sdk 2.3.0 — Pico 2 W BLE still green

No date; the pin moves when a program needs it, per house practice.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions