mailarchive of the ptxdist mailing list
 help / color / mirror / Atom feed
* [ptxdist] [PATCH] make_release.sh: make it more accessible for creating custom releases
@ 2014-02-13 14:08 jon
  0 siblings, 0 replies; 3+ messages in thread
From: jon @ 2014-02-13 14:08 UTC (permalink / raw)
  To: ptxdist; +Cc: Jon Ringle

From: Jon Ringle <jringle@gridpoint.com>

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 <jringle@gridpoint.com>
---
 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 <tagopts>    Options to pass to git tag. Default: -s
+    -s <suffix>     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

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [ptxdist] [PATCH] make_release.sh: make it more accessible for creating custom releases
  2014-02-05 19:55 ` [ptxdist] [PATCH] make_release.sh: make it more accessible for creating custom releases jon
@ 2014-02-12  8:54   ` Michael Olbrich
  0 siblings, 0 replies; 3+ messages in thread
From: Michael Olbrich @ 2014-02-12  8:54 UTC (permalink / raw)
  To: ptxdist

On Wed, Feb 05, 2014 at 02:55:33PM -0500, jon@ringle.org wrote:
> From: Jon Ringle <jringle@gridpoint.com>
> 
> 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 gridpoint production release GP -a
> 
> and if I need a subsequent release within the same month:
> $ git flow release start ptxdist-2014.02.x_GP
> $ ./scripts/make_release.sh gridpoint production release GP -a
> 
> Signed-off-by: Jon Ringle <jringle@gridpoint.com>
> ---
>  scripts/make_release.sh |   29 ++++++++++++++++++-----------
>  1 file changed, 18 insertions(+), 11 deletions(-)
> 
> diff --git a/scripts/make_release.sh b/scripts/make_release.sh
> index f0d4357..3c8a555 100755
> --- a/scripts/make_release.sh
> +++ b/scripts/make_release.sh
> @@ -2,7 +2,14 @@
>  
>  set -e
>  
> -origin=origin
> +origin=${1:-origin}
> +master=${2:-master}
> +stable=${3:-stable}
> +suffix=${4:-}
> +tagsignopt=${5:--s}

This makes things really confusing. Use 'getopt' including '-h' I think.

Michael

> +
> +[ -n "${suffix}" ] && suffix="_${suffix}"
> +
>  v="ptxdist-"
>  
>  branch="$(git symbolic-ref HEAD)"
> @@ -29,23 +36,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 +77,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 ${tagsignopt} -F "${log}" "${release}"
>  
>  # create tarball
>  here="$(pwd)"
> -- 
> 1.7.10.4
> 
> 
> -- 
> ptxdist mailing list
> ptxdist@pengutronix.de
> 

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

-- 
ptxdist mailing list
ptxdist@pengutronix.de

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [ptxdist] [PATCH] make_release.sh: make it more accessible for creating custom releases
  2014-02-05 19:55 [ptxdist] [PATCH] ptxd_make_get.sh: remove git fetch --progress jon
@ 2014-02-05 19:55 ` jon
  2014-02-12  8:54   ` Michael Olbrich
  0 siblings, 1 reply; 3+ messages in thread
From: jon @ 2014-02-05 19:55 UTC (permalink / raw)
  To: ptxdist; +Cc: Jon Ringle

From: Jon Ringle <jringle@gridpoint.com>

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 gridpoint production release GP -a

and if I need a subsequent release within the same month:
$ git flow release start ptxdist-2014.02.x_GP
$ ./scripts/make_release.sh gridpoint production release GP -a

Signed-off-by: Jon Ringle <jringle@gridpoint.com>
---
 scripts/make_release.sh |   29 ++++++++++++++++++-----------
 1 file changed, 18 insertions(+), 11 deletions(-)

diff --git a/scripts/make_release.sh b/scripts/make_release.sh
index f0d4357..3c8a555 100755
--- a/scripts/make_release.sh
+++ b/scripts/make_release.sh
@@ -2,7 +2,14 @@
 
 set -e
 
-origin=origin
+origin=${1:-origin}
+master=${2:-master}
+stable=${3:-stable}
+suffix=${4:-}
+tagsignopt=${5:--s}
+
+[ -n "${suffix}" ] && suffix="_${suffix}"
+
 v="ptxdist-"
 
 branch="$(git symbolic-ref HEAD)"
@@ -29,23 +36,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 +77,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 ${tagsignopt} -F "${log}" "${release}"
 
 # create tarball
 here="$(pwd)"
-- 
1.7.10.4


-- 
ptxdist mailing list
ptxdist@pengutronix.de

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2014-02-13 14:08 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-02-13 14:08 [ptxdist] [PATCH] make_release.sh: make it more accessible for creating custom releases jon
  -- strict thread matches above, loose matches on Subject: below --
2014-02-05 19:55 [ptxdist] [PATCH] ptxd_make_get.sh: remove git fetch --progress jon
2014-02-05 19:55 ` [ptxdist] [PATCH] make_release.sh: make it more accessible for creating custom releases jon
2014-02-12  8:54   ` Michael Olbrich

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox