DedSecInside / DedSecInside/TorBot

Modernize Python CI matrix and GitHub Actions

Open
#404 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
4.9k
Forks
755
Avg merge
2d 20h
Merged PRs (30d)
3

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.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.