Skip to content

Add API compatibility tooling in the build #36640

Open

Description

@bclozel

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.

Activity

  1. added this to the 7.x milestone on Apr 10, 2026
  2. self-assigned this
    on Apr 10, 2026
  3. Pujagithub2006 commented on Nov 14, 2026

    @Pujagithub2006

    Hi @bclozel , this looks like a valuable improvement for maintaining Spring Framework's API stability. I have experience working with build tooling and compatibility checks, and I would be interested in helping with the Gradle/JApiCmp integration if there are parts that could use community contribution.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions