M-Trust API Guard
Automated semantic versioning for Dart and Flutter packages: API Guard analyzes a package's public API, detects breaking changes, bumps the version, and writes the changelog. No more guessing whether a release is a patch or a major.
Semantic versioning asks a question most teams answer by guessing: is this release a patch, a minor or a major? API Guard answers it by reading the code.
The tool reads through everything a package exposes to the outside world, records it, and compares that against any earlier version. What changed decides the version number and writes the changelog entry. A removed parameter is a breaking change. A new optional one is not. Nobody has to remember which.
Teams need escape hatches, so every rule can be loosened or tightened piece by piece: ignore something internal, go easy on a part that is still experimental, be strict about the parts you cannot afford to break. Projects made of several packages get their versions, tags and interdependencies updated in one pass.
It was built in a two-person team at Merck and open-sourced by EMD Group. My side was the analysis and comparison, plus the git handling: checking out another ref to compare against is exactly the kind of convenience that eats someone's uncommitted work if you get it wrong.
- Co-developed in a two-person team
- Open-sourced by EMD Group / Merck
- Static analysis of Dart API signatures
Interested in something similar?