M-Trust API Guard
Automatisierte semantische Versionierung für Dart- und Flutter-Pakete: API Guard analysiert die öffentliche API eines Pakets, erkennt Breaking Changes, erhöht die Versionsnummer und schreibt den Changelog. Schluss mit dem Rätselraten, ob ein Release ein Patch oder ein Major ist.
Semantische Versionierung stellt eine Frage, die die meisten Teams über den Daumen beantworten: Ist dieses Release ein Patch, ein Minor oder ein Major? API Guard beantwortet sie, indem es den Code liest.
Das Werkzeug liest alles durch, was ein Paket nach außen anbietet, hält es fest und vergleicht es mit einer beliebigen früheren Version. Was sich geändert hat, bestimmt die neue Versionsnummer und den Changelog-Eintrag. Ein entfernter Parameter ist ein Breaking Change, ein neuer optionaler nicht. Niemand muss sich das merken.
Weil Teams Ausnahmen brauchen, lässt sich jede Regel einzeln lockern oder verschärfen: Internes ignorieren, bei Experimentellem milder sein, bei kritischen Teilen strenger. Projekte aus mehreren Paketen bekommen Versionen, Tags und ihre Abhängigkeiten untereinander in einem Durchlauf mitgezogen.
Entstanden ist das Ganze im Zweierteam bei Merck, veröffentlicht hat es die EMD Group als Open Source. Von mir kamen Analyse und Vergleich sowie der Umgang mit Git. Für einen Vergleich kurz auf eine andere Referenz zu wechseln ist genau die Art Komfortfunktion, die fremde uncommittete Arbeit frisst, wenn man sie falsch baut.
- Im Zweierteam entwickelt
- Open Source von EMD Group / Merck
- Statische Analyse von Dart-API-Signaturen
Interesse an etwas Ähnlichem?