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 <[email protected]>
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: [email protected]
For additional commands, e-mail: [email protected]