Modernize Python CI matrix and GitHub Actions

Open
#404 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
68/100
Issue type
Refactor
Clarity
Clearly specified
Activity status
Quiet
Tech stack
github-actions, python
Domain
ci-cd, devops

Research direction

Start with .github/workflows/pytest.yml and .github/workflows/flake8.yml, then compare their Python versions and action definitions with the support metadata in pyproject.toml. Run the existing test and lint commands while checking dependency installation across Python 3.9–3.12. Done means the workflows use the supported matrix, modern SHA-pinned actions, dependency caching, and remain required for pull requests targeting dev.

Written by the indexing model from the issue text.

Description

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.

Dominant language
Python
Stars
4.9k
Forks
759
Avg merge
2d 20h
Merged PRs (30d)
3

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from DedSecInside/TorBot

All issues in DedSecInside/TorBot

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.