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

jackie pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pinot.git


The following commit(s) were added to refs/heads/master by this push:
     new 2760c07d7f Move the SPI check to GHA and deprecate baseline jar 
(#15982)
2760c07d7f is described below

commit 2760c07d7f139e1e1fd59865fe4cb5b3bf0d2743
Author: Eujean Lee <leujea...@gmail.com>
AuthorDate: Thu Jun 5 19:08:32 2025 -0700

    Move the SPI check to GHA and deprecate baseline jar (#15982)
---
 .github/workflows/pinot_tests.yml                  |  41 ++++++++++++-
 pinot-segment-spi/pom.xml                          |  64 ---------------------
 .../pinot-segment-spi-japicmp-baseline.jar         | Bin 338325 -> 0 bytes
 pinot-spi/pom.xml                                  |  59 -------------------
 pinot-spi/resources/pinot-spi-japicmp-baseline.jar | Bin 625776 -> 0 bytes
 pom.xml                                            |  10 ----
 6 files changed, 39 insertions(+), 135 deletions(-)

diff --git a/.github/workflows/pinot_tests.yml 
b/.github/workflows/pinot_tests.yml
index f2d97b700a..6f71f8617c 100644
--- a/.github/workflows/pinot_tests.yml
+++ b/.github/workflows/pinot_tests.yml
@@ -98,8 +98,45 @@ jobs:
           key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
           restore-keys: |
             ${{ runner.os }}-maven-
-      - name: Verify with binary-compatibility-check profile
-        run: mvn verify -DskipTests -Pbinary-compat-check -T1C
+      # Build the PR branch's module to get a new JAR to compare
+      - name: Build SPI on PR branch
+        run: |
+          for mod in pinot-spi pinot-segment-spi; do
+            mvn clean package -T1C -pl $mod -am -DskipTests 
-Dproject.build.finalName="$mod"
+          done
+      - name: Checkout master into a subfolder
+        uses: actions/checkout@v4
+        with:
+          ref: ${{ github.event.pull_request.base.sha }}
+          path: master-head
+      # Build the same module on master to produce the baseline JAR
+      - name: Build SPI on master
+        working-directory: master-head
+        run: |
+          for mod in pinot-spi pinot-segment-spi; do
+            mvn clean package -T1C -pl $mod -am -DskipTests 
-Dproject.build.finalName="$mod"
+          done
+      # Download the japicmp standalone JAR which will be used to compare APIs
+      - name: Download japicmp CLI
+        run: |
+          JAPICMP_VER=0.23.1
+          curl -fSL \
+          -o japicmp.jar \
+          
"https://repo1.maven.org/maven2/com/github/siom79/japicmp/japicmp/${JAPICMP_VER}/japicmp-${JAPICMP_VER}-jar-with-dependencies.jar";
+      # Locate the old JAR (from master) and the new JAR (PR) and run japicmp 
to compare
+      - name: Compare API
+        run: |
+          for mod in pinot-spi pinot-segment-spi; do
+            OLD=$(ls master-head/$mod/target/$mod-*.jar | grep -v 
'\-tests.jar' | head -1)
+            NEW=$(ls $mod/target/$mod-*.jar | grep -v '\-tests.jar' | head -1)
+            
+            java -jar japicmp.jar \
+              --old "$OLD" \
+              --new "$NEW" \
+              --error-on-binary-incompatibility \
+              --only-incompatible \
+              --ignore-missing-classes
+          done
   unit-test:
     if: github.repository == 'apache/pinot'
     runs-on: ubuntu-latest
diff --git a/pinot-segment-spi/pom.xml b/pinot-segment-spi/pom.xml
index f697c9d4a8..1c0dc9e176 100644
--- a/pinot-segment-spi/pom.xml
+++ b/pinot-segment-spi/pom.xml
@@ -34,70 +34,6 @@
     <pinot.root>${basedir}/..</pinot.root>
   </properties>
 
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>com.github.siom79.japicmp</groupId>
-        <artifactId>japicmp-maven-plugin</artifactId>
-        <version>0.23.1</version>
-        <configuration>
-          <skip>${japicmp.skip}</skip> <!-- This is the default config, but 
set here to be explicit. It is set on the parent pom -->
-          <!-- If oldVersion were left blank, 1.3.0 would be the baseline 
version for japicmp's comparing. However, we already
-          introduced back-incompatible changes since the release of 
1.4.0-SNAPSHOT, so we are using a baseline .jar of the repo here
-          (with version as of PR #15737).
-          TODO: At the time of the next Pinot release (1.4.0), update the 
baseline version here to 1.4.0 and remove 
pinot-segment-spi/resources/pinot-segment-spi-japicmp-baseline.jar from repo.-->
-          <oldVersion>
-            <file>
-              
<path>${basedir}/resources/pinot-segment-spi-japicmp-baseline.jar</path>
-            </file>
-          </oldVersion>
-          <newVersion>
-            <file>
-              
<path>${project.build.directory}/${project.artifactId}-${project.version}.jar</path>
-            </file>
-          </newVersion>
-          <parameter>
-            <includes>org.apache.pinot.segment.spi</includes>
-            <onlyModified>true</onlyModified>
-            <skipXmlReport>true</skipXmlReport>
-            <skipHtmlReport>true</skipHtmlReport>
-            
<breakBuildOnSourceIncompatibleModifications>true</breakBuildOnSourceIncompatibleModifications>
-            <overrideCompatibilityChangeParameters>
-              <overrideCompatibilityChangeParameter>
-                <compatibilityChange>METHOD_NOW_VARARGS</compatibilityChange>
-                <sourceCompatible>false</sourceCompatible>
-              </overrideCompatibilityChangeParameter>
-              <overrideCompatibilityChangeParameter>
-                
<compatibilityChange>METHOD_ABSTRACT_ADDED_IN_IMPLEMENTED_INTERFACE</compatibilityChange>
-                <sourceCompatible>true</sourceCompatible>
-              </overrideCompatibilityChangeParameter>
-              <overrideCompatibilityChangeParameter>
-                
<compatibilityChange>METHOD_ABSTRACT_ADDED_IN_SUPERCLASS</compatibilityChange>
-                <sourceCompatible>true</sourceCompatible>
-              </overrideCompatibilityChangeParameter>
-              <overrideCompatibilityChangeParameter>
-                
<compatibilityChange>METHOD_ABSTRACT_ADDED_TO_CLASS</compatibilityChange>
-                <sourceCompatible>true</sourceCompatible>
-              </overrideCompatibilityChangeParameter>
-              <overrideCompatibilityChangeParameter>
-                
<compatibilityChange>METHOD_ADDED_TO_INTERFACE</compatibilityChange>
-                <sourceCompatible>true</sourceCompatible>
-              </overrideCompatibilityChangeParameter>
-            </overrideCompatibilityChangeParameters>
-          </parameter>
-        </configuration>
-        <executions>
-          <execution>
-            <phase>verify</phase>
-            <goals>
-              <goal>cmp</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
-
   <dependencies>
     <dependency>
       <groupId>org.apache.pinot</groupId>
diff --git a/pinot-segment-spi/resources/pinot-segment-spi-japicmp-baseline.jar 
b/pinot-segment-spi/resources/pinot-segment-spi-japicmp-baseline.jar
deleted file mode 100644
index bd9ed7b8bc..0000000000
Binary files 
a/pinot-segment-spi/resources/pinot-segment-spi-japicmp-baseline.jar and 
/dev/null differ
diff --git a/pinot-spi/pom.xml b/pinot-spi/pom.xml
index 3c8ff50a7b..91927379c0 100644
--- a/pinot-spi/pom.xml
+++ b/pinot-spi/pom.xml
@@ -124,65 +124,6 @@
           <reuseForks>true</reuseForks>
         </configuration>
       </plugin>
-      <plugin>
-        <groupId>com.github.siom79.japicmp</groupId>
-        <artifactId>japicmp-maven-plugin</artifactId>
-        <version>0.23.1</version>
-        <configuration>
-          <skip>${japicmp.skip}</skip> <!-- This is the default config, but 
set here to be explicit. It is set on the parent pom -->
-          <!-- If oldVersion were left blank, 1.3.0 would be the baseline 
version for japicmp's comparing. However, we already
-          introduced back-incompatible changes since the release of 
1.4.0-SNAPSHOT, so we are using a baseline .jar of the repo here
-          (with version as of PR #15684).
-          TODO: At the time of the next Pinot release (1.4.0), update the 
baseline version here to 1.4.0 and remove 
pinot-spi/resources/pinot-spi-japicmp-baseline.jar from repo.-->
-          <oldVersion>
-            <file>
-              <path>${basedir}/resources/pinot-spi-japicmp-baseline.jar</path>
-            </file>
-          </oldVersion>
-          <newVersion>
-            <file>
-              
<path>${project.build.directory}/${project.artifactId}-${project.version}.jar</path>
-            </file>
-          </newVersion>
-          <parameter>
-            <includes>org.apache.pinot.spi</includes>
-            <onlyModified>true</onlyModified>
-            <skipXmlReport>true</skipXmlReport>
-            <skipHtmlReport>true</skipHtmlReport>
-            
<breakBuildOnSourceIncompatibleModifications>true</breakBuildOnSourceIncompatibleModifications>
-            <overrideCompatibilityChangeParameters>
-              <overrideCompatibilityChangeParameter>
-                <compatibilityChange>METHOD_NOW_VARARGS</compatibilityChange>
-                <sourceCompatible>false</sourceCompatible>
-              </overrideCompatibilityChangeParameter>
-              <overrideCompatibilityChangeParameter>
-                
<compatibilityChange>METHOD_ABSTRACT_ADDED_IN_IMPLEMENTED_INTERFACE</compatibilityChange>
-                <sourceCompatible>true</sourceCompatible>
-              </overrideCompatibilityChangeParameter>
-              <overrideCompatibilityChangeParameter>
-                
<compatibilityChange>METHOD_ABSTRACT_ADDED_IN_SUPERCLASS</compatibilityChange>
-                <sourceCompatible>true</sourceCompatible>
-              </overrideCompatibilityChangeParameter>
-              <overrideCompatibilityChangeParameter>
-                
<compatibilityChange>METHOD_ABSTRACT_ADDED_TO_CLASS</compatibilityChange>
-                <sourceCompatible>true</sourceCompatible>
-              </overrideCompatibilityChangeParameter>
-              <overrideCompatibilityChangeParameter>
-                
<compatibilityChange>METHOD_ADDED_TO_INTERFACE</compatibilityChange>
-                <sourceCompatible>true</sourceCompatible>
-              </overrideCompatibilityChangeParameter>
-            </overrideCompatibilityChangeParameters>
-          </parameter>
-        </configuration>
-        <executions>
-          <execution>
-            <phase>verify</phase>
-            <goals>
-              <goal>cmp</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
     </plugins>
   </build>
 
diff --git a/pinot-spi/resources/pinot-spi-japicmp-baseline.jar 
b/pinot-spi/resources/pinot-spi-japicmp-baseline.jar
deleted file mode 100644
index baf83f68e7..0000000000
Binary files a/pinot-spi/resources/pinot-spi-japicmp-baseline.jar and /dev/null 
differ
diff --git a/pom.xml b/pom.xml
index 5359419797..c63a82e0e6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -482,16 +482,6 @@
         <scala.compat.version>2.13</scala.compat.version>
       </properties>
     </profile>
-
-    <profile>
-      <id>binary-compat-check</id>
-      <activation>
-        <activeByDefault>false</activeByDefault>
-      </activation>
-      <properties>
-        <japicmp.skip>false</japicmp.skip>
-      </properties>
-    </profile>
   </profiles>
 
   <dependencyManagement>


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org
For additional commands, e-mail: commits-h...@pinot.apache.org

Reply via email to