| #!/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 |
| |
| staging_repo_id=$1 |
| 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 |
| |
| RELEASE_FOLDER=$(dirname $0)/${base} |
| artifact=${RELEASE_FOLDER}/${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/brooklyn/${base} |
| |
| The artifact SHA-256 checksums are as follows: |
| |
| EOF |
| |
| cat ${RELEASE_FOLDER}/*.sha256 | awk '{print " "$0}' |
| COMMIT_IDS_MESSAGE=$(echo -n "brooklyn: " && git rev-parse HEAD && git submodule --quiet foreach 'echo -n "${name}: " && git rev-parse HEAD') |
| |
| |
| 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/brooklyn/KEYS |
| |
| |
| The artifacts were built from git commit IDs: |
| |
| ${COMMIT_IDS_MESSAGE} |
| All of the above have been tagged as "apache-brooklyn-${VERSION_NAME}-rc${RC_NUMBER}" |
| |
| 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 |