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:44 UTC

[maven] branch feature/enforce-backwards-compat created (now 1c555e1be)

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

kwin pushed a change to branch feature/enforce-backwards-compat
in repository https://gitbox.apache.org/repos/asf/maven.git


      at 1c555e1be [MNG-7598] Enforce binary backwards-compatibility

This branch includes the following new commits:

     new 1c555e1be [MNG-7598] Enforce binary backwards-compatibility

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[maven] 01/01: [MNG-7598] Enforce binary backwards-compatibility

Posted by kw...@apache.org.
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>