Skip to content

Validating release candidates

Zixuan Liu edited this page Dec 9, 2024 · 4 revisions

Download And Verify the source tarball

Before you start to validate the source tarball, make sure you have installed these software:

  • OpenJDK 17
  • Maven 3.9.9 (most recent stable Maven 3.9.x version)

Download the source tarball and extract it. The extracted files are in a directory called apache-pulsar-adapters-<release>-src:

VERSION=3.0.0
CANDIDATE=2
wget https://dist.apache.org/repos/dist/dev/pulsar/pulsar-adapters-$VERSION-candidate-$CANDIDATE/apache-pulsar-adapters-$VERSION-src.tar.gz
wget https://dist.apache.org/repos/dist/dev/pulsar/pulsar-adapters-$VERSION-candidate-$CANDIDATE/apache-pulsar-adapters-$VERSION-src.tar.gz.asc
wget https://dist.apache.org/repos/dist/dev/pulsar/pulsar-adapters-$VERSION-candidate-$CANDIDATE/apache-pulsar-adapters-$VERSION-src.tar.gz.sha512sum

tar -zxvf apache-pulsar-adapters-$VERSION-src.tar.gz

Verify the GPG signature:

# Import the Pulsar KEYS
gpg --import <(curl https://dist.apache.org/repos/dist/release/pulsar/KEYS)

# Verify the source tarball
gpg --verify apache-pulsar-adapters-$VERSION-src.tar.gz

Verify the SHA512 sum:

sha512sum --check apache-pulsar-adapters-$VERSION-src.tar.gz.sha512sum

Build:

cd apache-pulsar-adapters-$VERSION-src
mvn clean install -DskipTests

Run unit test:

mvn -B -ntp -pl '!org.apache.pulsar.tests:pulsar-kafka-compat-client-test,!org.apache.pulsar.tests:pulsar-spark-test' clean verify

Run integration test:

git clone --depth 50 --single-branch --branch v3.0.7  https://github.com/apache/pulsar
cd pulsar
mvn -B -ntp -f tests/pom.xml -pl org.apache.pulsar.tests:tests-parent,org.apache.pulsar.tests:integration install
docker pull apachepulsar/pulsar-all:3.0.7
docker pull apachepulsar/pulsar:3.0.7
docker tag apachepulsar/pulsar-all:3.0.7 apachepulsar/pulsar-all:latest
docker tag apachepulsar/pulsar:3.0.7 apachepulsar/pulsar:latest
mvn -B -ntp -f tests/docker-images/pom.xml install -pl org.apache.pulsar.tests:latest-version-image -am -Pdocker,-main -DskipTests

# Go back to the adapters directory.
cd ..
mvn -B -ntp -pl org.apache.pulsar.tests:pulsar-kafka-compat-client-test,org.apache.pulsar.tests:pulsar-spark-test -am -DintegrationTests -DskipTests -DredirectTestOutputToFile=false clean verify

Verify Maven library

Create an empty project:

mvn archetype:generate -DgroupId=org.apache.pulsar -DartifactId=pulsar-adapters-candidate -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

Replace pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>org.apache.pulsar</groupId>
  <artifactId>pulsar-adapters-candidate</artifactId>
  <version>1.0.0-SNAPSHOT</version>

  <properties>
    <maven.compiler.source>17</maven.compiler.source>
    <maven.compiler.target>17</maven.compiler.target>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <pulsar-adaterps.version>3.0.0</pulsar-adaterps.version>
  </properties>

  <repositories>
    <repository>
      <id>apache-adapters-candidate</id>
      <!--  Maven staging repo -->
      <url>https://repository.apache.org/content/repositories/orgapachepulsar-1320</url>
    </repository>
  </repositories>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.pulsar</groupId>
      <artifactId>pulsar-storm</artifactId>
      <version>${pulsar-adaterps.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.pulsar</groupId>
      <artifactId>pulsar-spark</artifactId>
      <version>${pulsar-adaterps.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.pulsar</groupId>
      <artifactId>pulsar-log4j2-appender</artifactId>
      <version>${pulsar-adaterps.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.pulsar</groupId>
      <artifactId>pulsar-client-kafka</artifactId>
      <version>${pulsar-adaterps.version}</version>
    </dependency>
  </dependencies>

</project>

Verify the Maven can download the package from Maven staging repo:

mvn clean install -DskipTests
Clone this wiki locally