Skip to content

Add API Compatibility category (japicmp, Revapi, Roseau) - #1327

Open
tdegueul wants to merge 2 commits into
akullpp:mainfrom
tdegueul:patch-1
Open

tdegueul wants to merge 2 commits into
akullpp:mainfrom
tdegueul:patch-1

Conversation

@tdegueul

@tdegueul tdegueul commented Sep 15, 2026

Copy link
Copy Markdown

What

Adds a new API Compatibility category with three maintained, Apache-2.0/MIT tools that track API evolution and breaking changes between versions of Java libraries.

The initial entries are:

  • japicmp - Compares two library JARs and reports source- and binary-incompatible changes.
  • Revapi - Extensible API analysis and change tracking with configurable source, binary and semantic compatibility checks.
  • Roseau - Detects source- and binary-breaking changes by comparing library versions from JAR files or source code.

Each is used and deployed in practice by maintainers of popular Java libraries, including libraries listed in this very repository. For example, japicmp is used by the the Apache Commons libraries and Google gson, Revapi is used by ical4j and Quarkus, and Roseau is used by JUnit and Caffeine.

Why a new category

Java library maintainers need dedicated tooling to understand how their public API evolves between releases and, in particular, whether changes can break existing consumers. These tools serve a specific purpose and are largely used in practice by Java library maintainers.

This therefore seems analogous to other focused sections in the list: several tools share a clear, independently useful domain that is narrower than the existing general-purpose categories.

Disclosure

I am the main maintainer of Roseau. japicmp and Revapi are independent projects that are also actively used in practice by popular Java library maintainers.

Suggestion type

  • Category
  • Project

Checklist

  • I searched the list and existing issues for duplicates.
  • I changed README_SOURCE.md, not the generated README.md.
  • This pull request contains one suggestion.
  • The suggestion is relevant to Java or the JVM and fits its chosen category.
  • I used the canonical project or resource link.
  • The suggestion is current and maintained.
  • The concise, neutral description explains its distinguishing value and ends with punctuation.
  • Licensing is clear and any restrictive terms are disclosed where applicable.

Summary by cubic

Adds an API Compatibility category to the Java/JVM project list, covering japicmp, Revapi, and Roseau for library maintainers tracking API evolution between versions.

  • japicmp compares two JARs and reports source- and binary-incompatible changes.
  • Revapi provides extensible API analysis with configurable source, binary, and semantic compatibility checks.
  • Roseau detects source- and binary-breaking changes from JAR files or source code.
  • Full disclosure: I maintain Roseau; japicmp and Revapi are independent projects.

Written for commit 482f9ee. Summary will update on new commits.

Review in cubic

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 issue found across 1 file

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="README_SOURCE.md">

<violation number="1" location="README_SOURCE.md:18">
P3: This pull request adds three projects, contrary to the repository’s one-project-per-pull-request contribution rule. Split these additions into separate pull requests, or retain only one project here.</violation>
</file>

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

Comment thread README_SOURCE.md Outdated
Comment thread README_SOURCE.md Outdated

_Tools for tracking API evolution and detecting breaking changes between library versions._

* [japicmp](https://github.com/siom79/japicmp) - Compares two library JARs and reports source- and binary-incompatible changes.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P3: This pull request adds three projects, contrary to the repository’s one-project-per-pull-request contribution rule. Split these additions into separate pull requests, or retain only one project here.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At README_SOURCE.md, line 18:

<comment>This pull request adds three projects, contrary to the repository’s one-project-per-pull-request contribution rule. Split these additions into separate pull requests, or retain only one project here.</comment>

<file context>
@@ -11,6 +11,14 @@ Use absolute HTTPS canonical links and submit one project or resource per pull r
+
+_Tools for tracking API evolution and detecting breaking changes between library versions._
+
+* [japicmp](https://github.com/siom79/japicmp) - Compares two library JARs and reports source- and binary-incompatible changes.
+* [Revapi](https://github.com/revapi/revapi) - Extensible API analysis and change tracking with configurable source, binary and semantic compatibility checks.
+* [Roseau](https://github.com/alien-tools/roseau) - Detects source- and binary-breaking changes by comparing library versions from JAR files or source code.
</file context>

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant