Skip to content

ci: drop Python 3.9 from the CI test matrices - #379

Merged
seant-aws merged 2 commits into
OpenJobDescription:mainlinefrom
seant-aws:fix-ci-py39
Nov 6, 2026
Merged

seant-aws merged 2 commits into
OpenJobDescription:mainlinefrom
seant-aws:fix-ci-py39

Conversation

@seant-aws

@seant-aws seant-aws commented Nov 5, 2026 •

Copy link
Copy Markdown
Contributor

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-latest now resolves to Ubuntu 26.04, which has no Python 3.9 for actions/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.yml and in the macOS cross-user matrix that mirrors it, and remove the virtualenv<21 pin 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-python stays >=3.9; worker-agent #1130 also raised it to >=3.10, which is a separate maintainer decision for this package.

Also moves the PublishToPyPI job in release_publish.yml from Python 3.9 to 3.10 so the next release does not fail at setup-python.

How was this change tested?

actionlint passes 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.

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']

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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']

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@github-actions

github-actions Bot commented Nov 5, 2026 •

Copy link
Copy Markdown

Claude review · advisory

Reviewed e6d6e48 (changes since 881308e): 0 new, 2 resolved.

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.

@seant-aws
seant-aws marked this pull request as ready for review November 6, 2026 16:20
AlexTranAmz
AlexTranAmz previously approved these changes Nov 6, 2026
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>
@seant-aws
seant-aws merged commit 63fb399 into OpenJobDescription:mainline Nov 6, 2026
26 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants