python / python/mypy

Use mypy to find backward incompatibilities between library versions

Offen
#11,116 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

feature
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

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Ö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

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.