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. Das Fundament kam von mir: Analyse und Vergleich, dazu 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. Was heute drin steckt, ist aber nicht allein mein Code. Einiges von dem, was daraus geworden ist, hat mein Kollege gebaut.
- Fundament von mir, weiter im Zweierteam
- Open Source von EMD Group / Merck
- Statische Analyse von Dart-API-Signaturen
Interesse an etwas Ähnlichem?