bugfix: add libatomic1 to python variant, fixes node 24 crash #11

Merged
Gilles merged 2 commits from fix/python-libatomic1 into master 2026-10-28 08:34:02 +00:00
Owner

Closes #10.

What

  • Add libatomic1 to python.Dockerfile's apt-get install, fixing the node: error while loading shared libraries: libatomic.so.1 crash introduced by the Node 22->24 bump (#8).
  • Add a pull_request trigger to ci.yml so this (and future) fixes get validated before merge -- needed to put ci-base into prod mode. build.sh gained a DO_PUSH flag (default true, set to false outside master) so a PR run still builds, verifies and smoke-tests every variant, it just skips the final registry push and the push-only side effects (Argus size report, package linking).

Verified locally

  • docker build -f python.Dockerfile --build-arg PYTHON_VERSION=3.14 . succeeds; node/git/curl/jq/pnpm all run inside the built image.
  • Trimmed copy of build.sh with DO_PUSH=false builds+verifies a variant and correctly skips docker push.

🤖 Generated with Claude Code

https://claude.ai/code/session_014HiJrn6J6vhyFfC2qyY4uh

Closes #10. ## What - Add `libatomic1` to `python.Dockerfile`'s apt-get install, fixing the `node: error while loading shared libraries: libatomic.so.1` crash introduced by the Node 22->24 bump (#8). - Add a `pull_request` trigger to `ci.yml` so this (and future) fixes get validated before merge -- needed to put `ci-base` into prod mode. `build.sh` gained a `DO_PUSH` flag (default true, set to false outside `master`) so a PR run still builds, verifies and smoke-tests every variant, it just skips the final registry push and the push-only side effects (Argus size report, package linking). ## Verified locally - `docker build -f python.Dockerfile --build-arg PYTHON_VERSION=3.14 .` succeeds; `node`/`git`/`curl`/`jq`/`pnpm` all run inside the built image. - Trimmed copy of `build.sh` with `DO_PUSH=false` builds+verifies a variant and correctly skips `docker push`. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_014HiJrn6J6vhyFfC2qyY4uh
The Node 22->24 bump (Renovate PR #8) broke every python-* build: the
node binary copied from node:24-trixie-slim now dlopen()s
libatomic.so.1, which python:*-slim doesn't ship and git/curl/jq don't
pull in as a dependency. node crashed with "error while loading shared
libraries: libatomic.so.1: cannot open shared object file" the moment
npm tried to install pnpm, failing the whole build step.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014HiJrn6J6vhyFfC2qyY4uh
ci: run the build on pull_request, skip the push
All checks were successful
ci / build (pull_request) Successful in 5m27s
c5eff5822a
Needed before ci-base can go into prod mode: branch protection requires
a check that runs on pull_request, and this job currently only builds
on push to master.

build.sh's DO_PUSH (default true, set to false by the workflow outside
master) lets every variant still build, get verified (baseline tools +
release-notes/publish-release smoke test) and have its size recorded
on a PR -- it just skips the final `docker push`, since a PR has no
business publishing a half-reviewed image under these shared tags. The
registry login and the two push-only side effects (Argus size report,
linking the package) are gated the same way, by github.ref.

Closes #10

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014HiJrn6J6vhyFfC2qyY4uh
Gilles merged commit 36610ab615 into master 2026-10-28 08:34:02 +00:00
Gilles deleted branch fix/python-libatomic1 2026-10-28 08:34:02 +00:00
Sign in to join this conversation.
No description provided.