You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by kw...@apache.org on 2022/11/16 10:56:45 UTC
[maven] 01/01: [MNG-7598] Enforce binary backwards-compatibility
This is an automated email from the ASF dual-hosted git repository.
kwin pushed a commit to branch feature/enforce-backwards-compat
in repository https://gitbox.apache.org/repos/asf/maven.git
commit 1c555e1be60696742a8ce6941e137e6af24063a0
Author: Konrad Windszus <kw...@apache.org>
AuthorDate: Wed Nov 16 11:54:12 2022 +0100
[MNG-7598] Enforce binary backwards-compatibility
For now only enabled in core and plugin-api
Currently breaks build due to incompatible changes compared to 3.8.6
---
maven-core/pom.xml | 4 ++++
maven-plugin-api/pom.xml | 4 ++++
pom.xml | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 56 insertions(+)
diff --git a/maven-core/pom.xml b/maven-core/pom.xml
index fabf87ee1..02c1a2ddf 100644
--- a/maven-core/pom.xml
+++ b/maven-core/pom.xml
@@ -276,6 +276,10 @@ under the License.
</execution>
</executions>
</plugin>
+ <plugin>
+ <groupId>com.github.siom79.japicmp</groupId>
+ <artifactId>japicmp-maven-plugin</artifactId>
+ </plugin>
</plugins>
</build>
</project>
diff --git a/maven-plugin-api/pom.xml b/maven-plugin-api/pom.xml
index 198a90c10..aed3709be 100644
--- a/maven-plugin-api/pom.xml
+++ b/maven-plugin-api/pom.xml
@@ -114,6 +114,10 @@ under the License.
</execution>
</executions>
</plugin>
+ <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 2ccd6b9c6..421b3c315 100644
--- a/pom.xml
+++ b/pom.xml
@@ -578,6 +578,54 @@ under the License.
<artifactId>buildnumber-maven-plugin</artifactId>
<version>1.4</version>
</plugin>
+ <!-- enforce backwards compatibility -->
+ <plugin>
+ <groupId>com.github.siom79.japicmp</groupId>
+ <artifactId>japicmp-maven-plugin</artifactId>
+ <version>0.16.0</version>
+ <executions>
+ <execution>
+ <phase>verify</phase>
+ <goals>
+ <goal>cmp</goal>
+ </goals>
+ <configuration>
+ <parameter>
+ <!-- baseline is 3.8.6 for Maven 4 -->
+ <oldVersionPattern>3.8.6</oldVersionPattern>
+ <breakBuildOnBinaryIncompatibleModifications>true</breakBuildOnBinaryIncompatibleModifications>
+ <onlyBinaryIncompatible>true</onlyBinaryIncompatible>
+ <!-- only exported packages from maven-core/META-INF/maven/extension.xml matter -->
+ <includes>
+ <include>org.apache.maven.artifact</include>
+ <include>org.apache.maven.classrealm</include>
+ <include>org.apache.maven.cli</include>
+ <include>org.apache.maven.configuration</include>
+ <include>org.apache.maven.exception</include>
+ <include>org.apache.maven.execution</include>
+ <include>org.apache.maven.execution.scope</include>
+ <include>org.apache.maven.feature</include>
+ <include>org.apache.maven.graph</include>
+ <include>org.apache.maven.lifecycle</include>
+ <include>org.apache.maven.model</include>
+ <include>org.apache.maven.monitor</include>
+ <include>org.apache.maven.plugin</include>
+ <include>org.apache.maven.profiles</include>
+ <include>org.apache.maven.project</include>
+ <include>org.apache.maven.reporting</include>
+ <include>org.apache.maven.repository</include>
+ <include>org.apache.maven.rtinfo</include>
+ <include>org.apache.maven.rtinfo.internal</include>
+ <include>org.apache.maven.settings</include>
+ <include>org.apache.maven.toolchain</include>
+ <include>org.apache.maven.usability</include>
+ </includes>
+ <includeExclusively>true</includeExclusively> <!-- don't include subpackages -->
+ </parameter>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
</plugins>
</pluginManagement>
<plugins>