Summary
Add automated compatibility checks for dari-core so Kotlin Multiplatform publication changes cannot silently break existing Android consumers.
Motivation
PR #88 moves dari-core from a single Android AAR to Kotlin Multiplatform publications. Its source-level smoke tests and manual AAR comparison provide useful confidence, but CI does not currently:
- compare the generated Android/JVM ABI with a stable baseline or the latest released artifact;
- compile a clean external Android consumer that resolves the existing
io.github.easyhooon:dari-core:<version> coordinate from a locally published repository.
This follows up on the API compatibility requirement in #13.
Proposed Approach
- Add an ABI baseline/check using a suitable tool such as Kotlin Binary Compatibility Validator, Metalava, or JApiCmp.
- Publish
dari-core to an isolated local Maven repository with publication signing disabled.
- Add a minimal external Android consumer that depends on the legacy root coordinate.
- Verify that Gradle metadata selects the
dari-core-android variant and that the consumer compiles.
- Run these checks when
dari-core, Gradle configuration, or publication configuration changes.
Acceptance Criteria
- CI fails when an existing public Android/JVM signature is removed or changed incompatibly.
- A clean Android consumer compiles against
io.github.easyhooon:dari-core:<version> from the generated local repository.
- The test does not rely on project dependencies that bypass published metadata.
- The compatibility workflow is documented and runs without release signing credentials.
Related
Summary
Add automated compatibility checks for
dari-coreso Kotlin Multiplatform publication changes cannot silently break existing Android consumers.Motivation
PR #88 moves
dari-corefrom a single Android AAR to Kotlin Multiplatform publications. Its source-level smoke tests and manual AAR comparison provide useful confidence, but CI does not currently:io.github.easyhooon:dari-core:<version>coordinate from a locally published repository.This follows up on the API compatibility requirement in #13.
Proposed Approach
dari-coreto an isolated local Maven repository with publication signing disabled.dari-core-androidvariant and that the consumer compiles.dari-core, Gradle configuration, or publication configuration changes.Acceptance Criteria
io.github.easyhooon:dari-core:<version>from the generated local repository.Related