Steps taken from Maven Release process outlined by sonatype.org and summarized below.
0x required for hex keys.Follow Manual Staging Bundle Creation and Deployment by signing files manually, see steps summarized below.
Three artifacts are required for each version: heron-api, heron-storm, and heron-spi. Example POM template files required located in heron/release/maven/.
heron-api-install-{VERSION}-{DIST}.sh from github releasesExample command for heron-api version 0.14.0 installed using the --user flag:
$ wget https://github.com/apache/incubator-heron/releases/download/0.14.0/heron-api-install-0.14.0-darwin.sh $ chmod +x heron-api-install-0.14.0-darwin.sh $ ./heron-api-install-0.14.0-darwin.sh --user
After running the above install script with --user flag, the heron-api artifacts are installed into the ~/.heronapi directory.
heron-api, heron-storm and heron-spi artifactExample, create folder named heron-api-bundle-0.14.0.
Artifact bundle must contain the following with Maven Central naming format:
{artifact-name}-{artifact-version}.jar{artifact-name}-{artifact-version}.pom{artifact-name}-{artifact-version}-javadoc.jar{artifact-name}-{artifact-version}-sources.jarNote heron-api-0.14.0-javadoc.jar and heron-api-0.14.0-sources.jar are currently placeholders due to Bazel version but required by Maven Central checks.
Copy artifact {artifact}.jar from ~/.heronapi to temp folder and rename to {artifact-name}-{artifact-version}.jar.
Generate versioned POM file using ./maven/maven-pom-version.sh VERSION. Example:
$ ./maven/maven-pom-version.sh 0.14.1 $ ls heron-api-0.14.1.pom heron-storm-0.14.1.pom heron-spi-0.14.1.pom ...
Copy versioned POM files to artifact temp directory.
Use GPG/PGP to sign each file by following steps.
Example on Mac OS X using gpg:
$ gpg -ab heron-api-0.14.0-javadoc.jar $ ls heron-api-0.14.0-javadoc.jar heron-api-0.14.0-javadoc.jar.asc
bundle.jar for each heron-api, heron-storm and heron-spi artifactFor each artifact temp file, for example heron-api-bundle-0.14.0 following .jar and signed .asc files are required:
$ cd heron-api-bundle-0.14.0 $ ls heron-api-0.14.0-sources.jar heron-api-0.14.0-sources.jar.asc heron-api-0.14.0-javadoc.jar heron-api-0.14.0-javadoc.jar.asc heron-api-0.14.0.jar heron-api-0.14.0.jar.asc heron-api-0.14.0.pom heron-api-0.14.0.pom.asc
Create bundle.jar of temp directory contents.
$ jar -cvf bundle.jar ./ $ ls bundle.jar ...
bundle.jar to sonatype.org and Release to Maven CentralLogin to sonatype.org.
For each artifact, heron-api, heron-storm and heron-spi, separately upload the bundle.jar created in Step 3 with the following steps:
From the Staging Upload tab, select Artifact Bundle from the Upload Mode dropdown.
Click the Select Bundle to Upload button, and select the bundle.jar you created.
Click the Upload Bundle button. If the upload is successful, a staging repository will be created, and you can proceed with releasing steps, summarized below:
After you deployment the repository will be in an Open status.
You can evaluate the deployed components in the repository using the Contents tab.
If you believe everything is correct you, can press the Close button above the list.
This will trigger the evaluations of the components against the requirements.
Closing will fail if your components do not meet the requirements. If this happens, you can press Drop and the staging repository will be deleted.
Once you have successfully closed the staging repository, you can release it by pressing the Release button.
Note, since org.apache.heron already exists, once released, artifacts will immediately be synced with Maven Central.
Check that artifacts are successfully released by going to Maven's search page and searching for org.apache.heron with proper version.
As a final end-to-end check, ensure that you can successfully pull the correct version artifacts from Maven Central in a local topology. To do this:
Delete your local ~/.heronapi directory.
Run mvn clean in your local heron topology project directory.
Update the project POM.xml file with new upgraded heron version, see upgrade-storm-to-heron example - Step 2.
Run mvn compile to confirm your project can successfully pull updated version artifacts from Maven Central.