From 9f87457ee9451c1d180d92999d932c1be611fb8e Mon Sep 17 00:00:00 2001 From: Justin Bertram Date: Wed, 1 Nov 2017 14:24:48 -0500 Subject: [PATCH] NO-JIRA updating release documentation --- RELEASING.md | 132 ++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 110 insertions(+), 22 deletions(-) diff --git a/RELEASING.md b/RELEASING.md index 7ecda2e3b8..7bd2b163ca 100644 --- a/RELEASING.md +++ b/RELEASING.md @@ -1,4 +1,4 @@ -# A check list of things to be done before a release. # +# A check list of things to be done before a release. Things to do before issuing a new release: @@ -16,16 +16,32 @@ Things to do before issuing a new release: * Test the standalone release (this should be done on windows as well as linux): 1. Unpack the distribution zip or tar.gz -2. Start and stop the server (run.sh and stop.sh) for each configuration +2. Start and stop the server 3. Run the examples (follow the instructions under examples/index.html) 5. Check the manuals have been created properly 6. Check the javadocs are created correctly (including the diagrams) -* If every thing is successful. Follow the Apache guide (http://www.apache.org/dev/publishing-maven-artifacts.html) to build and publish artifacts to Nexus and send out a release vote. +* If every thing is successful follow these next steps to build and publish artifacts to Nexus and send out a release vote. +## Key to Sign the Release -## Extra tests -Note: The Apache Release plugin does not bump the version on the extraTests module. Release manager should manually bump the version in the test/extra-tests/pom.xml to the next development version. +If you don't have a key to sign the release artifacts you can generate one using this command: + +``` +gpg --gen-key +``` + +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 username@apache.org > /tmp/key; gpg --armor --export username@apache.org >> /tmp/key +``` + +Then send the key information in `/tmp/key` to `private@activemq.apache.org` so it can be added. + +Add your key id (available via `gpg --fingerprint `) to the `OpenPGP Public Key Primary Fingerprint` field at +https://id.apache.org/. Note: this is just the key id, not the whole fingerprint. ## Checking out a new empty git repository @@ -37,6 +53,16 @@ cd activemq-artemis git remote add upstream https://git-wip-us.apache.org/repos/asf/activemq-artemis.git ``` +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 "username@apache.org" +git config user.name "FirstName LastName" +``` + +This should be the same `user.email` and `user.name` you use on your main repository. + ## Running the release You will have to use this following maven command to perform the release: @@ -45,14 +71,12 @@ You will have to use this following maven command to perform the release: mvn clean release:prepare -DautoVersionSubmodules=true -Prelease ``` -You could optionally set pushChanges=false, so the commit and tag won't be pushed upstream (you would have to do it yourself): +You could optionally set `pushChanges=false` so the version commit and tag won't be pushed upstream (you would have to do it yourself): ```sh mvn clean release:prepare -DautoVersionSubmodules=true -DpushChanges=false -Prelease ``` - - When prompted make sure the next is a major release. Example: ``` @@ -62,12 +86,26 @@ What is SCM release tag or label for "ActiveMQ Artemis Parent"? (org.apache.acti 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 elease 1.4.1 on that example). +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: - http://maven.apache.org/maven-release/maven-release-plugin/prepare-mojo.html#pushChanges +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.: + +```sh +git push upstream +git push upstream +``` + + +## Extra tests + +Note: The Apache Release plugin does not bump the version on the `extraTests` module. Release manager should manually +bump the version in the test/extra-tests/pom.xml to the next development version. + ## Uploading to nexus @@ -77,6 +115,8 @@ To upload it to nexus, perform this command: mvn release:perform -Prelease ``` +Note: this can take quite awhile depending on the speed for your Internet connection. + ### Resuming release upload @@ -93,11 +133,15 @@ scm.tag=1.4.0 ## Removing additional files -Note: There is one additional step to remove the activemq-pom--source-release.zip from the Nexus staging repository before closing the staging repository. At the moment this artifact is uploaded automatically by the Apache release plugin. In future versions the ActiveMQ Artemis pom will be updated to take this into account. +The last step before closing the staging repository is removing the activemq-pom-<version>-source-release.zip. At +the moment this artifact is uploaded automatically by the Apache release plugin. In future versions the ActiveMQ Artemis +pom will be updated to take this into account. -The file will be located under ./artemis-pom/RELEASE/ +The file will be located under ./artemis-pom/<version>/ -Remove these files manually under Nexus while the repository is still open. +Remove these files manually under Nexus (https://repository.apache.org/#stagingRepositories) while the repository is still open. + +Once the file is removed close the staging repo using the "Close" button on Nexus website. ## Stage the release to the dist dev area @@ -111,12 +155,64 @@ svn co https://dist.apache.org/repos/dist/dev/activemq/activemq-artemis/ cd activemq-artemis ./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. Old staged releases can be cleaned out periodically. +Give the files a check over and commit the new dir and start a vote if all looks well. + +```bash +svn add +svn commit +``` + +Old staged releases can be cleaned out periodically. + +## Locate Release Notes + +1. Go to the "Releases" page for the Artemis JIRA project: https://issues.apache.org/jira/projects/ARTEMIS?selectedItem=com.atlassian.jira.jira-projects-plugin:release-page +2. Click on the version being released. +3. Click the "Release Notes" link near the top of the page. +4. Grab the URL to put into the VOTE email. + +## Send Email + +Once all the artifacts are stage then send an email to `dev@activemq.apache.org`. It should have a subject like `[VOTE] +Apache ActiveMQ Artemis `. Here is an example for the body of the message: + +``` +I would like to propose an Apache ActiveMQ Artemis release. + +We added these new features as part of : + +[ARTEMIS-123] - Great new feature 1 +[ARTEMIS-456] - Great new feature 2 + +The release notes can be found here: +https://issues.apache.org/jira/secure/ReleaseNote.jspa?version=&projectId=12315920 + +Source and binary distributions can be found here: +https://dist.apache.org/repos/dist/dev/activemq/activemq-artemis// + +The Maven repository is here: +https://repository.apache.org/content/repositories/orgapacheactivemq- + +In case you want to give it a try with the maven repo on examples: +http://activemq.apache.org/artemis/docs/latest/hacking-guide/validating-releases.html + +The source tag: +https://git-wip-us.apache.org/repos/asf?p=activemq-artemis.git;a=tag;h=refs/tags/ + +I will update the website after the vote has passed. + + +[ ] +1 approve the release as Apache Artemis 2.4.0 +[ ] +0 no opinion +[ ] -1 disapprove (and reason why) + +Here's my +1 +``` ## Promote artifacts to the dist release area -After a successfull vote, populate the dist release area using the staged +After a successful vote, populate the dist release area using the staged files from the dist dev area to allow them to mirror. ```sh @@ -145,11 +241,3 @@ Any links to them on the site must be updated to reference the ASF archive inste https://archive.apache.org/dist/activemq/activemq-artemis/ Ensure old releases are only removed after the site is updated in order to avoid broken links. - - -## Common Pittfals - -Everything is documented at the Apache guide, but these are common issues you may go through: - -- Make sure someone add your GPG key to add https://dist.apache.org/repos/dist/release/activemq/KEYS -- Add your keys to id.apache.org