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

dongeforever pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/rocketmq-site.git


The following commit(s) were added to refs/heads/master by this push:
     new e16de03  Polish release manual
e16de03 is described below

commit e16de032c2d49fdc357e29637e08d9f8ee03fa1c
Author: zander <[email protected]>
AuthorDate: Thu Jul 26 16:41:18 2018 +0800

    Polish release manual
---
 _docs/08-release-manual.md | 96 +++++++++++++++++++++++++++++-----------------
 1 file changed, 61 insertions(+), 35 deletions(-)

diff --git a/_docs/08-release-manual.md b/_docs/08-release-manual.md
index e33e273..b24500e 100644
--- a/_docs/08-release-manual.md
+++ b/_docs/08-release-manual.md
@@ -9,15 +9,15 @@ modified: 2017-02-7T15:01:43-04:00
 
 This is a guide to make a released version of Apache RocketMQ. Please follow 
the steps below:
 
-## Preliminaries
-### Apache Release Documentation
+## 1. Preliminaries
+#### 1.1 Apache Release Documentation
 The release documentations provided by The ASF can be found here:
 
 * [Apache Release Guide](http://www.apache.org/dev/release-publishing)
 * [Apache Release Policy](http://www.apache.org/dev/release.html)
 * [Maven Release 
Info](http://www.apache.org/dev/publishing-maven-artifacts.html)
 
-### Code Signing Key
+#### 1.2 Code Signing Key
 Create a code signing gpg key for release signing, use **\<your Apache 
ID\>@apache.org** as your primary ID for the code signing key. See [Apache 
Release Signing documentation](https://www.apache.org/dev/release-signing) for 
more details.
 
 * Create new pgp key. Please refer to 
[here](http://www.apache.org/dev/openpgp.html) on how to use gpg key.
@@ -28,7 +28,7 @@ Create a code signing gpg key for release signing, use 
**\<your Apache ID\>@apac
 
 **Tips:** If you have more than one key in your gpg, set the code signing key 
to `~/.gnupg/gpg.conf` as default key is recommended.
  
-### Prepare Your Maven Settings
+#### 1.3 Prepare Your Maven Settings
 Make sure your Maven settings.xml file contains the following:
 
 ```xml
@@ -39,7 +39,6 @@ Make sure your Maven settings.xml file contains the following:
            <properties>
                <mavenExecutorId>forked-path</mavenExecutorId>
                <gpg.keyname>yourKeyName</gpg.keyname>
-               <username>yourApacheID</username>
                
<deploy.url>https://dist.apache.org/repos/dist/dev/rocketmq/</deploy.url>
            </properties>
        </profile>
@@ -67,42 +66,69 @@ Make sure your Maven settings.xml file contains the 
following:
 
 **Tips:** It is highly recommended to use [Maven's password encryption 
capabilities](http://maven.apache.org/guides/mini/guide-encryption.html) for 
your passwords.
 
-### Cleanup JIRA issues
-Cleanup JIRA issues related to this release version, and check all the issues 
has been marked with right version in the `FixVersion` field.
+#### 1.4 Cleanup Issues
+Cleanup JIRA issues or Github Issues related to this release version, and 
check all the issues has been marked with right version in the `FixVersion` 
field.
 
-### Publish the Release Notes
-Generate the release notes via [RocketMQ 
JIRA](https://issues.apache.org/jira/browse/ROCKETMQ/) and publish it to the 
[rocketmq-site](https://github.com/apache/rocketmq-site), there is a [release 
notes](http://rocketmq.apache.org/release_notes/release-notes-4.0.0-incubating/)
 of `4.0.0-incubating` available for reference, include the link to the release 
notes in the voting emails.
+Also, remember to check the current version of MQVersion, which should be 
equal to this released version.
 
-## Build the Release Candidate
-Firstly, checkout a new branch from `master` with its name equal to the 
release version, like `release-4.2.0`.
+#### 1.5 Publish the Release Notes
+Generate the release notes via [RocketMQ 
JIRA](https://issues.apache.org/jira/browse/ROCKETMQ/) and publish it to the 
[rocketmq-site](https://github.com/apache/rocketmq-site), there is a [release 
notes](https://rocketmq.apache.org/release_notes/release-notes-4.2.0/) 
available for reference, include the link to the release notes in the voting 
emails.
 
-### Build the Candidate Release Artifacts
-Before building the release artifacts, do some verifications below:
+## 2.Build the Binary Release Candidate
+Checkout the code to be released, and build the binary artifact.
+Be aware of the os version, for some dependency is os sensitive, such as netty 
tc-native.
 
 * Make sure that your are in the candidate release branch.
 * Make sure that all the unit tests can pass via `mvn clean install`.
 * Make sure that all the integration tests can pass via `mvn clean test 
-Pit-test`.
 
+After the successful building, remember to sign the artifact, and copy them to 
the svn repository, you could refer to [svn 
repository](https://dist.apache.org/repos/dist/release/rocketmq/4.2.0) .
+
+## 3.Build the Source Release Candidate
+In this process, you need to use maven release plugin to release the artifact 
to maven repository. And also, copy them to the svn repository.
+
+#### 3.1 Release to the maven repository
+
+
+Firstly, checkout a new branch from `master` with its name equal to the 
release version, like `release-4.2.0`.
+
 Perform the following to generate and stage the artifacts:
 
 1. `mvn clean release:clean`
-2. `mvn release:prepare -Psigned_release -Darguments="-DskipTests"`, answer 
the correct release version, SCM release tag, and the new development version.
-3. `mvn -Psigned_release release:perform -Darguments="-DskipTests"`, generate 
the artifacts and push them to the [Nexus 
repo](https://repository.apache.org/#stagingRepositories). If you would like to 
perform a dry run first (without pushing the artifacts to the repo), add the 
arg -DdryRun=true
+2. `mvn release:prepare -Psigned_release -Darguments="-DskipTests"`, answer 
the correct release version(use the default, the version in pom, just enter), 
SCM release tag(use the default, the branch name, just enter), and the new 
development version(increate the version by 1.0, if you release 4.2.0, then the 
next version should be 4.3.0).
+3. `mvn -Psigned_release release:perform -Darguments="-DskipTests"`, generate 
the artifacts and push them to the [Nexus 
repo](https://repository.apache.org/#stagingRepositories). If you would like to 
perform a dry run first (without pushing the artifacts to the repo), add the 
arg -DdryRun=true.
 
 Now, the candidate release artifacts can be found in the [Nexus staging 
repo](https://repository.apache.org/#stagingRepositories) and in the `target` 
folder of your local branch.
 
 **Tips:** If you are performing a source-only release, please remove all 
artifacts from the staging repo besides the .zip file containing the source and 
the javadocs jar file. In the Nexus GUI, you can right click on each artifact 
to be deleted and then select `Delete`.
 
-### Validate the Release Candidate
-Now the release candidate is ready, before calling a vote, the artifacts must 
satisfy the following requirements:
+#### 3.2 Rollback and Retry
+If the staging process encounter problem, you may need to rollback:
+Delete the branch and tag created in 3.1 and then redo it.
+
+## 4. Validate the Release Candidate
+
+#### 4.1 check list for binary release:
+
+ *   check the os on which to build the artifact, for the netty tc-native is 
os sensitive
+ *   check LICENSE, should be Apache V2   
+ *   check NOTICE, should have a notice for third-party dependency if necessary
+ *   extract the zip and check if the binary version is correct
+ *   verify the asc(pgp sign), md5, sha1
+ *   start nameserver and broker according to the quick-start 
+ *   run clusterList command to see if the version is correct
+
+#### 4.2 check list for source release:
+ 
+ * check LICENSE, should be Apache V2   
+ * check NOTICE, should have a notice for third-party dependency if necessary
+ * extract the zip and check if the source version is correct
+ * verify the asc(pgp sign), md5, sha1
+ * build the source, start nameserver and broker according to the quick-start
+ * run clusterList command to see if the version is correct
 
-* Checksums and PGP signatures are valid.
-* Build is successful including unit and integration tests.
-* LICENSE and NOTICE files are correct and dependency licenses are acceptable.
-* All source files have license headers and pass RAT checks.
-* Javadocs have been generated correctly.
-* The provenance of all source files is clear (ASF or software grants).
 
+#### 4.3 verify tools
 Please follow the steps below to verify the checksums and PGP signatures:
 
 1. Download the release artifacts, PGP signature file, MD5/SHA hash files.
@@ -132,7 +158,7 @@ Please follow the steps below to verify the checksums and 
PGP signatures:
   gpg --print-mds rocketmq-all-%version-number%-source-release.zip 
   ```
 
-### Release Artifacts to Dev-Repository
+## 5. Release the Staging Artifacts
 If the release candidate passes the validation checklist, close the staging 
repository in Nexus by selecting the staging repository `orgapacherocketmq-XXX` 
and clicking on the `Close` icon.
 
 Nexus will now run through a series of checksum and signature validations.
@@ -141,16 +167,16 @@ If the checks are passed, Nexus will close the repository 
and produce a URL to t
 
 If the checks aren't passed, fix the issues then go back and restart the 
release process.
 
-If everything is ok, use svn to copy the candidate release artifacts to 
RocketMQ repo: https://dist.apache.org/repos/dist/dev/rocketmq/${release 
version}.
+If everything is ok, use svn to copy the candidate release artifacts to 
RocketMQ repo: 
https://dist.apache.org/repos/dist/dev/rocketmq/${release-version}.
 
-## Vote on the Release
+## 6. Vote on the Release
 
 Release voting must successfully pass within the Apache RocketMQ community via 
the **[email protected]** mailing list.
 
 General information regarding the Apache voting process can be found 
[here](http://www.apache.org/foundation/voting.html).
 
-### Apache RocketMQ Community Vote
-To vote on a candidate release, send an email to the [dev 
list](mailto:[email protected]) with subject **[VOTE]: Release Apache 
RocketMQ \<release version\> RC\<RC Number\>** and body:
+#### 6.1 Apache RocketMQ Community Vote
+To vote on a candidate release, send an email to the [dev 
list](mailto:[email protected]) with subject **[VOTE]: Release Apache 
RocketMQ \<release-version\> RC\<RC Number\>** and body:
 
 > Hello RocketMQ Community,  
 >
@@ -185,7 +211,7 @@ To vote on a candidate release, send an email to the [dev 
list](mailto:dev@rocke
 > Thanks,  
 > The Apache RocketMQ Team  
 
-Once 72 hours has passed (which is generally preferred) and/or at least three 
+1 (binding) votes have been cast with no -1 (binding) votes, send an email 
closing the vote and congratulate the release candidate. Please use the 
subject: **[RESULT][VOTE]: Release Apache RocketMQ \<release version\> RC\<RC 
Number\>** :
+Once 72 hours has passed (which is generally preferred) and/or at least three 
+1 (binding) votes have been cast with no -1 (binding) votes, send an email 
closing the vote and congratulate the release candidate. Please use the 
subject: **[RESULT][VOTE]: Release Apache RocketMQ \<release-version\> RC\<RC 
Number\>** :
 
 > Hello RocketMQ Community,  
 >
@@ -206,16 +232,16 @@ Once 72 hours has passed (which is generally preferred) 
and/or at least three +1
 > Thanks,   
 > The Apache RocketMQ Team
 
-If we do not pass the VOTE, fix the related issues, go back, restart the 
release process and increase RC number. When we call a new vote, we must use 
the updated mail subject: **[RESTART][VOTE][#\<Attempt Number\>]: Release 
Apache RocketMQ \<release version\> RC\<RC Number\>**
+If we do not pass the VOTE, fix the related issues, go back, restart the 
release process and increase RC number. When we call a new vote, we must use 
the updated mail subject: **[RESTART][VOTE][#\<Attempt Number\>]: Release 
Apache RocketMQ \<release-version\> RC\<RC Number\>**
 
-## Publish the Release
+## 7. Publish the Release
 Once the Apache RocketMQ PPMC votes pass, publish the release artifacts to the 
Nexus Maven repository and to the Apache release repository.
 
 1. Publish the Maven Artifacts, release the Maven artifacts in Nexus by 
selecting the staging repository **orgapacherocketmq-XXX** and clicking on the 
`Release` icon.
-2. Publish the Artifacts to the Apache Release Repository, use svn copy 
candidate release artifacts to 
https://dist.apache.org/repos/dist/release/rocketmq/${release version}
+2. Publish the Artifacts to the Apache Release Repository, use svn copy 
candidate release artifacts to 
https://dist.apache.org/repos/dist/release/rocketmq/${release-version}
 
-## Announce the Release
-Send an email to **[email protected]**, and **[email protected]** 
with the subject **[ANNOUNCE] Release Apache RocketMQ \<release version\>** and 
a body along the lines of:
+## 8. Announce the Release
+Send an email to **[email protected]**, and **[email protected]** 
with the subject **[ANNOUNCE] Release Apache RocketMQ \<release-version\>** and 
a body along the lines of:
 
 > Hi all,
 >
@@ -225,7 +251,7 @@ Send an email to **[email protected]**, and 
**[email protected]** with t
 > http://rocketmq.apache.org/  
 >
 > The release artifacts can be downloaded here:  
-> https://dist.apache.org/repos/dist/release/rocketmq/${release version}  
+> https://dist.apache.org/repos/dist/release/rocketmq/${release-version}  
 >
 > The release notes can be found here:  
 > \<insert link to the rocketmq release notes\>  

Reply via email to