You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by al...@apache.org on 2015/07/28 17:46:11 UTC

[2/3] incubator-brooklyn git commit: Document the release process

Document the release process


Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/26bb45c1
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/26bb45c1
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/26bb45c1

Branch: refs/heads/master
Commit: 26bb45c1d9986c2d6cfc0cff75c88456298b1bb1
Parents: 1aa1ba1
Author: Richard Downer <ri...@apache.org>
Authored: Tue Jan 13 16:12:39 2015 +0000
Committer: Richard Downer <ri...@apache.org>
Committed: Tue Jul 28 11:50:37 2015 +0100

----------------------------------------------------------------------
 docs/_extra/release.md                          | 288 -------------------
 docs/website/developers/committers/index.md     |   1 +
 .../committers/release-process/announce.md      |  55 ++++
 .../release-process/environment-variables.md    |  21 ++
 .../committers/release-process/fix-release.md   |  10 +
 .../committers/release-process/index.md         |  30 ++
 .../release-process/make-release-artifacts.md   |  49 ++++
 .../committers/release-process/prerequisites.md | 115 ++++++++
 .../committers/release-process/publish-temp.md  |  38 +++
 .../committers/release-process/publish.md       | 129 +++++++++
 .../release-process/release-version.md          |  73 +++++
 .../release-process/verify-release-artifacts.md | 156 ++++++++++
 .../committers/release-process/vote-ipmc.md     |  99 +++++++
 .../committers/release-process/vote.md          | 129 +++++++++
 14 files changed, 905 insertions(+), 288 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/26bb45c1/docs/_extra/release.md
----------------------------------------------------------------------
diff --git a/docs/_extra/release.md b/docs/_extra/release.md
deleted file mode 100644
index 656412c..0000000
--- a/docs/_extra/release.md
+++ /dev/null
@@ -1,288 +0,0 @@
----
-layout: website-normal
-title: Release Process
-toc: /guide/toc.json
----
-
-**This needs substantial updating in light of the Apache move.**
-
-<!--
-TODO
-
-vote required?  see governance.
-
-
-     branch-twice-then-reversion-twice
-     e.g. from master=1.0.0_SNAPSHOT we will go to
-          create branch: v1.0.0_SNAPSHOT
-          reversion master:  1.1.0_SNAPSHOT
-          create branch and reversion:  v1.0.0_RC1, v1.0.0_SNAPSHOT
-     describe scripts for releasing
-     docs
-
-update version, using scripts
-
-push examples to repo
-
-push docs to branch and publish
-
--->
-
-Brooklyn is published to two locations:
-
-* Sonatype, for snapshots and for staging releases
-* Maven Central, for full (GA and milestone) releases
-
-Brooklyn artifacts are generally downloaded from:
-
-1. [Maven Central](http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22io.brooklyn%22), 
-   and (http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22org.apache.brooklyn%22) for pre 0.7.0 versions
-2. [Apache](https://repository.apache.org/index.html#nexus-search;quick~org.apache.brooklyn),
-2. [Sonatype](https://oss.sonatype.org/index.html#nexus-search;quick~io.brooklyn) for pre 0.7.0 versions
-3. [GitHub](https://github.com/apache/incubator-brooklyn).
-
-
-To publish:
-
-* a snapshot release:
-	* mvn deploy to Sonatype
-	* (optional) publish versioned docs to brooklyncentral.github.com project
-* a (milestone) release:
-	* same as above, but with some git versioning 
-	* deploy to Sonatype, then release to Maven Central
-	* deploy a version branch to brooklyn-examples 
-	* deploy (or update) versioned docs
-* a major release:
-	* same as above, and
-	* in addition to versioned examples,  update brooklyn-examples master to match the current (stable) release
-	* in addition to versioned docs, publish full (front page) docs to brooklyncentral.github.com project
-	* bump the snapshot version in brooklyn master to the next release
-
-
-	
-## Configuration 
-
-Your .m2/settings.xml must be configured with the right credentials for Sonatype
-
-  	<servers>
-	...
-		<server>
-			<username> ... </username>
-			<password> ... </password>
-			<id>sonatype-nexus-snapshots</id>
-		</server>
-		<server>
-			<username> ... </username>
-			<password> ... </password>
-			<id>sonatype-nexus-staging</id>
-		</server>
-	...
-	</servers>
-You must be configured to sign artifacts using PGP.
-
-If this is the first time you have used Sonatype, the [Sonatype - Maven Usage Guide](https://docs.sonatype.org/display/Repository/Sonatype+OSS+Maven+Repository+Usage+Guide) is required reading.  
-
-The code snippets below use the following variables:
-{% highlight bash %}
-
-export BROOKLYN_DIR=/path/to/brooklyncentral-brooklyn
-export EXAMPLES_DIR=/path/to/brooklyncentral-brooklyn-examples
-export SITE_DIR=/path/to/brooklyncentral-brooklyncentral.github.com
-
-export SNAPSHOT_VERSION=0.6.0-SNAPSHOT
-export RELEASE_VERSION=0.6.0-M1
-{% endhighlight %}
-
-
-## Preparing a Snapshot Release
-
-### Deploy to Sonatype
-
-Execute the following:
-{% highlight bash %}
-mvn -Dbrooklyn.deployTo=sonatype -DskipTests clean install deploy
-{% endhighlight %}
-
-### (Option) Publish snapshot docs.
-
-(Only required if there have been significant changes to docs or java docs.)
-
-{% highlight bash %}
-
-cd $BROOKLYN_DIR/docs
-git checkout master
-
-if [ ! -f $SITE_DIR/index.html ] ; then echo "could not find docs in $SITE_DIR" ; exit 1 ; fi
-
-# Build the docs
-_scripts/build.sh || { echo "failed to build docs" ; exit 1 ; }
-
-# Wipe any previous edition of the same version, replacing with new build.
-rm -rf $SITE_DIR/v/$SNAPSHOT_VERSION
-mkdir $SITE_DIR/v/$SNAPSHOT_VERSION
-cp -r _site/* $SITE_DIR/v/$SNAPSHOT_VERSION/
-
-# and push, causing GitHub to republish with updated /v/$SNAPSHOT_VERSION/
-pushd $SITE_DIR
-git add -A .
-git commit -m "Updated version docs for version $SNAPSHOT_VERSION"
-git push
-popd
-
-{% endhighlight %}
-
-
-
-## Preparing a (Milestone) Release
-
-### Prepare a Release Branch
-
-{% highlight bash %}
-
-cd $BROOKLYN_DIR
-git checkout -b $RELEASE_VERSION
-usage/scripts/change-version.sh $SNAPSHOT_VERSION $RELEASE_VERSION
-git commit -a -m "Changed version to $RELEASE_VERSION"
-git push -u upstream $RELEASE_VERSION
-
-{% endhighlight %}
-
-### Deploy to Sonatype, and Close the repo.
-
-{% highlight bash %}
-mvn -Dbrooklyn.deployTo=sonatype -DskipTests clean install deploy
-{% endhighlight %}
-
-* Go to [oss.sonatype.org ... #stagingRepositories](https://oss.sonatype.org/index.html#stagingRepositories) (again, need credentials)
-* 'Close' the repo
-* Email the closed repo address to brooklyn-dev list, have people download and confirm it works.
-
-### Update the brooklyn-examples repo's version Branch
-
-{% highlight bash %}
-
-cd $EXAMPLES_DIR
-
-pushd $BROOKLYN_DIR
-git checkout $RELEASE_VERSION
-popd
-
-if [ ! -d simple-web-cluster ] ; then echo "wrong dir" ; exit 1 ; fi
-git checkout master
-git checkout -b $RELEASE_VERSION
-rm -rf *
-cp -r $BROOKLYN_DIR/examples/* .
-rm -rf target
-git add -A
-git commit -m "branch for $RELEASE_VERSION"
-git push -u origin $RELEASE_VERSION
-
-{% endhighlight %}
-
-
-### Update the Versioned Docs
-
-{% highlight bash %}
-
-cd $BROOKLYN_DIR/docs
-git checkout $RELEASE_VERSION
-
-if [ ! -f $SITE_DIR/index.html ] ; then echo "could not find docs in $SITE_DIR" ; exit 1 ; fi
-
-# Build the docs
-_scripts/build.sh || { echo "failed to build docs" ; exit 1 ; }
-
-# Wipe any previous edition of the same version, replacing with new build.
-rm -rf $SITE_DIR/v/$RELEASE_VERSION
-mkdir $SITE_DIR/v/$RELEASE_VERSION
-cp -r _site/* $SITE_DIR/v/$RELEASE_VERSION/
-
-# and push, causing GitHub to republish with updated /v/$RELEASE_VERSION/
-pushd $SITE_DIR
-git add -A .
-git commit -m "Updated version docs for version $RELEASE_VERSION"
-git push
-popd
-
-{% endhighlight %}
-	
-## Preparing a Full Release
-
-Complete *all* above steps.
-
-### Deploy to Maven Central
-
-* Confirm that the closed Sonatype repo has no errors
-* Return to [Sonatype: Staging Repositories](https://oss.sonatype.org/index.html#stagingRepositories)
-* 'Release' the repo
-
-### Deploy the Examples master branch.
-
-{% highlight bash %}
-
-cd $EXAMPLES_DIR
-
-pushd $BROOKLYN_DIR
-git checkout $RELEASE_VERSION
-popd
-
-if [ ! -d simple-web-cluster ] ; then echo "wrong dir" ; exit 1 ; fi
-git checkout master
-rm -rf *
-cp -r $BROOKLYN_DIR/examples/* .
-rm -rf target
-git add -A
-git commit -m "Updated to $RELEASE_VERSION"
-git push -u origin master
-
-{% endhighlight %}
-
-### Update the brooklyn.io Front Page Version
-
-{% highlight bash %}
-
-cd $BROOKLYN_DIR/docs
-
-pushd $SITE_DIR
-# remove old root files, but not the previous version in /v/
-if [ -f start/index.html ] ; then
-  for x in * ; do if [[ $x != "v" ]] ; then rm -rf $x ; fi ; done
-else
-  echo IN WRONG DIRECTORY $SITE_DIR - export SITE_DIR to continue
-  exit 1
-fi
-popd
-
-# re-build for hosting at / rather than at /v/VERSION/
-_scripts/build.sh --url "" || { echo "failed to build docs" ; exit 1 ; }
-
-# copy to site dir
-cp -r _site/* $SITE_DIR/
-
-# and git push
-pushd $SITE_DIR
-git add -A .
-git commit -m "Updated root docs for version $RELEASE_VERSION"
-git push
-popd
-
-{% endhighlight %}
-
-
-### Announce
-* Email the Dev and Users mailing lists.
-* Tweet from [@brooklyncentral](https://twitter.com/brooklyncentral)
-
-### Update Snapshot Version
-
-{% highlight bash %}
-
-export NEW_SNAPSHOT_VERSION=0.7.0-SNAPSHOT
-
-cd $BROOKLYN_DIR
-git checkout master
-usage/scripts/change-version.sh $SNAPSHOT_VERSION $NEW_SNAPSHOT_VERSION
-git commit -a -m "Changed version to $NEW_SNAPSHOT_VERSION"
-git push -u upstream master
-
-{% endhighlight %}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/26bb45c1/docs/website/developers/committers/index.md
----------------------------------------------------------------------
diff --git a/docs/website/developers/committers/index.md b/docs/website/developers/committers/index.md
index abd4781..a37f7c0 100644
--- a/docs/website/developers/committers/index.md
+++ b/docs/website/developers/committers/index.md
@@ -3,6 +3,7 @@ layout: website-normal
 title: Committer Guide
 children:
 - merging-contributed-code.md
+- release-process/index.md
 ---
 
 These pages contain information that is relevant to people with "committer" status in our project.

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/26bb45c1/docs/website/developers/committers/release-process/announce.md
----------------------------------------------------------------------
diff --git a/docs/website/developers/committers/release-process/announce.md b/docs/website/developers/committers/release-process/announce.md
new file mode 100644
index 0000000..81ee49b
--- /dev/null
+++ b/docs/website/developers/committers/release-process/announce.md
@@ -0,0 +1,55 @@
+---
+layout: website-normal
+title: Announce the release
+navgroup: developers
+---
+
+After svnpubsub has updated, the artifacts will be visible at https://www.apache.org/dist/incubator/brooklyn/, and distributed to Apache mirrors around the world shortly after.
+
+An announcement email can then be made:
+
+### Subject: [ANNOUNCE] Apache Brooklyn 0.7.0-incubating released
+{% highlight text %}
+The Apache Brooklyn team is proud to announce the latest release of Apache
+Brooklyn 0.7.0-incubating.
+
+Apache Brooklyn is a framework for modelling, monitoring, and managing
+applications through autonomic blueprints. More details on Apache Brooklyn
+can be found at http://brooklyn.incubator.apache.org/
+
+Version 0.7.0 is a major step for Apache Brooklyn. It is the first full
+release of the project as part of the Apache incubator.
+
+Thanks go to our community for their improvements, feedback and guidance, and
+to Brooklyn’s commercial users for funding much of this development.
+
+As well as a source code release, we offer a full binary distribution
+download, and a full set of Maven artifacts for developers.
+
+Release notes:
+https://brooklyn.incubator.apache.org/v/0.7.0-incubating/misc/release-notes.html
+
+Download:
+https://brooklyn.incubator.apache.org/download/
+
+User guide:
+https://brooklyn.incubator.apache.org/v/0.7.0-incubating/
+
+Maven artifacts have also been made available on repository.apache.org and
+Maven Central.
+
+Disclaimer:
+Apache Brooklyn is an effort undergoing incubation at The Apache Software
+Foundation (ASF), sponsored by Incubator. Incubation is required of
+all newly accepted projects until a further review indicates that the
+infrastructure, communications, and decision making process have
+stabilized in a manner consistent with other successful ASF projects.
+While incubation status is not necessarily a reflection of the
+completeness or stability of the code, it does indicate that the
+project has yet to be fully endorsed by the ASF.
+
+Thanks
+Richard Downer
+release manager for 0.7.0-incubating
+on behalf of the Brooklyn PPMC
+{% endhighlight %}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/26bb45c1/docs/website/developers/committers/release-process/environment-variables.md
----------------------------------------------------------------------
diff --git a/docs/website/developers/committers/release-process/environment-variables.md b/docs/website/developers/committers/release-process/environment-variables.md
new file mode 100644
index 0000000..a82f631
--- /dev/null
+++ b/docs/website/developers/committers/release-process/environment-variables.md
@@ -0,0 +1,21 @@
+---
+layout: website-normal
+title: Environment variables for the release
+navgroup: developers
+---
+
+Many example commands in this section using variable names as placeholders for information that will vary between
+releases. To allow these example commands to run unmodified, set these environment variables appropriately.
+
+{% highlight bash %}
+# The version currently set on the master branch
+OLD_MASTER_VERSION=0.7.0-SNAPSHOT
+# The next version to be set on the master branch
+NEW_MASTER_VERSION=0.8.0-SNAPSHOT
+
+# The version we are releasing now. While Brooklyn is in the Apache Incubator, this must be suffixed `-incubating`.
+VERSION_NAME=0.7.0-incubating
+
+# The release candidate number we are making now.
+RC_NUMBER=1
+{% endhighlight %}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/26bb45c1/docs/website/developers/committers/release-process/fix-release.md
----------------------------------------------------------------------
diff --git a/docs/website/developers/committers/release-process/fix-release.md b/docs/website/developers/committers/release-process/fix-release.md
new file mode 100644
index 0000000..63e1483
--- /dev/null
+++ b/docs/website/developers/committers/release-process/fix-release.md
@@ -0,0 +1,10 @@
+---
+layout: website-normal
+title: Fix on the release branch
+navgroup: developers
+---
+
+Make whatever changes are necessary on the release branch, supported by discussions on the mailing list.
+
+Remember that after the release is done, you should cherry-pick the changes to a new feature branch based on `master`
+and open a pull request, so that the next version will incorporate the bug fixes.

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/26bb45c1/docs/website/developers/committers/release-process/index.md
----------------------------------------------------------------------
diff --git a/docs/website/developers/committers/release-process/index.md b/docs/website/developers/committers/release-process/index.md
new file mode 100644
index 0000000..0e09c0b
--- /dev/null
+++ b/docs/website/developers/committers/release-process/index.md
@@ -0,0 +1,30 @@
+---
+layout: website-normal
+title: Release Process
+navgroup: developers
+children:
+- { path: prerequisites.md }
+- { path: environment-variables.md }
+- { path: release-version.md }
+- { path: make-release-artifacts.md }
+- { path: verify-release-artifacts.md }
+- { path: publish-temp.md }
+- { path: vote.md }
+- { path: fix-release.md }
+- { path: vote-ipmc.md }
+- { path: publish.md }
+- { path: announce.md }
+---
+1. [Prerequisites](prerequisites.html) - steps that a new release manager must do (but which only need to be done once)
+2. [Set environment variables](environment-variables.html) - many example snippets here use environment variables to
+   avoid repetition - this page describes what they are
+2. [Create a release branch and set the version](release-version.html)
+3. [Make the release artifacts](make-release-artifacts.html)
+4. [Verify the release artifacts](verify-release-artifacts.html)
+5. [Publish the release artifacts to the staging area](publish-temp.html)
+6. [Vote on the dev@brooklyn list](vote.html)
+   1. If the vote fails - [fix the release branch](fix-release.html) and resume from step 3
+7. [Vote on the general@incubator list](vote-ipmc.html)
+   1. If the vote fails - [fix the release branch](fix-release.html) and resume from step 3
+8. [Publish the release artifacts to the public location](publish.html)
+9. [Announce the release](announce.html)

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/26bb45c1/docs/website/developers/committers/release-process/make-release-artifacts.md
----------------------------------------------------------------------
diff --git a/docs/website/developers/committers/release-process/make-release-artifacts.md b/docs/website/developers/committers/release-process/make-release-artifacts.md
new file mode 100644
index 0000000..135610aea
--- /dev/null
+++ b/docs/website/developers/committers/release-process/make-release-artifacts.md
@@ -0,0 +1,49 @@
+---
+layout: website-normal
+title: Make the release artifacts
+navgroup: developers
+---
+
+A release script is provided in `release/make-release-artifacts.sh`. This script will prepare all the release artifacts.
+It is written to account for several Apache requirements, so you are advised to use it rather than "rolling your own".
+
+The release script will:
+
+- **Create source code and binary distribution artifacts** and place them in a directory on your workstation.
+- **Create Maven artifacts and upload them to a staging repository** located on the Apache Nexus server.
+
+The script has a single required parameter `-r` which is given the release candidate number - so `-r1` will create
+release candidate 1 and will name the artifacts appropriately.
+
+To run the script:
+
+{% highlight bash %}
+./release/make-release-artifacts.sh -r$RC_NUMBER
+{% endhighlight %}
+
+It will show you the release information it has deduced, and ask yes-or-no if it can proceed. Please note that the
+script will thoroughly clean the Git workspace of all uncommited and unadded files.
+
+A few minutes into the script you will be prompted for the passphrase to your GnuPG private key. You should only be
+asked this question once; the GnuPG agent will cache the password for the remainder of the build.
+
+Please note that uploading to the Nexus staging repository is a slow process. Expect this stage of the build to take
+2 hours.
+
+The release script will:
+
+1. Prepare a staging directory for the source code release
+2. Create .tar.gz and .zip artifacts of the source code
+3. Invoke Maven to build the source code (including running unit tests), and deploy artifacts to a Maven remote
+   repository
+4. Save the .tar.gz and .zip artifacts produced by the build of `brooklyn-dist`
+5. For each of the produced files, produce MD5, SHA1, SHA256 and GnuPG signatures
+
+At the end of the script, it will show you the files it has produced and their location.
+
+Make a signed tag for this release, and then push the tag:
+
+{% highlight bash %}
+git tag -s -m "Tag release ${VERSION_NAME} release candidate ${RC_NUMBER}" apache-brooklyn-${VERSION_NAME}-rc${RC_NUMBER}
+git push origin apache-brooklyn-${VERSION_NAME}-rc${RC_NUMBER}
+{% endhighlight %}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/26bb45c1/docs/website/developers/committers/release-process/prerequisites.md
----------------------------------------------------------------------
diff --git a/docs/website/developers/committers/release-process/prerequisites.md b/docs/website/developers/committers/release-process/prerequisites.md
new file mode 100644
index 0000000..086df5a
--- /dev/null
+++ b/docs/website/developers/committers/release-process/prerequisites.md
@@ -0,0 +1,115 @@
+---
+layout: website-normal
+title: Release Prerequisites
+navgroup: developers
+---
+
+Subversion repositories for release artifacts
+---------------------------------------------
+
+Apache releases are posted to dist.apache.org, which is a Subversion repository.
+
+We have two directories here:
+
+- https://dist.apache.org/repos/dist/release/incubator/brooklyn - this is where IPMC approved releases go. Do not upload
+  here until we have a vote passed on dev@brooklyn and incubator-general. Check out this folder and name it
+  `apache-dist-release-brooklyn`
+- https://dist.apache.org/repos/dist/dev/incubator/brooklyn - this is where releases to be voted on go. Make the release
+  artifact, and post it here, then post the [VOTE] thread with links here. Check out this folder and name it
+  `apache-dist-dev-brooklyn`.
+
+Example:
+
+{% highlight bash %}
+svn co https://dist.apache.org/repos/dist/release/incubator/brooklyn apache-dist-release-brooklyn
+svn co https://dist.apache.org/repos/dist/dev/incubator/brooklyn apache-dist-dev-brooklyn
+{% endhighlight %}
+
+When working with these folders, **make sure you are working with the correct one**, otherwise you may be publishing
+pre-release software to the global release mirror network!
+
+
+GPG keys
+--------
+
+The release manager must have a GPG key to be used to sign the release.
+
+If you have an existing GPG key, but it does not include your Apache email address, you can add your email address as
+described [in this Superuser.com posting](https://superuser.com/a/293283). Otherwise, create a new GPG key giving your
+Apache email address.
+
+Upload your GPG public key (complete with your Apache email address on it) to a public keyserver - e.g. run
+`gpg2 --export --armor richard@apache.org` and paste it into the “submit” box on http://pgp.mit.edu/
+
+Look up your key fingerprint with `gpg2 --fingerprint richard@apache.org` - it’s the long sequence of hex numbers
+separated by spaces. Log in to [https://id.apache.org/](https://id.apache.org/) then copy-and-paste the fingerprint into
+“OpenPGP Public Key Primary Fingerprint”. Submit.
+
+Now add your key to the `apache-dist-release-brooklyn/KEYS` file:
+
+{% highlight bash %}
+cd apache-dist-release-brooklyn
+(gpg2 --list-sigs richard@apache.org && gpg2 --armor --export richard@apache.org) >> KEYS
+svn commit -m 'Update incubator/brooklyn/KEYS'
+{% endhighlight %}
+
+References: [Post on the general@incubator list](https://mail-archives.apache.org/mod_mbox/incubator-general/201410.mbox/%3CCAOGo0VawupMYRWJKm%2Bi%2ByMBqDQQtbv-nQkfRud5%2BV9PusZ2wnQ%40mail.gmail.com%3E)
+
+
+Software packages
+-----------------
+
+The following software packages are required during the build. Make sure you have them installed.
+
+- A Java Development Kit, version 1.7
+- `maven` and `git`
+- `xmlstarlet` is required by the release script to process version numbers in `pom.xml` files
+- `zip` and `unzip`
+- `pinentry` for secure entry of GPG passphrases. If you are building remotely on a Linux machine, `pinentry-curses` is
+  recommended; building on a mac, `port install pinentry-mac` is recommended.
+- `gnupg2`, and `gnupg-agent` if it is packaged separately (it is on Ubuntu Linux)
+- `md5sum` and `sha1sum` - these are often present by default on Linux, but not on Mac. MacPorts provides these in the
+  package `md5sha1sum`.
+
+
+Maven configuration
+-------------------
+
+The release will involve uploading artifacts to Apache's Nexus instance - therefore you will need to configure your
+Maven install with the necessary credentials.
+
+You will need to add something like this to your `~/.m2/settings.xml` file:
+
+{% highlight xml %}
+<?xml version="1.0"?>
+<settings xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd"
+          xmlns="http://maven.apache.org/SETTINGS/1.1.0"
+          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+
+    <!-- ... -->
+
+    <servers>
+
+        <!-- ... -->
+
+        <!-- Required for uploads to Apache's Nexus instance. These are LDAP credentials - the same credentials you
+           - would use to log in to Git and Jenkins (but not JIRA) -->
+        <server>
+            <id>apache.snapshots.https</id>
+            <username>xxx</username>
+            <password>xxx</password>
+        </server>
+        <server>
+            <id>apache.releases.https</id>
+            <username>xxx</username>
+            <password>xxx</password>
+        </server>
+
+        <!-- ... -->
+
+    </servers>
+
+    <!-- ... -->
+
+</settings>
+{% endhighlight %}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/26bb45c1/docs/website/developers/committers/release-process/publish-temp.md
----------------------------------------------------------------------
diff --git a/docs/website/developers/committers/release-process/publish-temp.md b/docs/website/developers/committers/release-process/publish-temp.md
new file mode 100644
index 0000000..aaa6765
--- /dev/null
+++ b/docs/website/developers/committers/release-process/publish-temp.md
@@ -0,0 +1,38 @@
+---
+layout: website-normal
+title: Publish to the staging area
+navgroup: developers
+---
+
+Publish the source and binary distributions to the pre-release area
+-------------------------------------------------------------------
+
+You will need to have checked out the Apache distribution Subversion repository located at
+https://dist.apache.org/repos/dist/dev/incubator/brooklyn. Please refer to [Prerequisites](prerequisites.html) for
+information.
+
+In your workspace for the `dist.apache.org` repo, create a directory with the artifact name and version:
+
+{% highlight bash %}
+mkdir apache-brooklyn-${VERSION_NAME}-rc${RC_NUMBER}
+{% endhighlight %}
+
+Copy into this directory all of the artifacts from the previous step - `-src` and `-bin`, `.tar.gz` and `.zip`, and all
+associated `.md5`, `.sha1`, `.sha256` and `.asc` signatures. Then commit:
+
+{% highlight bash %}
+svn add apache-brooklyn-${VERSION_NAME}-rc${RC_NUMBER}
+svn commit --message "Add apache-brooklyn-${VERSION_NAME}-rc${RC_NUMBER} to dist/dev/incubator/brooklyn"
+{% endhighlight %}
+
+
+Close the staging repository on Apache's Nexus server
+-----------------------------------------------------
+
+*Closing* the staging repository locks it from further changes, and provides a public URL for the repository that can
+be used for downloading the artifacts.
+
+Go to the Apache Nexus server at [https://repository.apache.org/](https://repository.apache.org/) and log in using the
+link in the top right (the credentials are the same as your Git and Jenkins credentials). Go to the "Staging
+Repositories" page, and tick the repository with the name starting `orgapachebrooklyn`. Click the **Close** button.
+Provide a description which includes the version and release candidate, e.g. `Apache Brooklyn 0.7.0-incubating-rc1`.

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/26bb45c1/docs/website/developers/committers/release-process/publish.md
----------------------------------------------------------------------
diff --git a/docs/website/developers/committers/release-process/publish.md b/docs/website/developers/committers/release-process/publish.md
new file mode 100644
index 0000000..1d7746e
--- /dev/null
+++ b/docs/website/developers/committers/release-process/publish.md
@@ -0,0 +1,129 @@
+---
+layout: website-normal
+title: Publish to the public
+navgroup: developers
+---
+
+Publish the source and binary distributions to the pre-release area
+-------------------------------------------------------------------
+
+You will need to have checked out the Apache distribution Subversion repository located at
+https://dist.apache.org/repos/dist/release/incubator/brooklyn. Please refer to [Prerequisites](prerequisites.html) for
+information.
+
+In your workspace for the `dist.apache.org` repo, create a directory with the artifact name and version:
+
+{% highlight bash %}
+mkdir apache-brooklyn-${VERSION_NAME}
+{% endhighlight %}
+
+Refer back to the pre-release area Subversion (see [Publish to the staging area](publish-temp.html)), and copy all of
+the release candidate artifacts - `-src` and `-bin`, `.tar.gz` and `.zip`, and all associated `.md5`, `.sha1`, `.sha256`
+and `.asc` signatures - into this new folder.
+
+Rename all of the files to remove the `-rcN` designation. If you have the `mmv` tool installed, this can be done with
+this command:
+
+{% highlight bash %}
+mmv -v '*-rc'$RC_NUMBER'-*' '#1-#2'
+{% endhighlight %}
+
+The hash files will need patching to refer to the filenames without the `-rcN` designation:
+
+{% highlight bash %}
+sed -i.bak 's/-rc'$RC_NUMBER'-/-/' *.md5 *.sha1 *.sha256
+rm -f *.bak
+{% endhighlight %}
+
+Note that the PGP signatures do not embed the filename so they do not need to be modified
+
+As a final check, re-test the hashes and signatures:
+
+{% highlight bash %}
+for ext in -src.tar.gz -src.zip -bin.tar.gz -bin.zip; do
+    artifact=apache-brooklyn-${VERSION_NAME}${ext}
+    md5sum -c ${artifact}.md5
+    shasum -a1 -c ${artifact}.sha1
+    shasum -a256 -c ${artifact}.sha256
+    gpg2 --verify ${artifact}.asc ${artifact}
+done
+{% endhighlight %}
+
+Then, add them to Subversion and commit.
+
+{% highlight bash %}
+svn add apache-brooklyn-${VERSION_NAME}
+svn commit --message "Add apache-brooklyn-${VERSION_NAME} to dist/release/incubator/brooklyn"
+{% endhighlight %}
+
+
+Publish the staging repository on Apache's Nexus server
+-------------------------------------------------------
+
+*Releasing* the staging repository causes its contents to be copied to the main Apache Nexus repository. This in turn
+is propagated to Maven Central, meaning all of our users can access the artifacts using a default Maven configuration
+(there's no need to add a `<repository>` to their `pom.xml` or `~/.m2/settings.xml`).
+
+Go to the Apache Nexus server at [https://repository.apache.org/](https://repository.apache.org/) and log in using the
+link in the top right (the credentials are the same as your Git and Jenkins credentials). Go to the "Staging
+Repositories" page, and tick the repository with the name starting `orgapachebrooklyn`. Click the **Release** button.
+Provide a description which includes the version, e.g. `Apache Brooklyn 0.7.0-incubating`.
+
+
+Update the website
+------------------
+
+*Instructions on uploading to the website are beyond the scope of these instructions. Refer to the appropriate
+instructions.*
+
+### Publish documentation for the new release
+
+Go to the release branch and perform a build:
+
+{% highlight bash %}
+git checkout ${VERSION_NAME}
+mvn clean install -DskipTests
+{% endhighlight %}
+
+Generate the permalink docs for the release:
+
+{% highlight bash %}
+cd docs
+./_build/build.sh guide-version
+{% endhighlight %}
+
+Now publish _site/v/*${VERSION_NAME}* to the public website.
+
+Update the "latest" docs to this release:
+
+{% highlight bash %}
+./_build/build.sh guide-latest
+{% endhighlight %}
+
+Now publish _site/v/latest to the public website.
+
+### Update the main website to link to the new release
+
+This should be done on the `master` branch:
+
+{% highlight bash %}
+git checkout master
+{% endhighlight %}
+
+1. Edit the file `docs/_config.yml` - change `brooklyn-stable-version` to be the newly-release version, and
+   `brooklyn-version` to be the current SNAPSHOT version on the master branch.
+2. Edit the file `docs/website/download/verify.md` to add links to the MD5/SHA1/SHA256 hashes and PGP signatures for the
+   new version.
+3. Edit the file `docs/website/meta/versions.md` to add the new version.
+4. Build the updated site with `./_build/build.sh website-root` and upload to the website.
+
+
+Tag the release in git
+----------------------
+
+Make a signed tag for this release, based on the tag for the release candidate, and then push the tag:
+
+{% highlight bash %}
+git tag -s -m "Tag release ${VERSION_NAME}" apache-brooklyn-${VERSION_NAME} apache-brooklyn-${VERSION_NAME}-rc${RC_NUMBER}
+git push origin apache-brooklyn-${VERSION_NAME}
+{% endhighlight %}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/26bb45c1/docs/website/developers/committers/release-process/release-version.md
----------------------------------------------------------------------
diff --git a/docs/website/developers/committers/release-process/release-version.md b/docs/website/developers/committers/release-process/release-version.md
new file mode 100644
index 0000000..4f36d49
--- /dev/null
+++ b/docs/website/developers/committers/release-process/release-version.md
@@ -0,0 +1,73 @@
+---
+layout: website-normal
+title: Release branch and set version
+navgroup: developers
+---
+
+This will allow development to continue on master without affecting the release; it also allows quick-fixes to the
+release branch to address last-minute problems (which must of course be merged/cherry-picked back into master later).
+
+Determine the correct name for the version. Note that while in incubation, we must include “incubating” in our release
+name - common practice for this is to append “-incubating” to the release version.
+
+Do not use -rc1, -rc2 etc. in version strings. Use the version that will be the actual published version. (The artifacts
+that get uploaded to the dist.apache.org/dev will include “-rc1” etc. in the folder name, but the contents will be *as
+final*. Therefore, turning the rc into the final is simply a case of taking the rc file and publishing it to the release
+folder with the correct name.)
+
+References:
+- [Post on general@incubator](https://mail-archives.apache.org/mod_mbox/incubator-general/201409.mbox/%3CCAK2iWdS1H9dkJcSdohky6hFqJdP0XyuhAG%2B%3D1Aspxcjt5RmnJw%40mail.gmail.com%3E)
+- [Post on general@incubator](https://mail-archives.apache.org/mod_mbox/incubator-general/201409.mbox/%3CCAOGo0VaEz4cEUbgMgqhh3hiiiubnspiGkQ%3DQv08bOwPqRtzAvQ%40mail.gmail.com%3E)
+
+
+Create the release branch and set the release version number
+------------------------------------------------------------
+
+Create a branch with the same name as the version, based off master:
+
+{% highlight bash %}
+git checkout master
+git pull --rebase # assumes that the Apache canonical repository is the default upstream for your master - amend if necessary
+git checkout -b $VERSION_NAME
+git push -u apache $VERSION_NAME
+{% endhighlight %}
+
+Now change the version numbers throughout the repository using the script `release/change-version.sh`.
+
+Example:
+
+{% highlight bash %}
+./release/change-version.sh BROOKLYN $OLD_MASTER_VERSION $VERSION_NAME
+git add .
+# Now inspect the staged changes and ensure there are no surprises
+git commit -m "Change version to $VERSION_NAME"
+git push
+{% endhighlight %}
+
+
+Update the version on master
+----------------------------
+
+The `master` branch will now need updating to refer to the next planned version. (This step is not required if making
+a "milestone" release or similar.)
+
+Example:
+
+{% highlight bash %}
+git checkout master
+./release/change-version.sh BROOKLYN $OLD_MASTER_VERSION $NEW_MASTER_VERSION
+git add .
+# Now inspect the staged changes and ensure there are no surprises
+git commit -m "Change version to $NEW_MASTER_VERSION"
+git push
+{% endhighlight %}
+
+
+Switch back to the release branch
+---------------------------------
+
+Move back to the release branch:
+
+{% highlight bash %}
+git checkout $VERSION_NAME
+{% endhighlight %}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/26bb45c1/docs/website/developers/committers/release-process/verify-release-artifacts.md
----------------------------------------------------------------------
diff --git a/docs/website/developers/committers/release-process/verify-release-artifacts.md b/docs/website/developers/committers/release-process/verify-release-artifacts.md
new file mode 100644
index 0000000..048737b
--- /dev/null
+++ b/docs/website/developers/committers/release-process/verify-release-artifacts.md
@@ -0,0 +1,156 @@
+---
+layout: website-normal
+title: Verify the release artifacts
+navgroup: developers
+---
+
+Below is described a series of "sanity checks" that should be performed before uploading the artifacts to the
+pre-release area. They are also useful for community members that want to check the artifact before voting (community
+members may also want to check the [list of required software packages](prerequisites.html#software-packages) to ensure
+they have the GnuPG and md5sum/sha1sum installed.
+
+Setup
+-----
+
+The scripts below use several environment variables to cut out repetition and enable easy repeatability for the next
+release. You should determine the following information and set your environment:
+
+{% highlight bash %}
+# The version we are releasing now. While Brooklyn is in the Apache Incubator, this must be suffixed `-incubating`.
+VERSION_NAME=0.7.0-incubating
+
+# The release candidate number we are making now.
+RC_NUMBER=1
+
+# A reference to your Git repository for Brooklyn
+BASE_REPO=~/repos/apache-asf/incubator-brooklyn
+
+# The Git commit hash from which the release was made - get this from the release script, or the Release Manager's announcement
+GIT_COMMIT=edcf928ee65cc29a84376c822759e468a9f016fe
+{% endhighlight %}
+
+Import the PGP keys of the release Managers:
+
+{% highlight bash %}
+curl https://dist.apache.org/repos/dist/release/incubator/brooklyn/KEYS | gpg2 --import
+{% endhighlight %}
+
+
+Verify the hashes and signatures of artifacts
+---------------------------------------------
+
+If the releases have been published to the pre-release area, download them:
+
+{% highlight bash %}
+TEMP_DIR=~/tmp/brooklyn/release/${VERSION_NAME}-rc${RC_NUMBER}
+BASE_NAME=apache-brooklyn-${VERSION_NAME}-rc${RC_NUMBER}
+BASE_URL=https://dist.apache.org/repos/dist/dev/incubator/brooklyn/${BASE_NAME}
+
+mkdir -p ${TEMP_DIR}
+cd ${TEMP_DIR}
+for ext in -src.tar.gz -src.zip -bin.tar.gz -bin.zip; do
+    artifact=${BASE_NAME}${ext}
+    for i in ${artifact} ${artifact}.asc ${artifact}.md5 ${artifact}.sha1 ${artifact}.sha256; do
+      curl ${BASE_URL}/$i -O
+    done
+done
+{% endhighlight %}
+
+Then verify the hashes, and ensure you get a positive message from each one:
+
+{% highlight bash %}
+for ext in -src.tar.gz -src.zip -bin.tar.gz -bin.zip; do
+    artifact=apache-brooklyn-${VERSION_NAME}-rc${RC_NUMBER}${ext}
+    md5sum -c ${artifact}.md5
+    shasum -a1 -c ${artifact}.sha1
+    shasum -a256 -c ${artifact}.sha256
+    gpg2 --verify ${artifact}.asc ${artifact}
+done
+{% endhighlight %}
+
+
+Verify expanded source archive matches contents of RC tag
+---------------------------------------------------------
+
+These commands will compare the contents of the source release to the contents of the equivalent Git commit. Note that
+there will be some differences: we cannot release binary files in the source release, so some test artifacts will
+appear to be missing from the source release, and the source release excludes the documentation, website and release
+scripts.
+
+{% highlight bash %}
+cd $BASE_REPO
+git checkout $GIT_COMMIT
+git clean -d -f -x # WARNING: this will forcibly clean your workspace!
+
+cd $TEMP_DIR
+mkdir unpacked-src
+# Either:
+tar xzf ${BASE_NAME}-src.tar.gz -C unpacked-src/
+# or:
+unzip ${BASE_NAME}-src.zip -d unpacked-src/
+# (or preferably both!)
+diff -qr unpacked-src/$BASE_NAME $BASE_REPO
+{% endhighlight %}
+
+
+Verify the operation of the binary distribution
+-----------------------------------------------
+
+{% highlight bash %}
+cd $TEMP_DIR
+mkdir unpacked-bin
+# Either:
+tar xzf ${BASE_NAME}-bin.tar.gz -C unpacked-bin/
+# or:
+unzip ${BASE_NAME}-bin.tar.gz -d unpacked-bin/
+# (or preferably both!)
+cd unpacked-bin
+./bin/brooklyn launch
+{% endhighlight %}
+
+Try deploying a simple app, such as the YAML:
+
+{% highlight yaml %}
+location: localhost
+services:
+- type: brooklyn.entity.webapp.jboss.JBoss7Server
+{% endhighlight %}
+
+
+Inspect the Maven staging repository
+------------------------------------
+
+Go to the Apache Nexus server at [https://repository.apache.org/](https://repository.apache.org/) and log in using the
+link in the top right (the credentials are the same as your Git and Jenkins credentials). Go to the "Staging
+Repositories" page, and click the repository with the name starting `orgapachebrooklyn`.
+
+Give this a brief inspection to ensure that it looks reasonable. In particular:
+
+- The expected projects are there. (There is no need to do an exhaustive check - but if there is only a couple of
+  projects there, then something has clearly gone wrong!)
+- The projects contain artifacts with the expected version number.
+- The artifacts for a project look reasonable - and there is a `.asc` file (detached PGP cleartext signature) for each
+  artifact.
+
+
+About the sanity check
+----------------------
+
+This is the most basic sanity check. This is now suitable to be uploaded to the pre-release area and an announcement
+made with voting open. This is then the point for the RM and the community to perform more detailed testing on the RC
+artifacts and submit bug reports and votes.
+
+
+If the sanity check fails
+-------------------------
+
+Note the problems causing the failure, and file bug reports, start mailing list discussions etc., as appropriate.
+
+#### For the release manager who was preparing an RC for upload
+
+You should completely discard the defective artifacts.
+
+You will also need to drop the Maven staging repository on Apache's Nexus server: go to the Apache Nexus server at
+[https://repository.apache.org/](https://repository.apache.org/) and log in using the link in the top right (the
+credentials are the same as your Git and Jenkins credentials). Go to the "Staging Repositories" page, and tick the
+repository with the name starting `orgapachebrooklyn`. Click the **Drop** button.

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/26bb45c1/docs/website/developers/committers/release-process/vote-ipmc.md
----------------------------------------------------------------------
diff --git a/docs/website/developers/committers/release-process/vote-ipmc.md b/docs/website/developers/committers/release-process/vote-ipmc.md
new file mode 100644
index 0000000..5278acc
--- /dev/null
+++ b/docs/website/developers/committers/release-process/vote-ipmc.md
@@ -0,0 +1,99 @@
+---
+layout: website-normal
+title: Vote on general@incubator
+navgroup: developers
+---
+
+Copy-paste the e-mail below, being sure to substitute:
+
+- version number
+- RC number
+- “source release of” or “release of”
+- URLs for the [VOTE] and [RESULT][VOTE] messages on dev@brooklyn
+- URLs containing version numbers
+- URL for your own asc key
+- Checksums
+
+### Subject: [VOTE] Release Apache Brooklyn 0.7.0-incubating [rc1]
+
+{% highlight text %}
+This is to call for a vote for the release of Apache Brooklyn 0.7.0-incubating.
+
+The Apache Brooklyn community have voted in favour of making this release:
+Vote thread:
+https://mail-archives.apache.org/mod_mbox/incubator-brooklyn-dev/201507.mbox/%3CCABQFKi1WapCMRUqQ93E7Qow5onKgL3nyG3HW9Cse7vo%2BtUChRQ%40mail.gmail.com%3E
+Result email:
+https://mail-archives.apache.org/mod_mbox/incubator-brooklyn-dev/201507.mbox/%3CCABQFKi2aJHHfXGC0xsMFU0odfB5X6FF5xhpHbs93%2BNfS-fNRZw%40mail.gmail.com%3E
+
+We now ask the IPMC to vote on this release.
+
+This release comprises of a source code distribution, and a corresponding
+binary distribution, and Maven artifacts.
+
+The source and binary distributions, including signatures, digests, etc. can
+be found at:
+https://dist.apache.org/repos/dist/dev/incubator/brooklyn/apache-brooklyn-0.7.0-incubating-rc1
+
+The artifact SHA-256 checksums are as follows:
+c3b5c581f14b44aed786010ac7c8c2d899ea0ff511135330395a2ff2a30dd5cf *apache-brooklyn-0.7.0-incubating-rc1-bin.tar.gz
+cef49056ba6e5bf012746a72600b2cee8e2dfca1c39740c945c456eacd6b6fca *apache-brooklyn-0.7.0-incubating-rc1-bin.zip
+8069bfc54e7f811f6b57841167b35661518aa88cabcb070bf05aae2ff1167b5a *apache-brooklyn-0.7.0-incubating-rc1-src.tar.gz
+acd2229c44e93e41372fd8b7ea0038f15fe4aaede5a3bcc5056f28a770543b82 *apache-brooklyn-0.7.0-incubating-rc1-src.zip
+
+The Nexus staging repository for the Maven artifacts is located at:
+https://repository.apache.org/content/repositories/orgapachebrooklyn-1004
+
+All release artifacts are signed with the following key:
+https://people.apache.org/keys/committer/richard.asc
+
+KEYS file available here:
+https://dist.apache.org/repos/dist/release/incubator/brooklyn/KEYS
+
+The artifacts were built from Git commit ID
+24a23c5a4fd5967725930b8ceaed61dfbd225980
+https://git-wip-us.apache.org/repos/asf?p=incubator-brooklyn.git;a=commit;h=24a23c5a4fd5967725930b8ceaed61dfbd225980
+
+
+Please vote on releasing this package as Apache Brooklyn 0.7.0-incubating.
+
+The vote will be open for at least 72 hours.
+[ ] +1 Release this package as Apache Brooklyn 0.7.0-incubating
+[ ] +0 no opinion
+[ ] -1 Do not release this package because ...
+
+
+Thanks,
+[Release manager name]
+{% endhighlight %}
+
+Email out the vote result
+-------------------------
+
+This is a similar process to counting the votes on the dev@brooklyn list. You will need 3 IPMC members to issue a “+1
+binding” vote, and no IPMC “0 binding” or “-1 binding” votes. Once the voting period has elapsed and the required votes
+received, email out a vote result email. Again this should be a new email thread with the subject prefixed
+“[RESULT][VOTE]”.
+
+### Subject: [RESULT][VOTE] Release Apache Brooklyn 0.7.0-incubating [rc1]
+
+{% highlight text %}
+The vote for releasing Apache Brooklyn 0.7.0-incubating passed with 3 binding +1s, 0 non-binding +1s, and no 0 or -1.
+
+Vote thread link:
+https://mail-archives.apache.org/mod_mbox/incubator-general/201507.mbox/%3CCABQFKi1xMzduVruYXdA15BQkZGVaYnmOChSfUvMw3uWcHA1Beg%40mail.gmail.com%3E
+
+
+Binding +1s:
+Hadrian Zbarcea
+Justin Mclean
+Jean-Baptiste Onofré
+
+
+Thanks to everyone that tested our release and voted.
+
+We will shortly publish the release artifacts.
+
+
+Thanks,
+[Release manager name]
+{% endhighlight %}

http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/26bb45c1/docs/website/developers/committers/release-process/vote.md
----------------------------------------------------------------------
diff --git a/docs/website/developers/committers/release-process/vote.md b/docs/website/developers/committers/release-process/vote.md
new file mode 100644
index 0000000..db8b305
--- /dev/null
+++ b/docs/website/developers/committers/release-process/vote.md
@@ -0,0 +1,129 @@
+---
+layout: website-normal
+title: Vote on dev@brooklyn
+navgroup: developers
+---
+
+Start the vote
+--------------
+
+Copy-paste the e-mail below, being sure to substitute:
+
+- version number
+- RC number
+- URLs containing version numbers
+- URL for your own PGP key
+- Checksums
+- URL for the Maven staging repository
+
+### Subject: [VOTE] Release Apache Brooklyn 0.7.0-incubating [rc1]
+
+{% highlight text %}
+This is to call for a vote for the release of Apache Brooklyn 0.7.0-incubating.
+
+This release comprises of a source code distribution, and a corresponding
+binary distribution, and Maven artifacts.
+
+The source and binary distributions, including signatures, digests, etc. can
+be found at:
+https://dist.apache.org/repos/dist/dev/incubator/brooklyn/apache-brooklyn-0.7.0-incubating-rc1
+
+The artifact SHA-256 checksums are as follows:
+c3b5c581f14b44aed786010ac7c8c2d899ea0ff511135330395a2ff2a30dd5cf *apache-brooklyn-0.7.0-incubating-rc1-bin.tar.gz
+cef49056ba6e5bf012746a72600b2cee8e2dfca1c39740c945c456eacd6b6fca *apache-brooklyn-0.7.0-incubating-rc1-bin.zip
+8069bfc54e7f811f6b57841167b35661518aa88cabcb070bf05aae2ff1167b5a *apache-brooklyn-0.7.0-incubating-rc1-src.tar.gz
+acd2229c44e93e41372fd8b7ea0038f15fe4aaede5a3bcc5056f28a770543b82 *apache-brooklyn-0.7.0-incubating-rc1-src.zip
+
+The Nexus staging repository for the Maven artifacts is located at:
+https://repository.apache.org/content/repositories/orgapachebrooklyn-1004
+
+All release artifacts are signed with the following key:
+https://people.apache.org/keys/committer/richard.asc
+
+KEYS file available here:
+https://dist.apache.org/repos/dist/release/incubator/brooklyn/KEYS
+
+The artifacts were built from Git commit ID
+24a23c5a4fd5967725930b8ceaed61dfbd225980
+https://git-wip-us.apache.org/repos/asf?p=incubator-brooklyn.git;a=commit;h=24a23c5a4fd5967725930b8ceaed61dfbd225980
+
+
+Please vote on releasing this package as Apache Brooklyn 0.7.0-incubating.
+
+The vote will be open for at least 72 hours.
+[ ] +1 Release this package as Apache Brooklyn 0.7.0-incubating
+[ ] +0 no opinion
+[ ] -1 Do not release this package because ...
+
+
+Thanks,
+[Release manager name]
+{% endhighlight %}
+
+
+Reply to vote
+-------------
+
+Here is an example checklist (thanks Andrew Phillips for your thoroughness on jclouds!)
+
+Checklist (all items optional, mark only those personally verified):
+
+- [ ] Checksums and PGP signatures are valid.
+- [ ] Expanded source archive matches contents of RC tag.
+- [ ] Expanded source archive builds and passes tests.
+- [ ] LICENSE is present and correct.
+- [ ] NOTICE is present and correct, including copyright date.
+- [ ] All files have license headers where appropriate.
+- [ ] All dependencies have compatible licenses.
+- [ ] No compiled archives bundled in source archive.
+- [ ] I follow this project's commits list.
+
+
+Count the vote results
+----------------------
+
+If the release email stated a deadline (normally 72 hours), then you should wait at least that long. If there are
+insufficient votes you may need to extend the deadline - as an informal aim, we should look to get 2/3rds of the PPMC
+and some mentors voting +1. If a release-critical issue is raised and confirmed, then you may end the vote early with a
+negative result.
+
+Votes from PPMC members are binding; votes from others are non-binding. In the case of non-binding negative votes,
+please consider these carefully even if you are not bound by them.
+
+If there are any negative or zero votes, consider these carefully. Aim to “convert” negative or zero votes into positive
+by addressing any concerns. A negative vote is not necessarily a veto[citation required], but it should be a clear
+warning sign to not proceed if somebody strongly believes that the release should not proceed as is.
+
+Finally, count up the +1s and separate into binding (PPMC) and non-binding.
+
+Email the vote result
+---------------------
+
+This is a new email thread with a different subject.
+
+### Subject: [RESULT][VOTE] Release Apache Brooklyn 0.7.0-incubating [rc1]
+
+{% highlight text %}
+The vote for releasing Apache Brooklyn 0.7.0-incubating passed with 5 binding +1s, 1 non-binding +1s, and no 0 or -1.
+
+Vote thread link:
+https://mail-archives.apache.org/mod_mbox/incubator-brooklyn-dev/201507.mbox/%3CCABQFKi1WapCMRUqQ93E7Qow5onKgL3nyG3HW9Cse7vo%2BtUChRQ%40mail.gmail.com%3E
+
+Binding +1s:
+Hadrian Zbarcea (IPMC)
+Richard Downer
+Sam Corbett
+Aled Sage
+Andrea Turli
+
+Non-binding +1s:
+Ciprian Ciubotariu
+
+Thanks to everyone that tested our release and voted.
+
+We will shortly begin a vote on the incubator-general list.
+
+
+Thanks,
+[Release manager name]
+{% endhighlight %}