Skip to content

Choose a tag to compare

@github-actions github-actions released this 01 Sep 14:05
· 33 commits to main since this release
a9ade6f

Warning

natmod's x86 arch is broken in this release for every MicroPython tag
through v1.28.0 (upstream's own -m32 toolchain path) — the ubuntu:26.04
bump below made natmod_host's pinned gcc-13-multilib mismatch the base
image's actual gcc (15), so any real x86 build referencing libgcc
(soft-float, 64-bit arithmetic) fails with LinkError: incompatible arch.
v1.29.0+ (cross-prefixed toolchain) and every other arch are unaffected.
Fixed in v0.6.1.

Added

  • A pre-1.0/alpha warning at the top of README.md. Nothing said the config
    schema and CLI can still change between releases without a deprecation cycle;
    this repo has no 1.0.0 yet and no stability guarantee to imply otherwise.
  • A .gitignore (*), dropped into output-dir the first time anything
    writes into it, both platforms.
    A fresh mpyhouse/ cibuildmp itself
    creates should not need a matching entry hand-added to the caller's own
    top-level .gitignore — verified live against a real a7p build (an
    existing output-dir that had never had one gained mpyhouse/.gitignore
    on the next build). Checked by existence, not written unconditionally:
    never overwrites one already there, in case a caller wants something else
    (e.g. a real !keep-this exception).

Changed

  • BREAKING: the mipsel cell is manylinux_2_41_mipsel, not
    manylinux_2_39_mipsel.
    Every identifier naming it changes with it
    (v1.29.0-manylinux_2_39_mipsel -> v1.29.0-manylinux_2_41_mipsel), and a
    caller still naming the old one gets matches no known identifier — there is
    no alias. The rename follows its toolchain: docker/manylinux_2_41_mipsel.Dockerfile
    no longer installs gcc-mipsel-linux-gnu/libc6-dev-mipsel-cross at all,
    because Debian 13 "Trixie" dropped the mipsel port and Ubuntu's archive lost
    those packages with it. It pins a Bootlin tarball instead
    (mips32el--glibc--stable-2025.08-1, gcc 14.3.0, glibc 2.41-70, URL +
    sha256), the same version+URL+sha256 model the four embedded toolchain images
    already use — so this image no longer depends on an apt archive for an
    architecture upstream has abandoned. 2_39 was apt's cross-glibc version, so
    keeping the name would have made a real PEP 600 tag claim a floor its image no
    longer has (record 0031's principle, record 0068's decision).
    Verified on real artifacts, not inferred: a full examples/usercmodule build
    (including the MICROPY_STANDALONE static-libffi deplibs step) links, and
    the result runs under qemu-mipsel with all three upstream modules importing
    — ELF 32-bit LSB executable, MIPS, statically linked. One real difference
    from the apt toolchain: the ELF is now mips32 (r1) rather than mips32r2,
    which widens the hardware it runs on rather than narrowing it.
    The image is published and pinned under the new package name
    (ghcr.io/ballistics-lab/manylinux_2_41_mipsel@sha256:eee14e84…), verified by
    a real build that pulls it with no CIBMP_UNIX_MANYLINUX_2_41_MIPSEL_DOCKER_IMAGE
    override at all. Its resources/pinned_docker_images.toml row was empty
    between the rename and that publish — a GHCR digest is per package name, so
    the pre-rename digest was never a reference this cell could carry, and an
    empty group is the state dockerrun.image_for() already defines as "exists,
    nothing published yet".
  • Every pypa base digest re-pinned, and every image digest with it. The
    manylinux_2_28_* bases and pypa-tracker.Dockerfile's nine mirrored
    references move to pypa's 2026.09.01-1 release (Dependabot's own grouped PR),
    pinned_pypa_images.toml's 34 pins move with them via
    bin/update_docker.py --pypa, and all 15 images were republished and re-pinned
    with --images. --check reports zero drift for the first time in a while:
    fourteen ghcr.io pins had been one publish behind their own :latest since a
    docker/** push to main republished everything with no repin PR behind it —
    the trigger removed above.