From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mail-qa0-x233.google.com ([2607:f8b0:400d:c00::233]) by metis.ext.pengutronix.de with esmtp (Exim 4.72) (envelope-from ) id 1WDwy5-0003hZ-E2 for ptxdist@pengutronix.de; Thu, 13 Feb 2014 15:08:46 +0100 Received: by mail-qa0-f51.google.com with SMTP id f11so15990007qae.24 for ; Thu, 13 Feb 2014 06:08:38 -0800 (PST) From: jon@ringle.org Date: Thu, 13 Feb 2014 09:08:27 -0500 Message-Id: <1392300507-30372-1-git-send-email-jon@ringle.org> Subject: [ptxdist] [PATCH] make_release.sh: make it more accessible for creating custom releases Reply-To: ptxdist@pengutronix.de List-Id: PTXdist Development Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: ptxdist-bounces@pengutronix.de Errors-To: ptxdist-bounces@pengutronix.de To: ptxdist@pengutronix.de Cc: Jon Ringle From: Jon Ringle Without args, the script will continue to work as it used to for pengutronix approved releases But now a custom release can be created if your in a situation where you need to distribute to a group of developers a needed fix to ptxdist and you can't wait until the next pengutronix release of ptxdist. I've personally setup my local ptxdist.git repo to use gitflow-AVH: [gitflow "branch"] master = production develop = develop [gitflow "prefix"] feature = feature/ release = release/ hotfix = hotfix/ support = support/ versiontag = gp- I will then call this script from the production branch like this: $ git checkout production $ ./scripts/make_release.sh -s "GP" -t "-a" gridpoint production release and if I need a subsequent release within the same month: $ git flow release start ptxdist-2014.02.x_GP $ ./scripts/make_release.sh -s "GP" -t "-a" gridpoint production release Signed-off-by: Jon Ringle --- scripts/make_release.sh | 60 ++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 49 insertions(+), 11 deletions(-) diff --git a/scripts/make_release.sh b/scripts/make_release.sh index f0d4357..3515740 100755 --- a/scripts/make_release.sh +++ b/scripts/make_release.sh @@ -2,7 +2,45 @@ set -e -origin=origin +usage() { +cat <<-EOF + +Usage: `basename "$0"` OPTIONS [origin] [master] [stable] + + -h this help + -t Options to pass to git tag. Default: -s + -s Suffix to append to release tag name. Default is no suffix + + [origin] The git remote to push to. Default: origin + [master] The master branch for new releases. Default: master + [stable] The stable/ branch branch dir for stable releases. Default: stable +EOF +} + +suffix= +tagopts=-s + +while getopts "ht:s:" OPT +do + case "$OPT" in + h) + usage + exit 1 + ;; + t) + tagopts="$OPTARG" + ;; + s) + suffix="_$OPTARG" + ;; + esac +done +shift $(expr $OPTIND - 1) + +origin=${1:-origin} +master=${2:-master} +stable=${3:-stable} + v="ptxdist-" branch="$(git symbolic-ref HEAD)" @@ -29,23 +67,23 @@ fi # guess if we're going to make a new or stable release case "${branch}" in - master) - release="${v}$(date +%Y.%m).0" - prev_release="${v}*.0" + ${master}) + release="${v}$(date +%Y.%m).0${suffix}" + prev_release="${v}*.0${suffix}" ;; - stable/*) - release="${branch##stable/}" - release="${release%.x}" + ${stable}/*) + release="${branch##${stable}/}" + release="${release%.x${suffix}}" inc="$(git tag -l "${release}.*" | wc -l)" if [ ${inc} -eq 0 ]; then echo "about to make stable a release for '${release}', but no '.0' found" >&2 exit 1 fi - prev_release="${release}.$((inc - 1))" - release="${release}.${inc}" + prev_release="${release}.$((inc - 1))${suffix}" + release="${release}.${inc}${suffix}" ;; *) - echo "please checkout either master or stable branch" >&2 + echo "please checkout either ${master} or ${stable} branch" >&2 exit 1 ;; esac @@ -70,7 +108,7 @@ log="${tmp}/log" printf "${release}\n\n" > "${log}" git shortlog "${prev_release}"..HEAD >> "${log}" echo "creating tag '${release}'" -git tag -s -F "${log}" "${release}" +git tag ${tagopts} -F "${log}" "${release}" # create tarball here="$(pwd)" -- 1.8.5.4 -- ptxdist mailing list ptxdist@pengutronix.de