MicroPython v1.29.0 bump & fixes - #242
Open
Gadgetoid wants to merge 11 commits into
Open
Conversation
Gadgetoid
force-pushed
the
ci/micropython-1.29.0
branch
2 times, most recently
from
August 27, 2026 10:48
b7bfcae to
a8a209b
Compare
The u-prefixed module aliases (ujson, ucollections, ubinascii, usocket, ustruct, ussl) are gone, and urequests is now just a shim over requests.
Follow badgeware's ci/micropython.sh pattern: pin MicroPython and pimoroni-pico, own the board definition in board/, cache the prepare and build steps. CI previously downloaded a prebuilt pimoroni-enviro .uf2 from pimoroni-pico releases, tying Enviro's MicroPython version to that repo's release cadence. board/ copies PICO_W_ENVIRO and micropython-enviro.cmake at the pinned SHA. dir2uf2 v0.1.0 reads the filesystem offset and size from the firmware's binary info instead of hardcoding them, and emits the filesystem-only and combined .uf2 in one pass.
Add ci/python.sh and ci/ruff.toml following the badgeware pattern, and fix the findings: mostly whitespace, quote style, redundant f-strings and comma imports. Substantive ones are 'is None' / 'not x' for '== None' / '== False', exception chaining on the wifi connect failures, and hasattr in config_defaults. Exclude enviro/mqttsimple.py as a vendored copy of umqtt.simple.
mkdir_safe compares against errno.EEXIST without importing errno, so the EEXIST path raised NameError instead of ignoring the existing directory - which is every reading after the first, once readings/ or uploads/ exists.
upload_readings iterated os.ilistdir("uploads") while os.remove'ing entries
from it, which can make littlefs skip or repeat entries mid-walk. os.listdir
reads the whole listing up front.
ssl.wrap_socket treats a str cert as a filename and only inline data as bytes, so passing the file's contents as a str made it try to open the PEM body as a path.
Reported version was still 0.0.10 three releases on. Closes #198.
DEVICES was a string, so ${DEVICES[0]} expanded to the whole list and the
unquoted -z test failed outright with more than one device attached. mpremote
also writes EEXIST to stderr, so the 'already exists' check never matched.
pimoroni-pico's modules_py/modules_py runs genversion.sh with the build dir as cwd, so git describe finds nothing and the frozen version.py comes out empty. Write it from the pinned checkouts in ci_genversion instead, matching badgeware.
phew dropped phew.ntp; the Pico MicroPython build freezes ntptime instead. Switch sync_clock_from_ntp to ntptime, raise its 1 second socket timeout to the 10 phew.ntp used, and set the pico RTC here rather than relying on phew.ntp.fetch() doing it as a side effect. Drop the stale note about provisioning pages failing to load after a reset - that was phew sharing one headers dict across every Response. Pinned to phew ci/picks, which carries mergeable upstream PRs on top of main; move to phew main once they land.
Gadgetoid
force-pushed
the
ci/micropython-1.29.0
branch
from
August 27, 2026 11:07
a8a209b to
81bfcb5
Compare
The name suggests it sets the C++ exception flags, but pico_cxx_options already sets all four by default and pico_runtime links it, so those are redundant. The -specs=nano.specs it adds to the link is the whole effect. Measured on enviro, against the 1200K region: with nano.specs 1165444 B 94.84% __verbose_terminate_handler 1181584 B 96.16% neither 1223764 B 99.59% 42KB of the 58KB is the C++ demangler, reachable only through libsupc++'s verbose terminate handler - overriding that handler is the conventional fix and recovers it without touching libc. The remaining 16KB is newlib-nano's smaller malloc and friends, which is an orthogonal decision. Ten pimoroni board module files include this, so it applies to all of them.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.