feat: [DevOps] Add API compatibility check to spec-update workflow#856
Open
rpanackal wants to merge 20 commits into
Open
feat: [DevOps] Add API compatibility check to spec-update workflow#856rpanackal wants to merge 20 commits into
rpanackal wants to merge 20 commits into
Conversation
Contributor
CharlesDuboisSAP
left a comment
There was a problem hiding this comment.
Could you open a PR with breaking changes on one of the spec repos so we can see what the error would look like
Member
Author
Unfortunately, I can't until we merge this. I tried it forgetting the same fact and these results. Though the test run proved as an example of the problem where there are multiple breaking changes and nothing was caught without some additional measure |
Contributor
You could modify the workflow on your PR of document grounding, which would call the modified workflow your branch |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Context
AI/ai-sdk-java-backlog#370.
Adds japicmp to detect breaking Java API changes when service teams update their OpenAPI specifications. This prevents spec changes from silently breaking SDK users by catching binary/source incompatible modifications to generated code.
Problem: Previously, the spec-update workflow only failed if code generation or compilation failed. Breaking changes to classes/methods/fields not covered by tests went undetected — resulting in breaking SDK releases.
Solution: After generating new code from an updated spec, japicmp compares the newly built JAR against a baseline JAR built from
main. If any public API surface changed in a binary or source incompatible way, the workflow fails and reports the details.Feature scope:
pom.xml(<pluginManagement>)<includes>:core—core.client,core.modelorchestration—orchestration.modeldocument-grounding—grounding.client,grounding.modelprompt-registry—prompt.registry.client,prompt.registry.modelsap-rpt—foundationmodels.rpt.generatedspec-update.yaml(usesgit worktreefororigin/main).mdto job summary)MODULE_PATHoutput to download step (single source of truth for service→module mapping)Definition of Done
Tests cover the scope above(tested by running the workflow itself)Error handling created / updatedAligned changes with the JavaScript SDKDocumentation updatedRelease notes updated