You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@curator.apache.org by ra...@apache.org on 2013/04/06 23:33:46 UTC

git commit: Recipe/todo list for releases

Updated Branches:
  refs/heads/master daf3518bf -> 17d844b56


Recipe/todo list for releases


Project: http://git-wip-us.apache.org/repos/asf/incubator-curator/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-curator/commit/17d844b5
Tree: http://git-wip-us.apache.org/repos/asf/incubator-curator/tree/17d844b5
Diff: http://git-wip-us.apache.org/repos/asf/incubator-curator/diff/17d844b5

Branch: refs/heads/master
Commit: 17d844b5638d8e6b7eed3c337c6d3ec3381b2421
Parents: daf3518
Author: randgalt <ra...@apache.org>
Authored: Sat Apr 6 16:33:43 2013 -0500
Committer: randgalt <ra...@apache.org>
Committed: Sat Apr 6 16:33:43 2013 -0500

----------------------------------------------------------------------
 src/site/confluence/committers.confluence     |  114 ++++++++++++++++++-
 src/site/confluence/email-examples.confluence |   54 +++++++++
 2 files changed, 162 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-curator/blob/17d844b5/src/site/confluence/committers.confluence
----------------------------------------------------------------------
diff --git a/src/site/confluence/committers.confluence b/src/site/confluence/committers.confluence
index ddd57a5..4d4da08 100644
--- a/src/site/confluence/committers.confluence
+++ b/src/site/confluence/committers.confluence
@@ -1,9 +1,34 @@
 h1. Information/Recipes for Curator Committers
 
+*Tools/Preparation*
+* [Tools|#tool-chain]
+* [GPG|#gpg]
 * [Maven Settings|#maven-settings]
-* [How to Publish the Curator Website|#publish-website]
 * [Git Setup|#git-setup]
 
+*Development*
+* [GitHub Flow|#github-flow]
+* [Jira|#use-jira]
+* [Maven Checks|maven-checks]
+
+*Release/Publishing*
+* [Prepare for Release|#release-prepare]
+* [Perform the Release|#release-perform]
+* [Vote On the Release|#release-vote]
+* [Promote the Release|#release-promote]
+* [How to Publish the Curator Website|#publish-website]
+
+{anchor:tool-chain}
+h2. Tools
+Curator is built using Maven and Git. You should be familiar with both of these tools. For publishing,
+you also need to install GPG and create a key that is available from a well known public site.
+
+{anchor:gpg}
+h2. GPG
+Download GPG from [http://www.gnupg.org/download/]. Then, follow the steps described
+here, [http://www.sonatype.com/people/2010/01/how-to-generate-pgp-signatures-with-maven/], to
+*Generate a Key Pair* and *Distribute Your Public Key*.
+
 {anchor:maven-settings}
 h2. Maven Settings
 
@@ -29,6 +54,7 @@ website):
             <properties>
                 ...
                 <curator-website-checkout-path>path-goes-here</curator-website-checkout-path>
+    	        <gpg.keyname>id-of-your-pgp-key</gpg.keyname>
                 ...
             </properties>
             ...
@@ -39,6 +65,87 @@ website):
 </settings>
 {noformat}
 
+{anchor:git-setup}
+h2. Git Setup
+
+Apache has a good guide on how to prepare your environment for interacting with the Curator Git repo: [https://git-wip-us.apache.org/].
+
+----
+
+h2. Development
+
+{anchor:github-flow}
+h3. GitHub Flow
+
+Curator loosely uses [GitHub Flow|http://scottchacon.com/2011/08/31/github-flow.html]. The short form of GitHub Flow is:
+
+* Anything in the master branch is deployable
+* To work on something new, create a descriptively named branch off of master (ie: new-oauth2-scopes)
+* Commit to that branch locally and regularly push your work to the same named branch on the server
+* When you need feedback or help, or you think the branch is ready for merging, send a pull request
+* After someone else has reviewed and signed off on the feature, you can merge it into master
+* Once it is merged and pushed to 'master', you can and should deploy immediately
+
+{anchor:use-jira}
+h3. Jira
+
+For all but minor changes, there should be a Jira "ticket" created at [https://issues.apache.org/jira/browse/CURATOR].
+
+{anchor:maven-checks}
+h3. Maven Checks
+Regardless of which IDE you use, you should periodically perform a {{mvn clean install}} to validate that the various configured checks (such as license headers,
+etc.) are passing as well as the unit tests.
+
+----
+
+{anchor:release-prepare}
+h2. Prepare the Release
+
+# Do a dry run of the release/prepare step by executing {{mvn release:prepare -DdryRun=true}}. The dry run will not commit any changes back to Git and gives you the opportunity to verify that the release process will complete
+as expected. If you need to cancel, execute {{mvn release:clean}} and then reset via {{git reset --hard}}.
+# Verify that the release process completed as expected:
+** The release plugin will create {{pom.xml.tag}} files which contain the changes that would have been committed to SVN. The only differences between {{pom.xml.tag}}
+and its corresponding {{pom.xml}} file should be the version number.
+** If other formatting changes have been made you should review the changes and then commit and push them.
+** Once any failures or required updates have been committed to svn, rollback the release prepare files: {{mvn release:rollback}}
+# Execute the release/prepare step for real this time. You'll be prompted for the same version information and optionally your GPG
+passphrase again: {{mvn release:prepare}}.
+
+{anchor:release-perform}
+h2. Perform the Release
+
+# Execute release/perform: {{release:perform}}.
+# Verify the staged artifacts in the Apache Nexus repository:
+** Go to: [https://repository.apache.org/index.html]
+** Enterprise > Staging
+** Staging tab > Name column > curator
+** Navigate through the artifact tree and double check things.
+# Close the Nexus staging repo by clicking on the curator repo and clicking the "Close" button.
+# Important: Do *not* release the repo at this point. Releases require voting.
+
+{anchor:release-vote}
+h2. Initiate a Vote On the Release
+# Create a VOTE email thread on [@dev|mailto:dev@curator.incubator.apache.org] to record votes as replies (see [Example Emails|email-examples.html]).
+# If the Vote succeeds, you can then promote the release:
+** At [https://repository.apache.org] select the curator repo and click the "Release" button.
+** More TBD
+# Regardless of the vote result, send a RESULT VOTE email (see [Example Emails|email-examples.html]).
+
+{anchor:release-promote}
+h2. Promote the Release
+Upon a successful vote for the release, it should be promoted:
+# Release the artifact:
+** Go to: [https://repository.apache.org/index.html]
+** Select the curator release and click the "Release" button.
+# Deploy the component site:
+** TBD
+# Add the distribution artifacts to the distribution area:
+** TBD
+# Announce the Release:
+** TBD
+
+----
+
 {anchor:publish-website}
 h2. How to Publish the Curator Website
 
@@ -54,8 +161,3 @@ Have a look at the staged site and make sure it's good. Then:
 mvn site-deploy
 {noformat}
 
-{anchor:git-setup}
-h2. Git Setup
-
-Apache has a good guide on how to prepare your environment for interacting with the Curator Git repo: [https://git-wip-us.apache.org/].
-

http://git-wip-us.apache.org/repos/asf/incubator-curator/blob/17d844b5/src/site/confluence/email-examples.confluence
----------------------------------------------------------------------
diff --git a/src/site/confluence/email-examples.confluence b/src/site/confluence/email-examples.confluence
new file mode 100644
index 0000000..35a7024
--- /dev/null
+++ b/src/site/confluence/email-examples.confluence
@@ -0,0 +1,54 @@
+h1. Example Emails
+
+h2. Release Vote Email Example
+
+{noformat}
+To: "Apache Curator Developers List" <de...@curator.incubator.apache.org>
+Subject: [VOTE] Release Curator x.y.z
+
+Hello,
+
+This is a vote to release Curator x.y.z
+
+Link to release notes:
+https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12314425&version=12324259
+
+Staging repo:
+https://repository.apache.org/content/repositories/curator-[YOUR REPOSITORY ID]/etc
+
+Release artifact:
+https://repository.apache.org/content/repositories/curator-[YOUR REPOSITORY ID]/etc
+
+Vote will be open for 72 hours.
+
+[ ] +1
+[ ] 0
+[ ] -1 (explain why)
+{noformat}
+
+h2. Release Vote Result Email
+
+{noformat}
+To: "Apache Curator Developers List" <de...@curator.incubator.apache.org>
+Subject: [RESULT] [VOTE] Release Curator x.y.z
+
+Hello,
+
+The vote to release Curator x.y.z has passed/failed.
+
++1 (binding):
+
+    Jordan Zimmerman (*)
+    Patrick Hunt (*)
+    Jay Zarfoss (*)
+    John Galt
+
+* IPMC members
+
++1 (non binding):
+
+    Ryan Giggs
+    Wayne Rooney
+
+I will promote the artifacts to the central repo.
+{noformat}