build(images): give the Elixir images jq, and take Python out of pipeline-tools #269
Loading…
Reference in a new issue
No description provided.
Delete branch "sean/images-jq-no-python"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Tests should not reach for an interpreter: a fixture that calls python3 -c pays interpreter startup on every call, and one invoked a few hundred times in a test makes that the dominant cost. elixir-builder and elixir-tester had no jq; both now install and prove it, VERSION 3 each. The tester installs its own because it copies only /opt and rebar3 from the builder. Measured, not assumed: no line installs python3 in either Elixir image, yet elixir-builder:v2 answers python3 3.12.13 with fourteen python3 rpms, because on AlmaLinux 10 dnf IS Python (dnf is a symlink to dnf-3) and dnf5 is not packaged for this release. So dropping it from an install list does nothing, and dnf remove python3 is refused because dnf is protected and requires python3-dnf. rpm can do it: a probe on this exact base digest showed rpm -e --nodeps over the python3/dnf/libdnf set leaves zero python3 rpms, no interpreter on disk, and a working gcc, jq, git, make, tar, unzip and perl. pipeline-tools takes that removal now, since nothing in it uses Python and its package manager is build-time only: every consumer uses it as a COPY source stage with zero commands and copies out only kubectl and yq. The Elixir images keep Python for now because binjovi's make contract-check runs two unittest suites over PRODUCTION Python, the node helper and kernel services that run on hosts during a kernel roll; the interpreter cannot leave until that is partitioned. Four controls confirmed red. All sixteen guards pass. https://claude.ai/code/session_01KZoQin34jeyt6nDGqvJA76