Jinwoo Hwang created GEODE-10493:
------------------------------------
Summary: japicmp API compatibility task failing after being
restored during Gradle 7.6.6 migration
Key: GEODE-10493
URL: https://issues.apache.org/jira/browse/GEODE-10493
Project: Geode
Issue Type: Improvement
Reporter: Jinwoo Hwang
h3. Current Problem
The japicmp API compatibility check is now failing in CI with binary
compatibility errors:
*
*
*
*
This failure began appearing after build system fixes were applied during the
Gradle 7.6.6 migration (GEODE-10490).
h3. Investigation Findings
h4. japicmp Was Previously Broken
Analysis reveals that japicmp had been silently non-functional due to class
loading issues in composite builds:
* Original configuration used compile-time imports that failed to load custom
rules
* Task would appear to pass but wasn't actually enforcing API compatibility
* API violations accumulated undetected across multiple releases
h4. Stale Baseline Comparison
The failure compares against an outdated baseline:
* Current comparison: 1.16.0-build.0 vs 1.14.4 (missing 1.15.x series)
* Missing versions: 1.15.0, 1.15.1, 1.15.2 from
[geode-old-versions|vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-browser/workbench/workbench.html]
directory
* Result: Excessive accumulated changes spanning multiple release cycles
h4. What the Fix in GEODE-10490 Actually Did
The Gradle migration included a fix to japicmp class loading:
*
*
*
*
This restored japicmp to working order, which then exposed years of untracked
API changes.
h3. Proposed Solution
h4. 1. Update Baseline Versions
* Add missing directories:
[1.15.0|vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-browser/workbench/workbench.html],
{{{}1.15.1/{}}}, {{1.15.2/}}
* Change comparison from 1.14.4 → 1.16.0 to 1.15.2 → 1.16.0
* Focus review on recent, relevant changes only
h4. 2. Update Exception Rules
* Clean up
[japicmp_exceptions.json|vscode-file://vscode-app/Applications/Visual%20Studio%20Code.app/Contents/Resources/app/out/vs/code/electron-browser/workbench/workbench.html]
for correct 1.15.2 baseline
* Remove bulk exceptions that were masking the baseline problem
* Document legitimate API changes between 1.15.2 and 1.16.0
h4. 3. Improve CI Diagnostics
* Add japicmp report artifact upload for failed builds
* Enable developers to download and examine detailed compatibility reports
* Reduce debugging time for future API compatibility issues
h3. Expected Benefits
*Immediate:*
* Unblock CI builds by addressing accumulated technical debt
* Provide actionable reports showing specific API compatibility violations
* Restore proper API compatibility enforcement going forward
*Long-term:*
* Prevent future API compatibility violations from going undetected
* Improve developer productivity with better diagnostic information
* Establish foundation for proper API evolution governance
h3. Risk Assessment
*Low Risk:*
* Changes only affect build tooling and baseline comparison
* No impact on runtime behavior or public APIs
* Fixes restore intended functionality rather than changing behavior
*High Value:*
* Addresses significant technical debt in API compatibility checking
* Prevents future accumulation of undetected violations
* Improves development workflow and CI reliability
h3. Acceptance Criteria
* japicmp task passes with updated 1.15.2 baseline
* Exception rules properly handle legitimate API changes
* CI uploads diagnostic reports on japicmp failures
* Build process documentation updated to include baseline maintenance
*
*
--
This message was sent by Atlassian Jira
(v8.20.10#820010)