rocketmq-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From dongefore...@apache.org
Subject [rocketmq-site] branch master updated: Polish release manual
Date Thu, 26 Jul 2018 08:43:23 GMT
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 <zhendongliu.lzd@alibaba-inc.com>
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 **dev@rocketmq.apache.org**
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:dev@rocketmq.apache.org)
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:dev@rocketmq.apache.org)
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 **announce@apache.org**, and **dev@rocketmq.apache.org** with the subject
**[ANNOUNCE] Release Apache RocketMQ \<release version\>** and a body along the lines
of:
+## 8. Announce the Release
+Send an email to **announce@apache.org**, and **dev@rocketmq.apache.org** 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 **announce@apache.org**, and **dev@rocketmq.apache.org**
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\>  


Mime
View raw message