Skip to content

ci: test the supported Python 3.9 and 3.10 runtimes #41

Description

@abhiksark

Motivation

Pythonlings declares Python 3.9+ support, but CI currently tests only 3.11–3.13. The supported floor needs continuous validation so contributors do not accidentally use newer-only syntax or APIs.

Current evidence

  • pyproject.toml declares requires-python = ">=3.9" and classifiers for Python 3.9+.
  • .github/workflows/ci.yml currently tests Python 3.11, 3.12, and 3.13.
  • The project uses a tomli fallback for Python versions below 3.11.

Exact scope

Expand the main CI matrix to Python 3.9 through 3.13 and reconcile any contributor guidance that contradicts the retained Python 3.9 runtime contract.

Acceptance checklist

  • The CI test matrix covers exactly 3.9, 3.10, 3.11, 3.12, and 3.13.
  • Every matrix entry installs the development dependencies and runs the existing test, fixture verification, build, and installed-wheel smoke coverage.
  • Public contributor guidance continues to state Python 3.9+ support accurately.
  • No source change raises the effective minimum supported runtime above Python 3.9.

Explicit exclusions

Do not add unsupported Python versions, drop newer-runtime coverage, change release publication workflow policy, or broaden CI beyond this runtime-contract gap.

Likely files

  • .github/workflows/ci.yml
  • Readme.md and/or docs-site contributor guidance if reconciliation is needed

Verification

python -m pytest -q
pythonlings --root tests/fixtures/passing_curriculum verify

Confirm the pull-request workflow shows all five Python versions and inspect the workflow YAML for a 3.9–3.13 matrix.

Sprint coordination

See the sprint Discussion. This issue is unassigned and is not a reservation.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: ciContinuous integration and automationdev sprintPythonlings Community Dev Sprint August 2026enhancementNew feature or requestgood first issueGood for newcomerssize: SSmall, focused contribution

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions