curator-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
Subject git commit: Recipe/todo list for releases
Date Sat, 06 Apr 2013 21:33:46 GMT
Updated Branches:
  refs/heads/master daf3518bf -> 17d844b56

Recipe/todo list for releases


Branch: refs/heads/master
Commit: 17d844b5638d8e6b7eed3c337c6d3ec3381b2421
Parents: daf3518
Author: randgalt <>
Authored: Sat Apr 6 16:33:43 2013 -0500
Committer: randgalt <>
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(-)
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|#tool-chain]
+* [GPG|#gpg]
 * [Maven Settings|#maven-settings]
-* [How to Publish the Curator Website|#publish-website]
 * [Git Setup|#git-setup]
+* [GitHub Flow|#github-flow]
+* [Jira|#use-jira]
+* [Maven Checks|maven-checks]
+* [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]
+h2. Tools
+Curator is built using Maven and Git. You should be familiar with both of these tools. For
+you also need to install GPG and create a key that is available from a well known public
+h2. GPG
+Download GPG from []. Then, follow the steps described
+here, [],
+*Generate a Key Pair* and *Distribute Your Public Key*.
 h2. Maven Settings
@@ -29,6 +54,7 @@ website):
+    	        <gpg.keyname>id-of-your-pgp-key</gpg.keyname>
@@ -39,6 +65,87 @@ website):
+h2. Git Setup
+Apache has a good guide on how to prepare your environment for interacting with the Curator
Git repo: [].
+h2. Development
+h3. GitHub Flow
+Curator loosely uses [GitHub Flow|]. 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
+* 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
+h3. Jira
+For all but minor changes, there should be a Jira "ticket" created at [].
+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.
+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}}.
+h2. Perform the Release
+# Execute release/perform: {{release:perform}}.
+# Verify the staged artifacts in the Apache Nexus repository:
+** Go to: []
+** 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.
+h2. Initiate a Vote On the Release
+# Create a VOTE email thread on [@dev|] to record
votes as replies (see [Example Emails|email-examples.html]).
+# If the Vote succeeds, you can then promote the release:
+** At [] 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]).
+h2. Promote the Release
+Upon a successful vote for the release, it should be promoted:
+# Release the artifact:
+** Go to: []
+** 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
 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
-h2. Git Setup
-Apache has a good guide on how to prepare your environment for interacting with the Curator
Git repo: [].
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
+To: "Apache Curator Developers List" <>
+Subject: [VOTE] Release Curator x.y.z
+This is a vote to release Curator x.y.z
+Link to release notes:
+Staging repo:
+Release artifact:
+Vote will be open for 72 hours.
+[ ] +1
+[ ] 0
+[ ] -1 (explain why)
+h2. Release Vote Result Email
+To: "Apache Curator Developers List" <>
+Subject: [RESULT] [VOTE] Release Curator x.y.z
+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.

View raw message