Keep the six-codebase migration-risk run as a labelled regression set

Aperta
#239 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
35/100
Tipo di issue
Funzionalità
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
django, git, python
Ambito
cli, databases, testing

Direzione di ricerca

Start with cli/tests/test_migration_risk.py and the release checklist to see how existing false alarm classes and release checks are represented. Then trace the orm-lens migration-risk --format json entry point and its output fields before designing the pinned corpus, labels, and comparison script. Done means all 407 findings are labelled, the script reports zero differences on the current release, and the release checklist includes the manual run.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

enhancement python

The run behind the 407-alarms write-up (NetBox, PostHog, authentik, Healthchecks, Plane, paperless-ngx) produced a verdict for every critical finding: 2 real, 405 false. The nine false-alarm classes are already cut down into tests in cli/tests/test_migration_risk.py, but the full run is not checked in, so a new class of false alarm would only show up if someone repeats the exercise by hand.

A reader on DEV suggested keeping it (comment): a real corpus with per-finding verdicts is a regression suite most linters never get.

What to build

  • A pinned list of the six projects with the commit each was scanned at.
  • A labelled file per project: one row per finding (file, migration, operation, rule, severity) with a verdict (real / false) and, for false ones, which of the nine causes it was.
  • A script that checks out the pinned commits, runs orm-lens migration-risk --format json, and diffs the result against the labels: new findings, findings that disappeared, severity changes.
  • Run it manually before releases at first; a scheduled CI job can come later, since cloning six large repos is slow.

Done when

  • The labels for all 407 findings are in the repo.
  • The script reports zero differences on the current release.
  • The release checklist mentions running it.
Lingua principale
Python
Stelle
84
Fork
13
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di FROWNINGdev/django-orm-lens

Tutte le issue di FROWNINGdev/django-orm-lens

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.