Skip to content

Modernize Python CI matrix and GitHub Actions #404

Description

@KingAkeem

Is your feature request related to a problem? Please describe.

TorBot declares Python >=3.9 and advertises support through Python 3.12 in pyproject.toml, but the current GitHub Actions coverage does not validate that support consistently:

  • pytest.yml runs only on Python 3.10.
  • flake8.yml runs on Python 3.8, 3.9, and 3.10 even though the documented minimum is now 3.9.
  • Both workflows still use actions/checkout@v3 and actions/setup-python@v3.
  • Lint and test coverage are split across overlapping workflows without a shared supported-version matrix.

The existing runs are green, so this is support and maintenance drift rather than an active outage. A dependency or syntax regression affecting Python 3.9, 3.11, or 3.12 could currently merge without being detected.

Describe the solution you'd like

Modernize the Python CI workflows so they validate the versions TorBot actually claims to support.

Suggested acceptance criteria:

  • Run the test suite across Python 3.9, 3.10, 3.11, and 3.12.
  • Remove Python 3.8 from the lint matrix unless project metadata is intentionally changed to support it again.
  • Upgrade actions/checkout and actions/setup-python to current major versions and pin them to full commit SHAs.
  • Enable pip dependency caching with the relevant lock or requirements files as cache inputs.
  • Keep linting and tests required for pull requests targeting dev.
  • Confirm every supported Python version can install the project and complete the test suite.
  • Update the advertised Python classifiers if any currently listed version cannot be supported.

Python 3.13 can be added after dependency compatibility is verified; it does not need to block this issue.

Describe alternatives you've considered

  • Keep testing only Python 3.10. This is simpler, but it does not substantiate the support range published in project metadata.
  • Reduce the declared support range to Python 3.10 only. That would avoid a matrix, but it would unnecessarily narrow compatibility without first testing the currently advertised versions.
  • Add Python 3.13 or 3.14 immediately. This may create unrelated dependency work, so it is better handled after the declared 3.9–3.12 range is reliable.

Additional context

The current workflows are .github/workflows/pytest.yml and .github/workflows/flake8.yml. Recent Actions runs are passing, and a repository-wide issue search found no existing ticket covering the Python support matrix or Actions-version modernization.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions