-
Notifications
You must be signed in to change notification settings - Fork 831
Open
Description
Summary
Add automated API compatibility checking to CI to detect source-incompatible
and binary-incompatible changes before they are released.
Motivation
In 1.5.0, PR #1800 changed MetricWithFixedMetadata.getMetadata() from
protected to public — a source-incompatible change that was not caught
during review (see #1897).
Tools to add
Both are used by OpenTelemetry Java
and complement each other:
- japicmp — Maven plugin that
compares two versions of a JAR and reports binary/source incompatibilities.
Catches changes like visibility narrowing, method removal, signature
changes, etc. - Animal Sniffer — checks
that code only uses APIs from a defined API signature. Useful for enforcing
a stable public API baseline.
Acceptance criteria
- japicmp integrated into CI, failing on binary/source-incompatible
changes to public/protected API - Animal Sniffer integrated into CI, checking against a defined API
signature baseline - Mechanism to explicitly allow intentional breaking changes (e.g.,
baseline file or annotation) - Documented in CLAUDE.md / contributor guide
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels