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