This is an automated email from the ASF dual-hosted git repository.

ethanli pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/storm.git


The following commit(s) were added to refs/heads/master by this push:
     new 24805b4  MINOR: update RELEASING doc to include more details
     new 637f69a  Merge pull request #3154 from Ethanlm/update-release-doc
24805b4 is described below

commit 24805b44d5fd9579152a6ee876d8e663be55c20f
Author: Ethan Li <[email protected]>
AuthorDate: Fri Oct 25 13:07:26 2019 -0500

    MINOR: update RELEASING doc to include more details
---
 RELEASING.md | 37 +++++++++++++++++++++++++++++++++----
 1 file changed, 33 insertions(+), 4 deletions(-)

diff --git a/RELEASING.md b/RELEASING.md
index 4e6d8b2..06f2012 100644
--- a/RELEASING.md
+++ b/RELEASING.md
@@ -5,6 +5,13 @@ the Storm release process.
 
 ---
 
+# Release Policy
+
+Apache Storm follows the basic idea of [Semantic 
Versioning](https://semver.org/). Given a version number MAJOR.MINOR.PATCH, 
increment the:
+ 1. MAJOR version when you make incompatible API changes,
+ 2. MINOR version when you add functionality in a backwards compatible manner, 
and
+ 3. PATCH version when you make backwards compatible bug fixes.
+ 
 # Release process
 
 ## Preparation
@@ -15,19 +22,39 @@ Install an svn client, and ensure you can access the 
https://dist.apache.org/rep
 
 Ensure you have a signed GPG key, and that the GPG key is listed in the Storm 
KEYS file at https://dist.apache.org/repos/dist/release/storm/KEYS. The key 
should be hooked into the Apache web of trust. You should read the [Apache 
release signing page](http://www.apache.org/dev/release-signing.html), the 
[release distribution 
page](http://www.apache.org/dev/release-distribution.html#sigs-and-sums), as 
well as the [release publishing](http://www.apache.org/dev/release-publishing) 
and [relea [...]
 
+If you are setting up a new MINOR version release, create a new branch based 
on `master` branch, e.g. `2.2.x-branch`. Then on master branch, set the version 
to a higher MINOR version (with SNAPSHOT), e.g. `mvn versions:set 
-DnewVersion=2.3.0-SNAPSHOT -P dist,rat,externals,examples`.
+In this way, you create a new release line and then you can create PATCH 
version releases from it, e.g. `2.2.0`.
+
 ## Setting up a vote
 
-1. Run `mvn release:prepare` followed `mvn release:perform` on the branch to 
be released. This will create all the artifacts that will eventually be 
available in maven central. This step may seem simple, but a lot can go wrong 
(mainly flaky tests).
+0. Checkout to the branch to be released.
+
+1. Run `mvn release:prepare -P dist,rat,externals,examples` followed `mvn 
release:perform -P dist,rat,externals,examples`. This will create all the 
artifacts that will eventually be available in maven central. This step may 
seem simple, but a lot can go wrong (mainly flaky tests). 
+Note that this will create and push two commits with the commit message 
starting with "[maven-release-plugin]" and it will also create and publish a 
git tag, e.g. `v2.2.0`.
 
 2. Once you get a successful maven release, a “staging repository” will be 
created at http://repository.apache.org in the “open” state, meaning it is 
still writable. You will need to close it, making it read-only. You can find 
more information on this step 
[here](www.apache.org/dev/publishing-maven-artifacts.html).
 
-3. Run `mvn package` for `storm-dist/binary` and `storm-dist/source` to create 
the actual distributions.
+3. Checkout to the git tag that was published by Step 1 above, e.g. `git 
checkout tags/v2.2.0 -b v2.2.0`. Run `mvn package` for `storm-dist/binary` and 
`storm-dist/source` to create the actual distributions.
 
-4. Sign and generate checksums for the *.tar.gz and *.zip distribution files. 
+4. Generate checksums for the *.tar.gz and *.zip distribution files, e.g.
+```bash
+cd storm-dist/source/target
+gpg --print-md SHA512 apache-storm-2.2.0-src.zip > 
apache-storm-2.2.0-src.zip.sha512
+gpg --print-md SHA512 apache-storm-2.2.0-src.tar.gz > 
apache-storm-2.2.0-src.tar.gz.sha512
+
+cd storm-dist/binary/final-package/target
+gpg --print-md SHA512 apache-storm-2.2.0.zip > apache-storm-2.2.0.zip.sha512
+gpg --print-md SHA512 apache-storm-2.2.0.tar.gz > 
apache-storm-2.2.0.tar.gz.sha512
+```
 
 5. Create a directory in the dist svn repo for the release candidate: 
https://dist.apache.org/repos/dist/dev/storm/apache-storm-x.x.x-rcx
 
-6. Run `dev-tools/release_notes.py` for the release version, piping the output 
to a RELEASE_NOTES.html file. Move that file to the svn release directory, sign 
it, and generate checksums.
+6. Run `dev-tools/release_notes.py` for the release version, piping the output 
to a RELEASE_NOTES.html file. Move that file to the svn release directory, sign 
it, and generate checksums, e.g.
+```bash
+python dev-tools/release_notes.py 2.2.0 > RELEASE_NOTES.html
+gpg --armor --output RELEASE_NOTES.html.asc --detach-sig RELEASE_NOTES.html
+gpg --print-md SHA512 RELEASE_NOTES.html > RELEASE_NOTES.html.sha512
+```
 
 7. Move the release files from Step 4 and 6 to the svn directory from Step 5. 
Add and commit the files. This makes them available in the Apache staging repo.
 
@@ -56,3 +83,5 @@ Ensure you have a signed GPG key, and that the GPG key is 
listed in the Storm KE
 1. Go to http://repository.apache.org and drop the staging repository.
 
 2. Delete the staged distribution files from 
https://dist.apache.org/repos/dist/dev/storm/
+
+3. Delete the git tag.

Reply via email to