DedSecInside / DedSecInside/TorBot

Modernize Python CI matrix and GitHub Actions

Aperta
#404 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub
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

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.