I recently gave a talk about the tool, addressing:
- why semver in Rust is important and harder than it looks
- how the tool works
- why it took until 2022-2023 to solve this problem
There's no recording but here are the slides: https://docs.google.com/presentation/d/1gVYM9-YLrBmRYSuHqW8r...
A lot of semver is just queries over APIs. For example: "find public functions that existed in the last version but don't exist in the new one." Any such function we find is a breaking change.
Cargo-semver-checks uses an engine designed to query any data sources called Trustfall, and uses rustdoc JSON (which has an unstable format that changes ~once a month).
Here's a query playground where you can try running queries over rustdoc:
More info about all this on my blog: