Repository navigation
ci: drop Python 3.9 from the CI test matrices - #379
Conversation
ubuntu-latest is now Ubuntu 26.04, which has no Python 3.9 build for actions/setup-python. The 3.9 job fails and fail-fast cancels the rest of the matrix, so every PR shows red. Drop 3.9 from code_quality.yml and from the macOS cross-user matrix that mirrors it, and remove the virtualenv<21 pin that applied only below 3.10. requires-python is unchanged. Signed-off-by: Sean Tang <171081544+seant-aws@users.noreply.github.com>
| matrix: | ||
| os: [ubuntu-latest, windows-latest, macos-latest] | ||
| python-version: ['3.9', '3.10', '3.11', '3.12', '3.13', '3.14'] | ||
| python-version: ['3.10', '3.11', '3.12', '3.13', '3.14'] |
There was a problem hiding this comment.
Should fix: This PR fixes only half the Python 3.9 / ubuntu-latest breakage. .github/workflows/release_publish.yml:70-86 still runs on ubuntu-latest with python-version: '3.9' and pins virtualenv<21. The commit message says Ubuntu 26.04 has no 3.9 build for actions/setup-python, so the next release's build/publish job will fail at "Set up Python". PRs go green again, but releases stay broken.
Fix: in the same change, move the release build to a supported version such as '3.12' and drop the virtualenv<21 pin, or pin that job to an older runner image that still has 3.9. You could also drop 3.9 from the hatch.toml test matrix so local and CI matrices match.
There was a problem hiding this comment.
Addressed: release_publish.yml now sets up Python 3.10 instead of 3.9, so the release build no longer depends on a 3.9 build that ubuntu-latest lacks.
| matrix: | ||
| os: [ubuntu-latest, windows-latest, macos-latest] | ||
| python-version: ['3.9', '3.10', '3.11', '3.12', '3.13', '3.14'] | ||
| python-version: ['3.10', '3.11', '3.12', '3.13', '3.14'] |
There was a problem hiding this comment.
Should fix: This PR fixes only half the Python 3.9 / ubuntu-latest breakage. .github/workflows/release_publish.yml:70-86 still runs on ubuntu-latest with python-version: '3.9' and pins virtualenv<21. The commit message says Ubuntu 26.04 has no 3.9 build for actions/setup-python, so the next release's build/publish job will fail at "Set up Python". PRs go green again, but releases stay broken.
Fix: in the same change, move the release build to a supported version such as '3.12' and drop the virtualenv<21 pin, or pin that job to an older runner image that still has 3.9. You could also drop 3.9 from the hatch.toml test matrix so local and CI matrices match.
There was a problem hiding this comment.
Addressed: release_publish.yml now sets up Python 3.10 instead of 3.9, so the release build no longer depends on a 3.9 build that ubuntu-latest lacks.
|
Claude review · advisory Reviewed Open: 0 blocking · 0 should-fix · 0 nit. ✅ Nothing blocking. Fix or reply to each thread; the next revision's review re-checks open threads and resolves those it agrees are handled. Resolving a thread yourself also closes it. Later revisions review only what changed. |
ubuntu-latest no longer provides Python 3.9, so the PublishToPyPI job's setup-python step would fail on the next release. Signed-off-by: Sean Tang <171081544+seant-aws@users.noreply.github.com>
Fixes: no tracking issue; CI on mainline is failing (example run: https://github.com/OpenJobDescription/openjd-sessions-for-python/actions/runs/42066678696).
What was the problem/requirement? (What/Why)
ubuntu-latestnow resolves to Ubuntu 26.04, which has no Python 3.9 foractions/setup-python("The version '3.9' ... was not found for Ubuntu 26.04"). The 3.9 job fails and fail-fast cancels the rest of the matrix.What was the solution? (How)
Drop 3.9 from the CI matrix in
code_quality.ymland in the macOS cross-user matrix that mirrors it, and remove thevirtualenv<21pin that applied only below 3.10, the same change aws-deadline/deadline-cloud-worker-agent made in #1130. The matrix lives in this repo's caller workflow, so no change to the shared reusable workflow is needed.What is the impact of this change?
CI no longer tests Python 3.9.
requires-pythonstays>=3.9; worker-agent #1130 also raised it to>=3.10, which is a separate maintainer decision for this package.Also moves the
PublishToPyPIjob inrelease_publish.ymlfrom Python 3.9 to 3.10 so the next release does not fail atsetup-python.How was this change tested?
actionlintpasses on the changed workflow(s); this PR's own CI run is the functional test.Was this change documented?
N/A, CI-only.
Is this a breaking change?
No.
Does this change impact security?
No.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.