You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@twill.apache.org by ch...@apache.org on 2015/02/19 20:16:16 UTC

incubator-twill git commit: Added a release guide.

Repository: incubator-twill
Updated Branches:
  refs/heads/site 9b4aee1cc -> 9032407bf (forced update)


Added a release guide.


Project: http://git-wip-us.apache.org/repos/asf/incubator-twill/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-twill/commit/9032407b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-twill/tree/9032407b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-twill/diff/9032407b

Branch: refs/heads/site
Commit: 9032407bf3151e72264f35ba4953e5f7632b7cc9
Parents: 2c673ae
Author: Terence Yim <ch...@apache.org>
Authored: Thu Jan 8 18:25:59 2015 -0800
Committer: Terence Yim <ch...@apache.org>
Committed: Thu Feb 19 11:16:07 2015 -0800

----------------------------------------------------------------------
 src/site/markdown/ReleaseGuide.md | 185 +++++++++++++++++++++++++++++++++
 1 file changed, 185 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-twill/blob/9032407b/src/site/markdown/ReleaseGuide.md
----------------------------------------------------------------------
diff --git a/src/site/markdown/ReleaseGuide.md b/src/site/markdown/ReleaseGuide.md
new file mode 100644
index 0000000..80c925d
--- /dev/null
+++ b/src/site/markdown/ReleaseGuide.md
@@ -0,0 +1,185 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+  
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+
+<head>
+  <title>Release Guide</title>
+</head>
+
+## Releasing Apache Twill
+
+This guide describes the steps to building and releasing Apache Twill artifacts.
+
+### Environment Setup
+
+1. Generate a GPG keypair for signing artifacts, if you don't already have one.
+   See [GPG key generation](http://www.apache.org/dev/openpgp.html#generate-key) on how to do so.
+   Make sure the public key is published to a public key server, as well as added to the Twill
+   [KEYS](https://dist.apache.org/repos/dist/release/incubator/twill/KEYS) file.
+1. Add the following section to your Maven settings (`~/.m2/settings.xml`):
+
+   ```
+   <server>
+     <id>apache.releases.https</id>
+     <username>[APACHE_USER_ID]</username>
+     <password>[ENCRYPTED_APACHE_PASSWORD]</password>
+   </server>
+   ```
+   To generate an encrypted password in maven, please consult the
+   [Maven Encryption Guide](http://maven.apache.org/guides/mini/guide-encryption.html).
+
+### Prepare Release Artifacts
+
+1. Create a new release branch from master:
+
+   ```
+   git checkout -b branch-[RELEASE_VERSION]
+   ```
+   The `[RELEASE_VERSION]` is something such as `0.5.0`.
+  
+1. Update the version to the non-snapshot version:
+
+   ```
+   mvn versions:set -DgenerateBackupPom=false -DnewVersion=[RELEASE_VERSION]-incubating
+   git commit . -m "Prepare for releasing [RELEASE_VERSION]-incubating"
+   ```
+  
+1. Create a new signed tag for the release:
+
+   ```
+   git tag -s v[RELEASE_VERSION]-incubating -m 'Releasing [RELEASE_VERSION]-incubating'
+   ```
+  
+1. Push both the new branch and the tag:
+
+   ```
+   git push origin branch-[RELEASE_VERSION]
+   git push origin v[RELEASE_VERSION]
+   ```
+  
+1. Run `gpg-agent` to save the number of times that you have to type in your GPG password
+   when building release artifacts. You can run `gpg -ab` to confirm the the agent is
+   running and it has cached your password correctly. Alternatively, if you don't want to
+   run GPG agent, you can specify your GPG password through
+   `-Dgpg.passphrase=[GPG_PASSWORD]` when running Maven.
+  
+1. Build the source tarball and publish (stage) artifacts to the staging repo:
+
+   ```
+   mvn clean prepare-package -DskipTests -Dremoteresources.skip=true -P hadoop-2.0 &&
+   mvn prepare-package -DskipTests -Dremoteresources.skip=true -P hadoop-2.3 &&
+   mvn deploy -DskipTests -Dremoteresources.skip=true -P hadoopp-2.3 -P apache-release
+   ```
+   The source tarball can be found in `target/apache-twill-[RELEASE_VERSION]-incubating-source-release.tar.gz`
+   after the above command has successfully completed.
+  
+1. Compute the MD5 and SHA512 of the source release tarball:
+
+   ```
+   cd target
+   md5 -q apache-twill-[RELEASE_VERSION]-incubating-source-release.tar.gz > apache-twill-[RELEASE_VERSION]-incubating-source-release.tar.gz.md5
+   shasum -a 512 apache-twill-[RELEASE_VERSION]-incubating-source-release.tar.gz > apache-twill-[RELEASE_VERSION]-incubating-source-release.tar.gz.sha512
+   ```
+  
+1. Checkin the source release tarball, together with the signature, md5 and sha512 files 
+   to `dist.apache.org/repos/dist/dev/incubator/twill/[RELEASE_VERSION]-incubating-rc1/src/`
+   
+1. Create a `CHANGES.txt` file to describe the changes in the release and checkin the file 
+   to `dist.apache.org/repos/dist/dev/incubator/twill/[RELEASE_VERSION]-incubating-rc1/CHANGES.txt`
+   
+1. Go to [https://repository.apache.org](https://repository.apache.org) and close the staging repository.
+
+1. Create a vote in the `dev@twill` mailing list and wait for 72 hours for the vote result. 
+   Here is a template for the email:
+
+   ```
+   Subject: [VOTE] Release of Apache Twill-[RELEASE_VERSION]-incubating [rc1]
+   ==========================================================================
+  
+   Hi all,
+
+   This is a call for a vote on releasing Apache Twill [RELEASE_VERSION]-incubating, release candidate 1. This
+   is the [Nth] release of Twill.
+  
+   The source tarball, including signatures, digests, etc. can be found at:
+   https://dist.apache.org/repos/dist/dev/incubator/twill/[RELEASE_VERSION]-incubating-rc1/src
+  
+   The tag to be voted upon is v[RELEASE_VERSION]-incubating:
+   https://git-wip-us.apache.org/repos/asf?p=incubator-twill.git;a=shortlog;h=refs/tags/v[RELEASE_VERSION]-incubating
+  
+   The release hash is [REF]:
+   https://git-wip-us.apache.org/repos/asf?p=incubator-twill.git;a=commit;h=[REF]
+  
+   The Nexus Staging URL:
+   https://repository.apache.org/content/repositories/orgapachetwill-[STAGE_ID]
+  
+   Release artifacts are signed with the following key:
+   [URL_TO_SIGNER_PUBLIC_KEY]
+  
+   KEYS file available:
+   https://dist.apache.org/repos/dist/dev/incubator/twill/KEYS
+  
+   For information about the contents of this release, see:
+   https://dist.apache.org/repos/dist/dev/incubator/twill/[RELEASE_VERSION]-incubating-rc1/CHANGES.txt
+  
+   Please vote on releasing this package as Apache Twill [RELEASE_VERSION]-incubating
+  
+   The vote will be open for 72 hours.
+  
+   [ ] +1 Release this package as Apache Twill [RELEASE_VERSION]-incubating
+   [ ] +0 no opinion
+   [ ] -1 Do not release this package because ...
+  
+   Thanks,
+   [YOUR_NAME]
+   ```
+  
+1. After the vote is up for 72 hours and having at least three +1 binding votes and no -1 
+   votes, close the vote by replying to the voting thread. Here is a template for the reply email:
+
+   ```
+   Subject: [RESULT][VOTE] Release of Apache Twill-[RELEASE_VERSION]-incubating [rc1]
+   ==================================================================================
+
+   Hi all,
+
+   After being opened for over 72 hours, the vote for releasing Apache Twill
+   [RELEASE_VERSION]-incubating passed with n binding +1s and no 0 or -1.
+
+   Binding +1s:
+   [BINDING_+1_NAMES]
+
+   I am going to create a vote in the general@ list.
+
+   Thanks,
+   [YOUR_NAME]
+   ```
+  
+1. If successful, create a vote in the `general@` mailing list for the IPMC to vote for the 
+   release. Wait for 72 hours for the vote result. Use the same template as the dev vote,
+   with the addition of links to the dev vote and result mail thread.
+   
+1. After the vote in `general@` is completed with at least three +1 binding votes, close
+   the vote by replying to the voting thread.
+   
+1. Copy the release artifacts and `CHANGES.txt` from the dev to release directory at
+   `dist.apache.org/repos/dist/release/incubator/twill/[RELEASE_VERSION]-incubating`
+   
+1. Go to [https://repository.apache.org](https://repository.apache.org) and release the
+   staging repository.
+   
+1. Send out an announcement of the release to `dev@twill` and `announce@` mailing lists.