This is an automated email from the ASF dual-hosted git repository.

papegaaij pushed a commit to branch japicmp-baseline
in repository https://gitbox.apache.org/repos/asf/wicket.git

commit 6bd4003679df47c939669b174db902dbee99d735
Author: Emond Papegaaij <[email protected]>
AuthorDate: Fri Sep 11 12:14:53 2026 +0200

    Derive the japicmp baseline from the major version of the project
    
    The baseline was hardcoded as 11.0.0-SNAPSHOT, so a build on master compared
    each module against whatever snapshot happened to sit in the local or remote
    repository: last night's CI artifact, or the jar installed an hour ago. On 
the
    line where API changes are allowed, that comparison is arbitrary, and it 
breaks
    the build on changes master explicitly permits.
    
    The baseline is now <major>.0.0, derived from the project version. On a
    maintenance branch that release exists, so the check runs exactly as it did
    with the hardcoded value; on master it has not been released yet, so japicmp
    resolves no baseline and only warns. The same configuration therefore works 
on
    every branch, and releasing or branching a line needs no change to the pom.
    
    ignoreMissingOldVersion is set explicitly. Both 0.25.4 and 0.26.1 already 
only
    warn on an unresolvable baseline, so it changes nothing today; pinning it 
keeps
    a later plugin version from turning that warning into a build failure on the
    development line.
    
    The only visible effect is in the build output: every jar module on master 
now
    logs one warning per build saying it has no resolvable old version.
    
    Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
---
 AGENTS.md | 7 ++++---
 pom.xml   | 8 +++++++-
 2 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/AGENTS.md b/AGENTS.md
index 4d9a564520..6ac2e73d59 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -78,9 +78,10 @@ header — copy it when you add one.
 
 ## API compatibility
 
-- japicmp fails the build on binary-incompatible changes. On a maintenance 
branch it compares
-  against that line's first release, so nothing incompatible can land there. 
On `master` it
-  compares against the previous `11.0.0-SNAPSHOT`, which leaves it quiet about 
most breaks.
+- japicmp fails the build on binary-incompatible changes. Its baseline is the 
first release of
+  the line the branch is on, derived from the project version: on a 
maintenance branch that
+  release exists and nothing incompatible can land there, while on `master` it 
does not exist
+  yet, so no comparison happens and the plugin only warns.
 - Quiet is not permission. Changing or removing public API on `master` is 
allowed but not free:
   it needs a justification in the commit message, and where the old member can 
survive next to
   the new one, deprecate it rather than remove it.
diff --git a/pom.xml b/pom.xml
index d411cf03d7..8d1716f8cb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -846,11 +846,16 @@
                                        
<artifactId>japicmp-maven-plugin</artifactId>
                                        
<version>${japicmp-maven-plugin.version}</version>
                                        <configuration>
+                                               <!--
+                                                       The first release of 
this line. It does not exist yet on the development
+                                                       line, so japicmp finds 
no baseline there and stays quiet; on a maintenance
+                                                       branch it resolves and 
the check runs. No pom change at release time.
+                                               -->
                                                <oldVersion>
                                                        <dependency>
                                                                
<groupId>${project.groupId}</groupId>
                                                                
<artifactId>${project.artifactId}</artifactId>
-                                                               
<version>11.0.0-SNAPSHOT</version>
+                                                               
<version>${project.artifact.selectedVersion.majorVersion}.0.0</version>
                                                                <type>jar</type>
                                                        </dependency>
                                                </oldVersion>
@@ -860,6 +865,7 @@
                                                        </file>
                                                </newVersion>
                                                <parameter>
+                                                       
<ignoreMissingOldVersion>true</ignoreMissingOldVersion>
                                                        
<skipXmlReport>true</skipXmlReport>
                                                        
<skipHtmlReport>true</skipHtmlReport>
                                                        
<breakBuildOnBinaryIncompatibleModifications>true</breakBuildOnBinaryIncompatibleModifications>

Reply via email to