DedSecInside / DedSecInside/TorBot
Modernize Python CI matrix and GitHub Actions
- Lingua principale
- Python
- Stelle
- 4.9k
- Fork
- 755
- Merge medio
- 2g 20h
- PR unite (30g)
- 3
Descrizione
**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.
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Direzione di ricerca
Inizia con .github/workflows/pytest.yml e .github/workflows/flake8.yml, quindi confronta le rispettive versioni di Python e definizioni delle action con i metadati di supporto in pyproject.toml. Esegui i comandi esistenti per i test e il lint, verificando al contempo l’installazione delle dipendenze con Python 3.9–3.12. Il lavoro è completato quando i workflow usano la matrice supportata, action moderne con SHA pinned e il caching delle dipendenze, e rimangono obbligatori per le pull request indirizzate a dev.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- github-actions, python
- Ambito
- ci-cd, devops
- Tipo di issue
- Refactoring
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Tranquilla
- Chiarezza
- Specificata chiaramente
- Idoneità per principianti
- 68/100