git clean -xdf
You will of course need docker installed and running for this:
MyComputer activemq-artemis-native myuser$ ./scripts/compile-using-docker.sh
If you don't have a key to sign the release artifacts you can generate one using this command:
Ensure that your key is listed at https://dist.apache.org/repos/dist/release/activemq/KEYS. If not, generate the key information, e.g.:
gpg --list-sigs email@example.com > /tmp/key; gpg --armor --export firstname.lastname@example.org >> /tmp/key
Then send the key information in
email@example.com so it can be added.
Add your key id (available via
gpg --fingerprint <key>) to the
OpenPGP Public Key Primary Fingerprint field at https://id.apache.org/. Note: this is just the key id, not the whole fingerprint.
Before starting make sure you clone a brand new git as follows as the release plugin will use the upstream for pushing the tags:
git clone git://github.com/apache/activemq-artemis-native.git cd activemq-artemis-artemis git remote add upstream https://gitbox.apache.org/repos/asf/activemq-artemis-native.git
If your git
user.name are not set globally then you'll need to set these on the newly clone repository as they will be used during the release process to make commits to the upstream repository, e.g.:
git config user.email "firstname.lastname@example.org" git config user.name "FirstName LastName"
This should be the same
user.name you use on your main repository.
You will have to use this following maven command to perform the release:
mvn clean release:prepare -DautoVersionSubmodules=true -Prelease -Pdocker
You could optionally set
pushChanges=false so the version commit and tag won't be pushed upstream (you would have to do it yourself):
mvn clean release:prepare -DautoVersionSubmodules=true -DpushChanges=false -Prelease -Pdocker
When prompted make sure the next is a major release. Example:
[INFO] Checking dependencies and plugins for snapshots ... What is the release version for "ActiveMQ Artemis Parent"? (org.apache.activemq:artemis-pom) 1.4.0: : What is SCM release tag or label for "ActiveMQ Artemis Parent"? (org.apache.activemq:artemis-pom) artemis-pom-1.4.0: : 1.4.0 What is the new development version for "ActiveMQ Artemis Parent"? (org.apache.activemq:artemis-pom) 1.4.1-SNAPSHOT: : 1.5.0-SNAPSHOT
Otherwise snapshots will be created at 1.4.1 and forgotten. (Unless we ever release 1.4.1 on that example).
For more information look at the prepare plugin:
If you set
pushChanges=false then you will have to push the changes manually. The first command is to push the commits which are for changing the
<version> in the pom.xml files, and the second push is for the tag, e.g.:
git push upstream git push upstream <version>
To upload it to nexus, perform this command:
mvn release:perform -Prelease -Pdocker
Note: this can take quite awhile depending on the speed for your Internet connection.
If something happened during the release upload to nexus, you may need to eventually redo the upload.
There is a release.properties file that is generated at the root of the project during the release. In case you want to upload a previously tagged release, add this file as follows:
For more information consult the apache guide at this address: