spring-projects / spring-projects/spring-framework

Add API compatibility tooling in the build

Open
#36,640 0 comments 1 reaction 1 assignee View on GitHub

@bclozel is already working on this.

Since Apr 10, 2026.

type: task
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.