Repository: qpid-cpp Updated Branches: refs/heads/master d092e5295 -> 1f8acbd98
QPID-7584: add some details/helpers for doing qpid-cpp release Project: http://git-wip-us.apache.org/repos/asf/qpid-cpp/repo Commit: http://git-wip-us.apache.org/repos/asf/qpid-cpp/commit/1f8acbd9 Tree: http://git-wip-us.apache.org/repos/asf/qpid-cpp/tree/1f8acbd9 Diff: http://git-wip-us.apache.org/repos/asf/qpid-cpp/diff/1f8acbd9 Branch: refs/heads/master Commit: 1f8acbd9893bb503512451c3e92e776a612153c0 Parents: d092e52 Author: Robert Gemmell <[email protected]> Authored: Fri Dec 9 16:39:48 2016 +0000 Committer: Robert Gemmell <[email protected]> Committed: Fri Dec 9 16:39:48 2016 +0000 ---------------------------------------------------------------------- RELEASE.md | 31 +++++++++++++++++++++ bin/export.sh | 81 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 112 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/1f8acbd9/RELEASE.md ---------------------------------------------------------------------- diff --git a/RELEASE.md b/RELEASE.md new file mode 100644 index 0000000..bce8734 --- /dev/null +++ b/RELEASE.md @@ -0,0 +1,31 @@ +### Building a release for vote: + +1. Grab a clean checkout for safety. +2. Run: "git checkout ${BRANCH}" to switch to branch of the intended release point. +3. Update the versions etc: + - VERSION.txt + - management/python/setup.py + - docs/man/qpidd.1 (and the date) + - src/amqp.cmake (ensure current proton release is marked tested) +4. Commit the changes, tag them. + - Run: "git add ." + - Run: 'git commit -m "update versions for ${TAG}"' + - Run: 'git tag -m "tag ${TAG}" ${TAG}' + - Push changes. Optionally save this bit for later. +5. Run: "bin/export.sh $PWD ${TAG}" to create the qpid-cpp-${TAG}.tar.gz release archive. +6. Create signature and checksums for the archive: + - Rename if needed, e.g "mv qpid-cpp-${TAG}.tar.gz qpid-cpp-${VERSION}.tar.gz" + - e.g "gpg --detach-sign --armor qpid-cpp-${VERSION}.tar.gz" + - e.g "sha1sum qpid-cpp-${VERSION}.tar.gz > qpid-cpp-${VERSION}.tar.gz.sha1" + - e.g "md5sum qpid-cpp-${VERSION}.tar.gz > qpid-cpp-${VERSION}.tar.gz.md5" +7. Commit artifacts to dist dev repo in https://dist.apache.org/repos/dist/dev/qpid/cpp/${TAG} dir. +8. Bump the branch versions to next 1.x.y-SNAPSHOT (and master if it wasn't already). +9. Send email, provide links to dist dev repo + +### After a vote succeeds: + +1. Tag the RC with the final name/version. +2. Commit the artifacts to dist release repo in https://dist.apache.org/repos/dist/release/qpid/cpp/${VERSION} dir: +3. Give the mirrors some time to distribute things. +4. Update the website with release content. +5. Send release announcement email. http://git-wip-us.apache.org/repos/asf/qpid-cpp/blob/1f8acbd9/bin/export.sh ---------------------------------------------------------------------- diff --git a/bin/export.sh b/bin/export.sh new file mode 100755 index 0000000..6b751ad --- /dev/null +++ b/bin/export.sh @@ -0,0 +1,81 @@ +#!/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. +# + +# export.sh - Create a release archive. +set -e +trap "cleanup" 0 1 2 3 9 11 13 15 + +ME=$(basename ${0}) +SRC=$(dirname $(dirname $(readlink -f $0))) + +usage() +{ + echo + echo "Usage: ${ME} [DIR] [TAG]" + exit 1 +} + +cleanup() +{ + trap - 0 1 2 3 9 11 13 15 + echo + [ ${WORKDIR} ] && [ -d ${WORKDIR} ] && rm -rf ${WORKDIR} +} + +DIR=$PWD +TAG=$(git describe --tags --always) + +## +## Allow overrides to be passed on the cmdline +## +if [ $# -gt 2 ]; then + usage +elif [ $# -ge 1 ]; then + DIR=$1 + if [ $# -eq 2 ]; then + TAG=$2 + fi +fi + +# verify the tag exists +git rev-list -1 tags/${TAG} -- >/dev/null || usage + +WORKDIR=$(mktemp -d) + +## +## Create the archive +## +( + cd ${SRC} + MTIME=$(date -d @`git log -1 --pretty=format:%ct tags/${TAG}` '+%Y-%m-%d %H:%M:%S') + ARCHIVE=$DIR/qpid-cpp-${TAG}.tar.gz + VERSION=$(git show tags/${TAG}:VERSION.txt) + PREFIX=qpid-cpp-${VERSION} + [ -d ${WORKDIR} ] || mkdir -p ${WORKDIR} + git archive --format=tar --prefix=${PREFIX}/ tags/${TAG} \ + | tar -x -C ${WORKDIR} + cd ${WORKDIR} + tar -c -z \ + --owner=root --group=root --numeric-owner \ + --mtime="${MTIME}" \ + -f ${ARCHIVE} ${PREFIX} + echo "${ARCHIVE}" +) --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
