Skip to content

ci: drop Python 3.9 from the CI test matrix - #250

Draft
seant-aws wants to merge 1 commit into
OpenJobDescription:mainlinefrom
seant-aws:fix-ci-py39
Draft

seant-aws wants to merge 1 commit into
OpenJobDescription:mainlinefrom
seant-aws:fix-ci-py39

Conversation

@seant-aws

Copy link
Copy Markdown

Fixes: no tracking issue; CI on mainline is failing (example run: https://github.com/OpenJobDescription/openjd-cli/actions/runs/42106317837).

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, 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. Note: release_publish.yml also builds on Python 3.9 on ubuntu-latest, so the next release will hit the same error; left unchanged here.

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. 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']
python-version: ['3.10', '3.11', '3.12']

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Nit: Removing 3.9 from the matrix means no CI job runs on 3.9 on any OS, but pyproject.toml still has requires-python = ">=3.9" and the Python :: 3.9 classifier. Only ubuntu-latest lacks a 3.9 build; windows-latest and macos-latest can still run it. With nothing testing 3.9, a change that breaks 3.9 at runtime (e.g. stdlib APIs added in 3.10) would merge unnoticed and ship to 3.9 users.

You could keep 3.9 in the matrix and drop only the broken combination:

exclude:
  - os: ubuntu-latest
    python-version: '3.9'

The other option is to raise requires-python to 3.10 and remove the 3.9 classifier.

@github-actions

github-actions Bot commented Nov 5, 2026

Copy link
Copy Markdown

Claude review · advisory

Reviewed f5e41cd (full review): 1 finding.

Open: 0 blocking · 0 should-fix · 1 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.

This branch has not been deployed

No deployments
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.

1 participant