This is an automated email from the ASF dual-hosted git repository. kwin pushed a commit to branch feature/ensure-semantic-versioning in repository https://gitbox.apache.org/repos/asf/maven-doxia.git
commit 4adebaa7b4faabcb54efabdcad46c7a90db874a0 Author: Konrad Windszus <[email protected]> AuthorDate: Mon May 11 18:20:31 2026 +0200 Use japicmp-maven-plugin to enforce binary backwards compatibility among 2.x versions. Check both Sink API and Doxia Core module. --- doxia-core/pom.xml | 12 ++++++++++++ doxia-sink-api/pom.xml | 8 ++++++++ pom.xml | 29 +++++++++++++++++++++++++++++ 3 files changed, 49 insertions(+) diff --git a/doxia-core/pom.xml b/doxia-core/pom.xml index ae705315..337bdc82 100644 --- a/doxia-core/pom.xml +++ b/doxia-core/pom.xml @@ -78,6 +78,18 @@ under the License. <build> <plugins> + <plugin> + <groupId>com.github.siom79.japicmp</groupId> + <artifactId>japicmp-maven-plugin</artifactId> + <configuration> + <parameter> + <excludes> + <!-- covariant --> + <exclude>org.apache.maven.doxia.sink.impl.SinkUtils#filterAttributes(javax.swing.text.AttributeSet,java.lang.String[])</exclude> + </excludes> + </parameter> + </configuration> + </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> diff --git a/doxia-sink-api/pom.xml b/doxia-sink-api/pom.xml index e55dde43..efb77810 100644 --- a/doxia-sink-api/pom.xml +++ b/doxia-sink-api/pom.xml @@ -30,4 +30,12 @@ under the License. <name>Doxia :: Sink API</name> <description>Doxia Sink API.</description> + <build> + <plugins> + <plugin> + <groupId>com.github.siom79.japicmp</groupId> + <artifactId>japicmp-maven-plugin</artifactId> + </plugin> + </plugins> + </build> </project> diff --git a/pom.xml b/pom.xml index 5d5ed001..968c9ab6 100644 --- a/pom.xml +++ b/pom.xml @@ -222,6 +222,35 @@ under the License. </excludes> </configuration> </plugin> + <plugin> + <groupId>com.github.siom79.japicmp</groupId> + <artifactId>japicmp-maven-plugin</artifactId> + <version>0.25.6</version> + <configuration> + <parameter> + <ignoreNonResolvableArtifacts>false</ignoreNonResolvableArtifacts> + <ignoreMissingOldVersion>false</ignoreMissingOldVersion> + <breakBuildOnBinaryIncompatibleModifications>true</breakBuildOnBinaryIncompatibleModifications> + <onlyBinaryIncompatible>true</onlyBinaryIncompatible> + </parameter> + <oldVersion> + <dependency> + <groupId>${project.groupId}</groupId> + <artifactId>${project.artifactId}</artifactId> + <!-- keep binary compatibility among the major version 2.x--> + <version>2.0.0</version> + </dependency> + </oldVersion> + </configuration> + <executions> + <execution> + <goals> + <goal>cmp</goal> + </goals> + <phase>verify</phase> + </execution> + </executions> + </plugin> </plugins> </pluginManagement>
