Client work

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.

Laptop with an open code editor

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

GitHub

Period
since 2024
Client
Merck KGaA / EMD Group
My role
Dart tooling, co-developed in a two-person team
Stack
Dart · CLI · Open Source · Semantic Versioning

Interested in something similar?

Get in touch