| name | update-abi-baseline |
| description | Regenerate and review FireCrasher's committed public ABI baseline (firecrasher/api/firecrasher.api) after an intentional public API change. Use when apiCheck fails, or after adding/removing/changing any public or protected library declaration. |
Update the ABI baseline
The library's public binary API is frozen in firecrasher/api/firecrasher.api
by the binary-compatibility-validator plugin. :firecrasher:apiCheck (part of
check, and therefore CI) fails whenever the compiled public surface no longer
matches that file. The baseline exists so public API changes are always
deliberate and reviewed — never accidental.
When to use
apiCheck failed and the API change was intentional.
- You added, removed, renamed, or changed the signature/visibility of any
public/protected declaration in firecrasher/src/main.
If the API change was not intentional, do not run this — you have leaked an
implementation detail into the public surface. Make the declaration internal
or private instead (the library is compiled with explicitApi()).
Steps
- Regenerate the baseline from the current sources:
./gradlew :firecrasher:apiDump
- Review the diff — this is the point of the skill. Every line must be a change
you meant to make:
git diff firecrasher/api/firecrasher.api
- Confirm the check now passes:
./gradlew :firecrasher:apiCheck
- Commit
firecrasher.api in the same commit as the API change it
describes, so the baseline and the code never drift apart.
Notes
- Removing or changing an existing public signature is a breaking change for
consumers — call it out in the PR description and the README "What's new", and
it should drive a version bump (see the
release skill).
- The validator tasks are wired by hand in
firecrasher/build.gradle (AGP's
built-in Kotlin doesn't auto-register them); apiDump/apiCheck are the only
entry points you need.