Before a release can be performed the npm license need to be updated with any new dependencies. This file is found under artemis-console-distribution/src/main/resources/licenses/licenses/NPMLicenses.txt
.
To regenerate the licenses cd into artemis-console-extension/artemis-extension
and run
yarn license
Note that a check can be made to identify any possible problematic licenses by running in the artemis-console-extension/artemis-extension
directory:
npx license-checker --out licenses.csv --csv --onlyAllow "Apache-2.0;ISC;MIT;CC0-1.0;BSD-2-Clause;BSD-3-Clause;Python-2.0;UNLICENSED;MPL-2.0;CC-BY-4.0;Unlicense;0BSD"
dependencies marked as unlicensed will need to be manually checked.
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 https://gitbox.apache.org/repos/asf/activemq-artemis-console.git
cd activemq-artemis-console
If your git user.email
and/or 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 "[email protected]"
git config user.name "FirstName LastName"
This should be the same user.email
and 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 -Prelease
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 -DpushChanges=false -Prelease
When prompted make sure the new development version matches with the next expected release, rather than the offered patch release. Example:
[INFO] Checking dependencies and plugins for snapshots ...
What is the release version for "ActiveMQ Artemis Console Project"? (artemis-console-project) 1.0.0: :
What is the SCM release tag or label for "ActiveMQ Artemis Console Project"? (artemis-console-project) 1.0.0: :
What is the new development version for "ActiveMQ Artemis Console Project"? (artemis-console-project)1.0.1-SNAPSHOT: : 1.1.0-SNAPSHOT
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>
Ensure that your environment is ready to deploy to the ASF Nexus repository as described at Publishing Maven Artifacts
Copy the file release.properties, that is generated at the root of the project during the release, before starting the upload. You could need it if the upload fails.
To upload it to nexus, perform this command:
mvn release:perform -Prelease
Note: this can take quite a while depending on the speed for your Internet connection. If the upload fails or is interrupted, remove the incomplete repository using the "Drop" button on Nexus website. Before starting the upload again, check the release.properties at the root of the project.
Keep the checkout used to run the release process for later, the website update scripts will reference it for documentation output.
If something happened during the release upload to nexus, you may need to eventually redo the upload. Remove the incomplete repository using the "Drop" button on Nexus website. Before starting the upload again, check the release.properties at the root of the project.
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:
- release.properties
scm.url=scm:git:https://github.com/apache/activemq-artemis-console.git
scm.tag=1.0.0
Give the staging repository contents a quick inspection using the content navigation area, then proceed to close the staging repo using the "Close" button on Nexus website, locking it from further modification and exposing its contents at a staging URL to allow testing. Set a description such as "ActiveMQ Artemis Console (RC1)" while closing.
Use the closed staging repo contents to populate the dist dev svn area with the official release artifacts for voting. Use the script already present in the repo to download the files and populate a new ${CURRENT-RELEASE} dir:
svn co https://dist.apache.org/repos/dist/dev/activemq/activemq-artemis-console/
cd activemq-artemis-console
./prepare-release.sh https://repository.apache.org/content/repositories/orgapacheactivemq-${NEXUS-REPO-ID} ${CURRENT-RELEASE}
Give the files a check over and commit the new dir and start a vote if all looks well.
svn add <version>
svn commit
Old staged releases can be cleaned out periodically.
Once all the artifacts are stage then send an email to [email protected]
. It should have a subject like [VOTE] Apache ActiveMQ Artemis Console <version>
.
Rules for the Apache voting process are stipulated here.
Assuming the vote is successful send a email with a subject like [RESULT] [VOTE] Apache ActiveMQ Artemis Console <version>
informing the list about the voting result.