Skip to content

MicroPython v1.29.0 bump & fixes - #242

Open
Gadgetoid wants to merge 11 commits into
mainfrom
ci/micropython-1.29.0
Open

MicroPython v1.29.0 bump & fixes#242
Gadgetoid wants to merge 11 commits into
mainfrom
ci/micropython-1.29.0

Conversation

@Gadgetoid

Copy link
Copy Markdown
Member

No description provided.

@Gadgetoid
Gadgetoid force-pushed the ci/micropython-1.29.0 branch 2 times, most recently from b7bfcae to a8a209b Compare August 27, 2026 10:48
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
Gadgetoid force-pushed the ci/micropython-1.29.0 branch from a8a209b to 81bfcb5 Compare August 27, 2026 11:07
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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant