spring-projects / spring-projects/spring-framework
Add API compatibility tooling in the build
@bclozel is already working on this.
Since Apr 10, 2026.
- Dominant language
- Java
- Stars
- 60.2k
- Forks
- 38.8k
- Avg merge
- 5d 2h
- Merged PRs (30d)
- 27
Description
The Spring Framework team previously generated and shared publicly API comparison reports for each release. This was abandoned later because the community didn't use those.
In #36591, I'm seeing an opportunity to bring this back in a different fashion, with custom rules that align with the Spring Framework backwards compatibility rules:
- Major versions change the baseline and can break source and binary compatibility
- Minor versions avoid source and binary breakages, but can remove long-deprecated types and methods
- Patch versions are source and binary compatible
I have tested changes locally that use JApiCmp, but the setup is incomplete. I have found a bug in the library and we would need more flexibility from the Gradle plugin to allow us to redefine semantic versioning rules accordingly. Those are the two prerequisites to consider this in our build.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.