* [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
* [ptxdist] [PATCH] ptxd_make_get.sh: remove git fetch --progress
@ 2014-02-05 19:55 jon
2014-02-05 19:55 ` [ptxdist] [PATCH] make_release.sh: make it more accessible for creating custom releases jon
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>
git-1.7.0.4 doesn't understand --progress
Signed-off-by: Jon Ringle <jringle@gridpoint.com>
---
scripts/lib/ptxd_make_get.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/scripts/lib/ptxd_make_get.sh b/scripts/lib/ptxd_make_get.sh
index 26b99d5..aaff379 100644
--- a/scripts/lib/ptxd_make_get.sh
+++ b/scripts/lib/ptxd_make_get.sh
@@ -129,7 +129,7 @@ ptxd_make_get_git() {
git --git-dir="${mirror}" config tar.tar.bz2.command "bzip2 -c" &&
git --git-dir="${mirror}" config tar.tar.xz.command "xz -c"
git --git-dir="${mirror}" remote add origin "${url}" &&
- git --git-dir="${mirror}" fetch --progress -pf origin "+refs/*:refs/*" &&
+ git --git-dir="${mirror}" fetch -pf origin "+refs/*:refs/*" &&
if ! git --git-dir="${mirror}" rev-parse --verify -q "${tag}" > /dev/null; then
ptxd_bailout "git: tag '${tag}' not found in '${url}'"
--
1.7.10.4
--
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
* 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
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