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/twitter/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.jar
Note 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 com.twitter.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 com.twitter.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.