Return-Path: X-Original-To: apmail-brooklyn-commits-archive@minotaur.apache.org Delivered-To: apmail-brooklyn-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id CD9F817EC1 for ; Tue, 28 Jul 2015 15:46:49 +0000 (UTC) Received: (qmail 96627 invoked by uid 500); 28 Jul 2015 15:46:27 -0000 Delivered-To: apmail-brooklyn-commits-archive@brooklyn.apache.org Received: (qmail 96602 invoked by uid 500); 28 Jul 2015 15:46:27 -0000 Mailing-List: contact commits-help@brooklyn.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@brooklyn.incubator.apache.org Delivered-To: mailing list commits@brooklyn.incubator.apache.org Received: (qmail 96593 invoked by uid 99); 28 Jul 2015 15:46:27 -0000 Received: from Unknown (HELO spamd1-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 28 Jul 2015 15:46:27 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id 1A6D6D84AD for ; Tue, 28 Jul 2015 15:46:27 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 0.624 X-Spam-Level: X-Spam-Status: No, score=0.624 tagged_above=-999 required=6.31 tests=[KAM_ASCII_DIVIDERS=0.8, KAM_LAZY_DOMAIN_SECURITY=1, KAM_LOTSOFHASH=0.25, RP_MATCHES_RCVD=-1.427, URIBL_BLOCKED=0.001] autolearn=disabled Received: from mx1-us-east.apache.org ([10.40.0.8]) by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024) with ESMTP id RkVRNrgVc_jC for ; Tue, 28 Jul 2015 15:46:11 +0000 (UTC) Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx1-us-east.apache.org (ASF Mail Server at mx1-us-east.apache.org) with SMTP id 3033F43816 for ; Tue, 28 Jul 2015 15:46:11 +0000 (UTC) Received: (qmail 96014 invoked by uid 99); 28 Jul 2015 15:46:10 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 28 Jul 2015 15:46:10 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 96592E188B; Tue, 28 Jul 2015 15:46:10 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: aledsage@apache.org To: commits@brooklyn.incubator.apache.org Date: Tue, 28 Jul 2015 15:46:11 -0000 Message-Id: <51aaa6d05eb3458e9db44723f792c7b1@git.apache.org> In-Reply-To: <4b5bd55c53684675b0b3d35ae6a5d96f@git.apache.org> References: <4b5bd55c53684675b0b3d35ae6a5d96f@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [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 Authored: Tue Jan 13 16:12:39 2015 +0000 Committer: Richard Downer 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.** - - - -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 - - - ... - - ... - ... - sonatype-nexus-snapshots - - - ... - ... - sonatype-nexus-staging - - ... - -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 %} + + + + + + + + + + + + apache.snapshots.https + xxx + xxx + + + apache.releases.https + xxx + xxx + + + + + + + + + +{% 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 `` 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 %}