more info on verifying the builds (whether downloaded or not) and vote (a script)
also tidy the release/dir moving pr_report to a subdir Project: http://git-wip-us.apache.org/repos/asf/brooklyn-dist/repo Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-dist/commit/06db67b4 Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-dist/tree/06db67b4 Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-dist/diff/06db67b4 Branch: refs/heads/0.8.0-incubating Commit: 06db67b487a443bdba70044f17cecad6a8493585 Parents: a9e57ef Author: Alex Heneveld <[email protected]> Authored: Thu Sep 3 14:48:08 2015 +0100 Committer: Alex Heneveld <[email protected]> Committed: Fri Sep 4 14:33:51 2015 +0100 ---------------------------------------------------------------------- release/Gemfile | 5 - release/Gemfile.lock | 38 -------- release/README.md | 3 +- release/make-release-artifacts.sh | 4 +- release/pr_report.rb | 12 --- release/print-vote-email.sh | 129 +++++++++++++++++++++++++ release/pull-request-reports/Gemfile | 5 + release/pull-request-reports/Gemfile.lock | 38 ++++++++ release/pull-request-reports/pr_report.rb | 12 +++ 9 files changed, 188 insertions(+), 58 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/brooklyn-dist/blob/06db67b4/release/Gemfile ---------------------------------------------------------------------- diff --git a/release/Gemfile b/release/Gemfile deleted file mode 100644 index 8ab84b5..0000000 --- a/release/Gemfile +++ /dev/null @@ -1,5 +0,0 @@ -#ruby=ruby-2.1.2 -#ruby-gemset=brooklyn-release-helpers - -source 'https://rubygems.org' -gem 'github_api' http://git-wip-us.apache.org/repos/asf/brooklyn-dist/blob/06db67b4/release/Gemfile.lock ---------------------------------------------------------------------- diff --git a/release/Gemfile.lock b/release/Gemfile.lock deleted file mode 100644 index 859202a..0000000 --- a/release/Gemfile.lock +++ /dev/null @@ -1,38 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - addressable (2.3.8) - descendants_tracker (0.0.4) - thread_safe (~> 0.3, >= 0.3.1) - faraday (0.9.1) - multipart-post (>= 1.2, < 3) - github_api (0.12.3) - addressable (~> 2.3) - descendants_tracker (~> 0.0.4) - faraday (~> 0.8, < 0.10) - hashie (>= 3.3) - multi_json (>= 1.7.5, < 2.0) - nokogiri (~> 1.6.3) - oauth2 - hashie (3.4.2) - jwt (1.5.1) - mini_portile (0.6.2) - multi_json (1.11.1) - multi_xml (0.5.5) - multipart-post (2.0.0) - nokogiri (1.6.6.2) - mini_portile (~> 0.6.0) - oauth2 (1.0.0) - faraday (>= 0.8, < 0.10) - jwt (~> 1.0) - multi_json (~> 1.3) - multi_xml (~> 0.5) - rack (~> 1.2) - rack (1.6.4) - thread_safe (0.3.5) - -PLATFORMS - ruby - -DEPENDENCIES - github_api http://git-wip-us.apache.org/repos/asf/brooklyn-dist/blob/06db67b4/release/README.md ---------------------------------------------------------------------- diff --git a/release/README.md b/release/README.md index f1976f6..325b165 100644 --- a/release/README.md +++ b/release/README.md @@ -44,6 +44,7 @@ run for example `/vagrant/make-release/artifacts.sh`. Pull request reporting ---------------------- -`pr_report.rb` (and associated files `Gemfile` and `Gemfile.lock`) uses the GitHub API to extract a list of open pull +The files in `pull-request-reports`, mainly `pr_report.rb` +(and associated files `Gemfile` and `Gemfile.lock`) uses the GitHub API to extract a list of open pull requests, and writes a summary into `pr_report.tsv`. This could then be imported into Google Sheets to provide a handy way of classifying and managing outstanding PRs ahead of making a release. http://git-wip-us.apache.org/repos/asf/brooklyn-dist/blob/06db67b4/release/make-release-artifacts.sh ---------------------------------------------------------------------- diff --git a/release/make-release-artifacts.sh b/release/make-release-artifacts.sh index 8cefc77..b0b48d4 100755 --- a/release/make-release-artifacts.sh +++ b/release/make-release-artifacts.sh @@ -131,8 +131,8 @@ fi release_script_dir=$( cd $( dirname $0 ) && pwd ) brooklyn_dir=$( pwd ) -staging_dir="${brooklyn_dir}/src-release-tmp/${release_name}-src" -bin_staging_dir="${brooklyn_dir}/bin-release-tmp/${release_name}-bin" +staging_dir="${release_script_dir}/tmp/working-src/${release_name}-src" +bin_staging_dir="${release_script_dir}/tmp/working-bin/${release_name}-bin" artifact_dir="${release_script_dir}/${artifact_name}" echo "The version is ${current_version}" http://git-wip-us.apache.org/repos/asf/brooklyn-dist/blob/06db67b4/release/pr_report.rb ---------------------------------------------------------------------- diff --git a/release/pr_report.rb b/release/pr_report.rb deleted file mode 100644 index 95b6317..0000000 --- a/release/pr_report.rb +++ /dev/null @@ -1,12 +0,0 @@ -#ruby - -require 'CSV' -require 'github_api' - -gh = Github.new - -CSV.open("pr_report.tsv", "wb", { :col_sep => "\t" }) do |csv| - gh.pull_requests.list('apache', 'incubator-brooklyn'). - select { |pr| pr.state == "open" }. - each { |pr| csv << [ pr.number, pr.title, pr.created_at, pr.user.login ] } -end http://git-wip-us.apache.org/repos/asf/brooklyn-dist/blob/06db67b4/release/print-vote-email.sh ---------------------------------------------------------------------- diff --git a/release/print-vote-email.sh b/release/print-vote-email.sh new file mode 100755 index 0000000..ac62241 --- /dev/null +++ b/release/print-vote-email.sh @@ -0,0 +1,129 @@ +#!/bin/bash +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +# prints a sample email with all the correct information + +set +x + +fail() { + echo >&2 "$@" + exit 1 +} + +if [ -z "${VERSION_NAME}" ] ; then fail VERSION_NAME must be set ; fi +if [ -z "${RC_NUMBER}" ] ; then fail RC_NUMBER must be set ; fi + +base=apache-brooklyn-${VERSION_NAME}-rc${RC_NUMBER} + +if [ -z "$1" ] ; then fail "A single argument being the staging repo ID must be supplied, e.g. orgapachebrooklyn-1234" ; fi + +archetype_check=`curl https://repository.apache.org/content/repositories/${staging_repo_id}/archetype-catalog.xml 2> /dev/null` +if ! echo $archetype_check | grep brooklyn-archetype-quickstart > /dev/null ; then + fail staging repo looks wrong at https://repository.apache.org/content/repositories/${staging_repo_id} +fi +if ! echo $archetype_check | grep ${VERSION_NAME} > /dev/null ; then + fail wrong version at https://repository.apache.org/content/repositories/${staging_repo_id} +fi + +artifact=release/tmp/${base}/${base}-bin.tar.gz +if [ ! -f $artifact ] ; then + fail could not find artifact $artifact +fi +if [ -z "$APACHE_ID" ] ; then + APACHE_ID=`gpg2 --verify ${artifact}.asc ${artifact} 2>&1 | egrep -o '[^<]*@apache.org>' | cut -d @ -f 1` +fi +if [ -z "$APACHE_ID" ] ; then + fail "could not deduce APACHE_ID (your apache username); are files signed correctly?" +fi +if ! ( gpg2 --verify ${artifact}.asc ${artifact} 2>&1 | grep ${APACHE_ID}@apache.org > /dev/null ) ; then + fail "could not verify signature; are files signed correctly and ID ${APACHE_ID} correct?" +fi + +cat <<EOF + +Subject: [VOTE] Release Apache Brooklyn ${VERSION_NAME} [rc${RC_NUMBER}] + + +This is to call for a vote for the release of Apache Brooklyn ${VERSION_NAME}. + +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/${base} + +The artifact SHA-256 checksums are as follows: + +EOF + +cat release/tmp/${base}/*.sha256 | awk '{print " "$0}' + +cat <<EOF + +The Nexus staging repository for the Maven artifacts is located at: + + https://repository.apache.org/content/repositories/${staging_repo_id} + +All release artifacts are signed with the following key: + + https://people.apache.org/keys/committer/${APACHE_ID}.asc + +KEYS file available here: + + https://dist.apache.org/repos/dist/release/incubator/brooklyn/KEYS + + +The artifacts were built from git commit ID $( git rev-parse HEAD ): + + https://git-wip-us.apache.org/repos/asf?p=incubator-brooklyn.git;a=commit;h=$( git rev-parse HEAD ) + + +Please vote on releasing this package as Apache Brooklyn ${VERSION_NAME}. + +The vote will be open for at least 72 hours. +[ ] +1 Release this package as Apache Brooklyn ${VERSION_NAME} +[ ] +0 no opinion +[ ] -1 Do not release this package because ... + + +Thanks! +EOF + +cat <<EOF + + + +CHECKLIST for reference + +[ ] Download links work. +[ ] Binaries work. +[ ] 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. + +EOF http://git-wip-us.apache.org/repos/asf/brooklyn-dist/blob/06db67b4/release/pull-request-reports/Gemfile ---------------------------------------------------------------------- diff --git a/release/pull-request-reports/Gemfile b/release/pull-request-reports/Gemfile new file mode 100644 index 0000000..8ab84b5 --- /dev/null +++ b/release/pull-request-reports/Gemfile @@ -0,0 +1,5 @@ +#ruby=ruby-2.1.2 +#ruby-gemset=brooklyn-release-helpers + +source 'https://rubygems.org' +gem 'github_api' http://git-wip-us.apache.org/repos/asf/brooklyn-dist/blob/06db67b4/release/pull-request-reports/Gemfile.lock ---------------------------------------------------------------------- diff --git a/release/pull-request-reports/Gemfile.lock b/release/pull-request-reports/Gemfile.lock new file mode 100644 index 0000000..859202a --- /dev/null +++ b/release/pull-request-reports/Gemfile.lock @@ -0,0 +1,38 @@ +GEM + remote: https://rubygems.org/ + specs: + addressable (2.3.8) + descendants_tracker (0.0.4) + thread_safe (~> 0.3, >= 0.3.1) + faraday (0.9.1) + multipart-post (>= 1.2, < 3) + github_api (0.12.3) + addressable (~> 2.3) + descendants_tracker (~> 0.0.4) + faraday (~> 0.8, < 0.10) + hashie (>= 3.3) + multi_json (>= 1.7.5, < 2.0) + nokogiri (~> 1.6.3) + oauth2 + hashie (3.4.2) + jwt (1.5.1) + mini_portile (0.6.2) + multi_json (1.11.1) + multi_xml (0.5.5) + multipart-post (2.0.0) + nokogiri (1.6.6.2) + mini_portile (~> 0.6.0) + oauth2 (1.0.0) + faraday (>= 0.8, < 0.10) + jwt (~> 1.0) + multi_json (~> 1.3) + multi_xml (~> 0.5) + rack (~> 1.2) + rack (1.6.4) + thread_safe (0.3.5) + +PLATFORMS + ruby + +DEPENDENCIES + github_api http://git-wip-us.apache.org/repos/asf/brooklyn-dist/blob/06db67b4/release/pull-request-reports/pr_report.rb ---------------------------------------------------------------------- diff --git a/release/pull-request-reports/pr_report.rb b/release/pull-request-reports/pr_report.rb new file mode 100644 index 0000000..95b6317 --- /dev/null +++ b/release/pull-request-reports/pr_report.rb @@ -0,0 +1,12 @@ +#ruby + +require 'CSV' +require 'github_api' + +gh = Github.new + +CSV.open("pr_report.tsv", "wb", { :col_sep => "\t" }) do |csv| + gh.pull_requests.list('apache', 'incubator-brooklyn'). + select { |pr| pr.state == "open" }. + each { |pr| csv << [ pr.number, pr.title, pr.created_at, pr.user.login ] } +end
