Skip to content

Pin the Python 3.8 CI job to ubuntu-22.04 and stop fail-fast - #28

Merged
dmccoystephenson merged 1 commit into
mainfrom
trace/pin-python-3.8-runner
Oct 30, 2026
Merged

dmccoystephenson merged 1 commit into
mainfrom
trace/pin-python-3.8-runner

Conversation

@dmccoystephenson

Copy link
Copy Markdown
Member

Summary

  • The test (3.8) entry of the Build matrix is pinned to ubuntu-22.04. ubuntu-latest now resolves to Ubuntu 26.04, and actions/setup-python@v5 publishes no 3.8 build for that image, so every run failed at install (The version '3.8' with architecture 'x64' was not found for Ubuntu 26.04). 3.10 and 3.12 stay on ubuntu-latest.
  • fail-fast: false is set, so an interpreter that cannot be installed no longer cancels the other two jobs and leaves the run with no signal.
  • The job is named test (${{ matrix.python }}), so the check names stay test (3.8), test (3.10) and test (3.12), the same as before. Any required-check configuration on main keeps matching.
  • The 3.8 floor that the README promises is kept: 3.8 is not dropped from the matrix and requires-python is unchanged.

Closes #26

ubuntu-22.04 is the first option listed in #26. Branch protection could not be inspected from this session, which is why the job name is kept stable.

Test plan

  • python3 -m unittest locally on Python 3.8.10: Ran 67 tests ... OK. No client or test code is changed.
  • Build on this PR: test (3.8) installs Python 3.8 on ubuntu-22.04 and passes, and test (3.10) and test (3.12) pass on ubuntu-latest. This PR's own CI run is the evidence that the fix works.

Notes

  • trace-client-java: no Java-visible behavior changed (CI configuration only).
  • .github/workflows/* is on the dev loop's do-not-auto-merge list, so this PR is left for the owner to merge.
  • Open release PRs chore: release 0.4.2 #25 and chore: release 0.4.2 #27 are left as they are. Their Build runs should go green on a re-run once this is merged and they are updated with main, although both still need the three missing version bumps described in their reviews.
  • The version tag is added even when it pushes an event past MAX_TAGS #16 is deferred again. It needs an owner decision on the MAX_TAGS cap and a matching change in trace-client-java.

This PR description was drafted during a Gardener session (https://github.com/Stephenson-Software/gardener).

🤖 Generated with Claude Code


drafted by Claude on behalf of Daniel Stephenson

ubuntu-latest now resolves to Ubuntu 26.04, for which setup-python
publishes no 3.8 build, so every Build run failed at install and
fail-fast cancelled 3.10 and 3.12. The 3.8 entry now runs on
ubuntu-22.04, the others stay on ubuntu-latest, and the job keeps its
test (<python>) name so check names do not change.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@dmccoystephenson

Copy link
Copy Markdown
Member Author

Self-review of head trace/pin-python-3.8-runner (one commit, .github/workflows/build.yml only).

Rubric:

  • Scope: PASS. Only .github/workflows/build.yml is changed, and every changed line serves CI: test (3.8) can no longer install Python 3.8 on ubuntu-latest (Ubuntu 26.04), so every Build run fails #26: the runner is pinned per matrix entry, fail-fast is off, and the job name stays stable.
  • Tests-new: PASS (not applicable). No public name was added.
  • Tests-fix: PASS. This is a CI fix, and the workflow run is the regression evidence. Before the change, test (3.8) failed at setup-python on runs 40644211569 and 40807343754 (The version '3.8' with architecture 'x64' was not found for Ubuntu 26.04). On this PR, run 41020510171 shows Image: ubuntu-22.04, Successfully set up CPython (3.8.18) and Ran 67 tests.
  • Sibling structure / sibling renames: PASS (not applicable).
  • Docs: PASS. README line 177 ("CI runs them on Python 3.8, 3.10 and 3.12") and line 173 (python -m unittest -v) still match the workflow. Nothing in the README names a runner image.
  • Issue resolution: PASS. CI: test (3.8) can no longer install Python 3.8 on ubuntu-latest (Ubuntu 26.04), so every Build run fails #26's first proposed fix (pin 3.8 to an older image) and its optional fail-fast: false are both applied, and 3.8 stays in the matrix.
  • CI: PASS. test (3.8), test (3.10) and test (3.12) are all green on the PR head.
  • Stdlib-only / Py3.8 floor / never-raises / log level / version agreement / exports: PASS. No client or test code changed, and the 3.8 job is green.
  • Java parity: no Java-visible behavior changed.

Judgment calls flagged for the owner:

Merge: .github/workflows/* is on the do-not-auto-merge list, so this PR is left open for the owner. Once it is merged, release PRs #25 and #27 can produce a meaningful Build result after they are updated with main.

This review was drafted during a Gardener session (https://github.com/Stephenson-Software/gardener).


drafted by Claude on behalf of Daniel Stephenson

@dmccoystephenson
dmccoystephenson merged commit 4c2089f into main Oct 30, 2026
3 checks passed
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.

CI: test (3.8) can no longer install Python 3.8 on ubuntu-latest (Ubuntu 26.04), so every Build run fails

1 participant