Files
ServerKit/scripts
Juan DenisandClaude Opus 5 12bf23d24b fix(test): provision_python check must follow main()'s call order
The python-provisioning job failed on ubuntu:22.04 with every apt lookup coming
back empty — software-properties-common not found, so the deadsnakes fallback
could not even be attempted and provision_python fell through to the source
build.

The installer was not broken. main()'s order is

    identify_system -> choose_pkg_manager -> ensure_bootstrap_tools -> ... -> provision_python

and ensure_bootstrap_tools is what refreshes the package index — its own comment
says minimal images "ship with empty package indexes". This test called
provision_python without it, so on a fresh container the apt lists were empty
and the FIRST `apt-get install` had no candidate for anything. A test that calls
production functions out of order invents failures; "fixing" install.sh to
satisfy it would have made the real installer worse.

Why it was not caught locally: my verification ran `apt-get update` before the
test, while the CI step is `command -v bash || { apt-get update && install bash; }`
— Ubuntu already ships bash, so that update never runs. I had verified a machine
state CI does not have. Re-verified by running the CI command VERBATIM.

All eight matrix images, exact CI invocation, 7 passed / 0 failed each:
  ubuntu:22.04 -> 3.12 (deadsnakes)   debian:12  -> 3.11
  ubuntu:24.04 -> 3.12                debian:13  -> 3.13
  rockylinux:9 -> 3.12                almalinux:9 -> 3.12
  fedora:40    -> 3.12                opensuse/leap:15.5 -> 3.11

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-14 17:08:13 -04:00
..