Use mypy to find backward incompatibilities between library versions
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Python
- Sterne
- 20.6k
- Forks
- 3.3k
- PR-Merge-Kennzahlen
- PR-Kennzahlen ausstehend
Beschreibung
Feature
Would it be possible to use mypy to find backward incompatibilities between versions of a library?
I'm thinking about snapshotting the signature of all modules/functions/classes at some point, and checking whether for a later version, the API is a superset/subtype (According to Liskov, probably.)
Pitch
Feel free to close if this doesn't belong here. But I've the impression that Mypy has the logic to figure out whether one function or class is a subtype of another, so I wonder whether that would be possible for a package as a whole. This would be a big help to discover breaking changes in a library.
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Das Issue nennt keine Dateien, Tests oder Einstiegspunkte. Beginne damit, die vorhandenen Fähigkeiten von mypy zur Subtypprüfung und API-Analyse zu untersuchen, und bestimme anschließend, wie Bibliothekssignaturen erfasst und versionsübergreifend verglichen werden könnten. Als abgeschlossen würde ein definierter, implementierbarer Ansatz zum Erkennen rückwärtsinkompatibler Änderungen gelten.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- compilers
- Issue-Typ
- Feature
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Aktivitätsstatus
- Veraltet
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 25/100