From f71d2459e1747b8c766c5f7e77def720362159ae Mon Sep 17 00:00:00 2001 From: Josh Suereth Date: Thu, 8 Dec 2011 15:28:01 -0500 Subject: Binary resolution limited. Binary library pull/push is limited to: - test/files - lib --- tools/binary-repo-lib.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'tools') diff --git a/tools/binary-repo-lib.sh b/tools/binary-repo-lib.sh index 1f4733ff3b..79a37dd7df 100755 --- a/tools/binary-repo-lib.sh +++ b/tools/binary-repo-lib.sh @@ -111,7 +111,7 @@ pushJarFiles() { local user=$2 local password=$3 # TODO - ignore target/ and build/ - local jarFiles=$(find ${basedir} -name "*.jar") + local jarFiles="$(find ${basedir}/lib -name "*.jar") $(find ${basedir}/test/files -name "*.jar")" for jar in $jarFiles; do local valid=$(isJarFileValid $jar) if [[ "$valid" != "OK" ]]; then @@ -141,7 +141,7 @@ pullJarFile() { # Argument 1 - The directory to search for *.desired.sha1 files that need to be retrieved. pullJarFiles() { local basedir=$1 - local desiredFiles=$(find ${basedir} -name "*${desired_ext}") + local desiredFiles="$(find ${basedir}/lib -name *${desired_ext}) $(find ${basedir}/test/files -name *${desired_ext})" for sha in $desiredFiles; do jar=${sha%$desired_ext} local valid=$(isJarFileValid $jar) -- cgit v1.2.3 From a2be0aff10f69ef4910ac73ea099bdbb8ff29654 Mon Sep 17 00:00:00 2001 From: Paul Phillips Date: Fri, 9 Dec 2011 09:31:12 -0800 Subject: Moved jenkins build script. Out of jenkins and into version control. --- tools/epfl-build-2.8.x | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100755 tools/epfl-build-2.8.x (limited to 'tools') diff --git a/tools/epfl-build-2.8.x b/tools/epfl-build-2.8.x new file mode 100755 index 0000000000..0fd64cf842 --- /dev/null +++ b/tools/epfl-build-2.8.x @@ -0,0 +1,30 @@ +#!/bin/sh -e +# +# Jenkins should run tools/$0 --publish "$ssh_conn:$nightly_dir" + +unset rsyncDest +if [ "$1" == "--publish" ]; then + rsyncDest="$2" +fi + +# should not be hardcoded +mavenSettings="/home/linuxsoft/apps/hudson-maven-settings/settings.xml" + +# main build sequence +ant all.clean +./pull-binary-libs.sh +ant nightly +ant docscomp + +# publish nightly build +if [ -n "$rsyncDest" ]; then + echo "Copying nightly build to $rsyncDest" + # Archive Scala nightly distribution + # Tailing slash is required, otherwise the directory gets synchronized instead of its content + rsync -az dists/archives/ "$rsyncDest/distributions" + # SKIP PUBLISHING DOCS IN 2.8.X BRANCH + # rsync -az scala/build/scaladoc/ "$rsyncDest/docs" + rsync -az dists/sbaz/ "$rsyncDest/sbaz" + # Deploy the maven artifacts on scala-tools.org + ( cd dists/maven/latest && ant deploy.snapshot -Dsettings.file="$mavenSettings" ) +fi -- cgit v1.2.3 From ff7f9fcaa2958e3ef386c7a0a20233b6bb9e3864 Mon Sep 17 00:00:00 2001 From: Paul Phillips Date: Fri, 9 Dec 2011 09:49:04 -0800 Subject: Unified 2.8.x and 2.9.x build scripts. --- tools/epfl-build-2.8.x | 30 ------------------------------ tools/epfl-build-2.x.x | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 30 deletions(-) delete mode 100755 tools/epfl-build-2.8.x create mode 100755 tools/epfl-build-2.x.x (limited to 'tools') diff --git a/tools/epfl-build-2.8.x b/tools/epfl-build-2.8.x deleted file mode 100755 index 0fd64cf842..0000000000 --- a/tools/epfl-build-2.8.x +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/sh -e -# -# Jenkins should run tools/$0 --publish "$ssh_conn:$nightly_dir" - -unset rsyncDest -if [ "$1" == "--publish" ]; then - rsyncDest="$2" -fi - -# should not be hardcoded -mavenSettings="/home/linuxsoft/apps/hudson-maven-settings/settings.xml" - -# main build sequence -ant all.clean -./pull-binary-libs.sh -ant nightly -ant docscomp - -# publish nightly build -if [ -n "$rsyncDest" ]; then - echo "Copying nightly build to $rsyncDest" - # Archive Scala nightly distribution - # Tailing slash is required, otherwise the directory gets synchronized instead of its content - rsync -az dists/archives/ "$rsyncDest/distributions" - # SKIP PUBLISHING DOCS IN 2.8.X BRANCH - # rsync -az scala/build/scaladoc/ "$rsyncDest/docs" - rsync -az dists/sbaz/ "$rsyncDest/sbaz" - # Deploy the maven artifacts on scala-tools.org - ( cd dists/maven/latest && ant deploy.snapshot -Dsettings.file="$mavenSettings" ) -fi diff --git a/tools/epfl-build-2.x.x b/tools/epfl-build-2.x.x new file mode 100755 index 0000000000..7bc884c162 --- /dev/null +++ b/tools/epfl-build-2.x.x @@ -0,0 +1,35 @@ +#!/usr/bin/env bash +# + +[[ $# -gt 0 ]] || { + echo "Usage: $0 [publish destination]" + echo "" + exit 0 +} + +version="$1" +shift +rsyncDest="$1" + +# should not be hardcoded +mavenSettings="/home/linuxsoft/apps/hudson-maven-settings/settings.xml" + +# main build sequence +ant all.clean +./pull-binary-libs.sh +ant nightly +ant docscomp + +# publish nightly build +if [ -n "$rsyncDest" ]; then + echo "Copying nightly build to $rsyncDest" + # Archive Scala nightly distribution + rsync -az dists/archives/ "$rsyncDest/distributions" + # SKIP PUBLISHING DOCS IN 2.8.X BRANCH + if [[ $version != "2.8.x" ]]; then + rsync -az build/scaladoc/ "$rsyncDest/docs" + fi + rsync -az dists/sbaz/ "$rsyncDest/sbaz" + # Deploy the maven artifacts on scala-tools.org + ( cd dists/maven/latest && ant deploy.snapshot -Dsettings.file="$mavenSettings" ) +fi -- cgit v1.2.3 From abfc737822739d258aa22387eb1acd11df1ff5cd Mon Sep 17 00:00:00 2001 From: Paul Phillips Date: Fri, 9 Dec 2011 10:24:46 -0800 Subject: Separated build and publish scripts. Unified further with build options. --- tools/epfl-build | 29 +++++++++++++++++++++++++++++ tools/epfl-build-2.x.x | 35 ----------------------------------- tools/epfl-publish | 31 +++++++++++++++++++++++++++++++ 3 files changed, 60 insertions(+), 35 deletions(-) create mode 100755 tools/epfl-build delete mode 100755 tools/epfl-build-2.x.x create mode 100755 tools/epfl-publish (limited to 'tools') diff --git a/tools/epfl-build b/tools/epfl-build new file mode 100755 index 0000000000..e8f1be4a46 --- /dev/null +++ b/tools/epfl-build @@ -0,0 +1,29 @@ +#!/usr/bin/env bash +# +# builds nightlies + +[[ $# -gt 0 ]] || { + cat < [opt opt ...] + + Everything after the version is supplied to scalac and partest. + Example: $0 -Xcheckinit -Ycheck:all + +Environment variables: + + EXTRA_TARGETS Additional ant targets to run after nightly + +EOM + exit 0 +} + +# version isn't actually used at present. +scalaVersion="$1" && shift +scalaArgs="-Dscalac.args=\"$@\" -Dpartest.scalac_opts=\"$@\"" + +ant all.clean && ./pull-binary-libs.sh + +ant $scalaArgs build-opt && +ant $scalaArgs nightly && +for target in $EXTRA_TARGETS; do ant $target ; done +# [[ -n "$BUILD_DOCSCOMP" ]] && ant docscomp diff --git a/tools/epfl-build-2.x.x b/tools/epfl-build-2.x.x deleted file mode 100755 index 7bc884c162..0000000000 --- a/tools/epfl-build-2.x.x +++ /dev/null @@ -1,35 +0,0 @@ -#!/usr/bin/env bash -# - -[[ $# -gt 0 ]] || { - echo "Usage: $0 [publish destination]" - echo "" - exit 0 -} - -version="$1" -shift -rsyncDest="$1" - -# should not be hardcoded -mavenSettings="/home/linuxsoft/apps/hudson-maven-settings/settings.xml" - -# main build sequence -ant all.clean -./pull-binary-libs.sh -ant nightly -ant docscomp - -# publish nightly build -if [ -n "$rsyncDest" ]; then - echo "Copying nightly build to $rsyncDest" - # Archive Scala nightly distribution - rsync -az dists/archives/ "$rsyncDest/distributions" - # SKIP PUBLISHING DOCS IN 2.8.X BRANCH - if [[ $version != "2.8.x" ]]; then - rsync -az build/scaladoc/ "$rsyncDest/docs" - fi - rsync -az dists/sbaz/ "$rsyncDest/sbaz" - # Deploy the maven artifacts on scala-tools.org - ( cd dists/maven/latest && ant deploy.snapshot -Dsettings.file="$mavenSettings" ) -fi diff --git a/tools/epfl-publish b/tools/epfl-publish new file mode 100755 index 0000000000..5f38bd067b --- /dev/null +++ b/tools/epfl-publish @@ -0,0 +1,31 @@ +#!/usr/bin/env bash +# +# publishes nightly build + +[[ $# -eq 2 ]] || { + cat < +EOM + exit 0 +} + +[[ -d dists/archives ]] || { + echo "Can't find build, has it completed? No directory at dists/archives" + exit 1 +} + +version="$1" +rsyncDest="$2" + +# should not be hardcoded +mavenSettings="/home/linuxsoft/apps/hudson-maven-settings/settings.xml" + +echo "Copying nightly build to $rsyncDest" +# Archive Scala nightly distribution +rsync -az dists/archives/ "$rsyncDest/distributions" +# don't publish docs in 2.8.x +[[ $version == "2.8.x" ]] || rsync -az build/scaladoc/ "$rsyncDest/docs" +# sbaz +[[ -d dists/sbaz ]] && rsync -az dists/sbaz/ "$rsyncDest/sbaz" +# Deploy the maven artifacts on scala-tools.org +( cd dists/maven/latest && ant deploy.snapshot -Dsettings.file="$mavenSettings" ) -- cgit v1.2.3 From 9c15462891afd368d1e7d0ac3914613202428b24 Mon Sep 17 00:00:00 2001 From: Paul Phillips Date: Fri, 9 Dec 2011 11:11:44 -0800 Subject: Swimming with the jenkins current. Configuring via environment variables. --- tools/epfl-build | 5 ++--- tools/epfl-publish | 36 +++++++++++++++++++++--------------- 2 files changed, 23 insertions(+), 18 deletions(-) (limited to 'tools') diff --git a/tools/epfl-build b/tools/epfl-build index e8f1be4a46..dd66307de3 100755 --- a/tools/epfl-build +++ b/tools/epfl-build @@ -10,8 +10,7 @@ Usage: $0 [opt opt ...] Example: $0 -Xcheckinit -Ycheck:all Environment variables: - - EXTRA_TARGETS Additional ant targets to run after nightly + extra_ant_targets Additional ant targets to run after nightly EOM exit 0 @@ -25,5 +24,5 @@ ant all.clean && ./pull-binary-libs.sh ant $scalaArgs build-opt && ant $scalaArgs nightly && -for target in $EXTRA_TARGETS; do ant $target ; done +for target in $extra_ant_targets; do ant $target ; done # [[ -n "$BUILD_DOCSCOMP" ]] && ant docscomp diff --git a/tools/epfl-publish b/tools/epfl-publish index 5f38bd067b..2c0141e264 100755 --- a/tools/epfl-publish +++ b/tools/epfl-publish @@ -1,31 +1,37 @@ #!/usr/bin/env bash # -# publishes nightly build +# publishes nightly build if $publish_to is set in environment. +# -[[ $# -eq 2 ]] || { +[[ $# -eq 1 ]] || { cat < +Usage: $0 + +Environment variables: + publish_to rsync destination EOM exit 0 } +version="$1" [[ -d dists/archives ]] || { echo "Can't find build, has it completed? No directory at dists/archives" exit 1 } -version="$1" -rsyncDest="$2" - # should not be hardcoded mavenSettings="/home/linuxsoft/apps/hudson-maven-settings/settings.xml" -echo "Copying nightly build to $rsyncDest" -# Archive Scala nightly distribution -rsync -az dists/archives/ "$rsyncDest/distributions" -# don't publish docs in 2.8.x -[[ $version == "2.8.x" ]] || rsync -az build/scaladoc/ "$rsyncDest/docs" -# sbaz -[[ -d dists/sbaz ]] && rsync -az dists/sbaz/ "$rsyncDest/sbaz" -# Deploy the maven artifacts on scala-tools.org -( cd dists/maven/latest && ant deploy.snapshot -Dsettings.file="$mavenSettings" ) +if [[ -z $publish_to ]]; then + echo "Nothing to publish." +else + echo "Publishing nightly build to $publish_to" + # Archive Scala nightly distribution + rsync -az dists/archives/ "$publish_to/distributions" + # don't publish docs in 2.8.x + [[ $version == "2.8.x" ]] || rsync -az build/scaladoc/ "$publish_to/docs" + # sbaz + [[ -d dists/sbaz ]] && rsync -az dists/sbaz/ "$publish_to/sbaz" + # Deploy the maven artifacts on scala-tools.org + ( cd dists/maven/latest && ant deploy.snapshot -Dsettings.file="$mavenSettings" ) +fi -- cgit v1.2.3 From 59348d0160b3f7d7c78f29f866017d88b16dd9b0 Mon Sep 17 00:00:00 2001 From: Paul Phillips Date: Fri, 9 Dec 2011 19:14:46 -0800 Subject: Boiling more logic out of jenkins. Offer explicit settings.xml path for maven if some specific hardcoded path exists, don't otherwise. At least it's in one place where we can keep an eye on it. --- tools/epfl-publish | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'tools') diff --git a/tools/epfl-publish b/tools/epfl-publish index 2c0141e264..59ae6f138a 100755 --- a/tools/epfl-publish +++ b/tools/epfl-publish @@ -20,7 +20,15 @@ version="$1" } # should not be hardcoded -mavenSettings="/home/linuxsoft/apps/hudson-maven-settings/settings.xml" +# adds -Dsettings.file= if fixed path is present +mavenSettingsOption () { + path="/home/linuxsoft/apps/hudson-maven-settings/settings.xml" + if [[ -f $path ]]; then + echo -Dsettings.file="$path" + fi +} + +mavenSettings=${maven_settings:-findMavenSettings} if [[ -z $publish_to ]]; then echo "Nothing to publish." @@ -33,5 +41,5 @@ else # sbaz [[ -d dists/sbaz ]] && rsync -az dists/sbaz/ "$publish_to/sbaz" # Deploy the maven artifacts on scala-tools.org - ( cd dists/maven/latest && ant deploy.snapshot -Dsettings.file="$mavenSettings" ) + ( cd dists/maven/latest && ant deploy.snapshot $(mavenSettingsOption) ) fi -- cgit v1.2.3 From 56536de18c058b5aecd86c2a967b1bf19ce601be Mon Sep 17 00:00:00 2001 From: Paul Phillips Date: Fri, 9 Dec 2011 19:19:01 -0800 Subject: Making path to settings.xml configurable. Environment variable maven_settings. --- tools/epfl-publish | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'tools') diff --git a/tools/epfl-publish b/tools/epfl-publish index 59ae6f138a..e9cd97b3d2 100755 --- a/tools/epfl-publish +++ b/tools/epfl-publish @@ -1,6 +1,7 @@ #!/usr/bin/env bash # # publishes nightly build if $publish_to is set in environment. +# alternate maven settings.xml file given in $maven_settings. # [[ $# -eq 1 ]] || { @@ -22,9 +23,13 @@ version="$1" # should not be hardcoded # adds -Dsettings.file= if fixed path is present mavenSettingsOption () { - path="/home/linuxsoft/apps/hudson-maven-settings/settings.xml" - if [[ -f $path ]]; then - echo -Dsettings.file="$path" + hardcoded_path="/home/linuxsoft/apps/hudson-maven-settings/settings.xml" + + # environment variable + if [[ -n $maven_settings ]]; then + echo -Dsettings.file="$maven_settings" + elif [[ -f $hardcoded_path ]]; then + echo -Dsettings.file="$hardcoded_path" fi } -- cgit v1.2.3 From eaa37158ccb6455d55ea7499e3f8e8d8ccc6703d Mon Sep 17 00:00:00 2001 From: Paul Phillips Date: Fri, 9 Dec 2011 20:45:52 -0800 Subject: Hardening get-scala-version. Reimplementing without git-describe to harden against old gits and make any kind of reference tag unnecessary. --- tools/get-scala-revision | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) (limited to 'tools') diff --git a/tools/get-scala-revision b/tools/get-scala-revision index e8597844cc..dc0ee561dd 100755 --- a/tools/get-scala-revision +++ b/tools/get-scala-revision @@ -1,19 +1,22 @@ -#!/bin/sh +#!/usr/bin/env bash # # Usage: get-scala-revision [dir] # Figures out current scala revision of a git clone. # # If no dir is given, current working dir is used. -[ -n "$1" ] && cd "$1" +# not like releases come out so often that we are duty-bound +# to recalculate this every time. +# git merge-base v2.9.1 master +devbase="d6f3184fc8" -# dev should be a tag at the merge-base of master and the -# most recent release. -if [ -z $(git tag -l dev) ]; then - # no dev tag available - this will generate dev-g - echo "dev-g$(git describe HEAD --abbrev=7 --always)" -else - # dev tag exists - this generates dev-NNNN-g - # where NNNN is the number of commits since dev. - git describe HEAD --abbrev=7 --match dev -fi +# reimplementing git describe hopefully in a way which works +# without any particular tags, branches, or recent versions of git. +# this is supposed to generate +# dev-NNNN-g +# where NNNN is the number of commits since devbase, which +# is the merge-base of the most recent release and master. +# Presently hardcoded to reduce uncertainty, v2.9.1/master. +commits=$(GIT_PAGER=cat git log --oneline $devbase..HEAD | wc -l) +sha=$(git log -1 --abbrev-commit --abbrev=7 --format="%h") +printf "dev-%s-g%s\n" $commits $sha -- cgit v1.2.3 From 7d2db571b41f3c23e91ad27ee5b81a421f312e00 Mon Sep 17 00:00:00 2001 From: Paul Phillips Date: Fri, 9 Dec 2011 20:45:52 -0800 Subject: Hardening get-scala-version. Reimplementing without git-describe to harden against old gits and make any kind of reference tag unnecessary. Conflicts: tools/get-scala-revision --- tools/get-scala-revision | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100755 tools/get-scala-revision (limited to 'tools') diff --git a/tools/get-scala-revision b/tools/get-scala-revision new file mode 100755 index 0000000000..dc0ee561dd --- /dev/null +++ b/tools/get-scala-revision @@ -0,0 +1,22 @@ +#!/usr/bin/env bash +# +# Usage: get-scala-revision [dir] +# Figures out current scala revision of a git clone. +# +# If no dir is given, current working dir is used. + +# not like releases come out so often that we are duty-bound +# to recalculate this every time. +# git merge-base v2.9.1 master +devbase="d6f3184fc8" + +# reimplementing git describe hopefully in a way which works +# without any particular tags, branches, or recent versions of git. +# this is supposed to generate +# dev-NNNN-g +# where NNNN is the number of commits since devbase, which +# is the merge-base of the most recent release and master. +# Presently hardcoded to reduce uncertainty, v2.9.1/master. +commits=$(GIT_PAGER=cat git log --oneline $devbase..HEAD | wc -l) +sha=$(git log -1 --abbrev-commit --abbrev=7 --format="%h") +printf "dev-%s-g%s\n" $commits $sha -- cgit v1.2.3 From 92e0e57a054c7ab6a59249214be253d0f2f85477 Mon Sep 17 00:00:00 2001 From: Paul Phillips Date: Fri, 9 Dec 2011 21:33:13 -0800 Subject: More on get-scala-revision. Now that I've resorted to building git 1.5.4, I can stop trying to reverse engineer it through jenkins. This implementation feels winnerish. --- tools/get-scala-revision | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'tools') diff --git a/tools/get-scala-revision b/tools/get-scala-revision index dc0ee561dd..3977a61040 100755 --- a/tools/get-scala-revision +++ b/tools/get-scala-revision @@ -17,6 +17,6 @@ devbase="d6f3184fc8" # where NNNN is the number of commits since devbase, which # is the merge-base of the most recent release and master. # Presently hardcoded to reduce uncertainty, v2.9.1/master. -commits=$(GIT_PAGER=cat git log --oneline $devbase..HEAD | wc -l) -sha=$(git log -1 --abbrev-commit --abbrev=7 --format="%h") -printf "dev-%s-g%s\n" $commits $sha +commits=$(git --no-pager log --pretty=oneline $devbase..HEAD | wc -l) +sha=$(git rev-list -n 1 HEAD) +printf "dev-%s-g%s\n" $commits ${sha:0:7} -- cgit v1.2.3 From a348cc3f8310bee4b3053412106ecbc21718cc83 Mon Sep 17 00:00:00 2001 From: Paul Phillips Date: Fri, 9 Dec 2011 21:33:13 -0800 Subject: More on get-scala-revision. Now that I've resorted to building git 1.5.4, I can stop trying to reverse engineer it through jenkins. This implementation feels winnerish. --- tools/get-scala-revision | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'tools') diff --git a/tools/get-scala-revision b/tools/get-scala-revision index dc0ee561dd..3977a61040 100755 --- a/tools/get-scala-revision +++ b/tools/get-scala-revision @@ -17,6 +17,6 @@ devbase="d6f3184fc8" # where NNNN is the number of commits since devbase, which # is the merge-base of the most recent release and master. # Presently hardcoded to reduce uncertainty, v2.9.1/master. -commits=$(GIT_PAGER=cat git log --oneline $devbase..HEAD | wc -l) -sha=$(git log -1 --abbrev-commit --abbrev=7 --format="%h") -printf "dev-%s-g%s\n" $commits $sha +commits=$(git --no-pager log --pretty=oneline $devbase..HEAD | wc -l) +sha=$(git rev-list -n 1 HEAD) +printf "dev-%s-g%s\n" $commits ${sha:0:7} -- cgit v1.2.3 From 3a3832700f1a61477931fac730200510ffa6bbb1 Mon Sep 17 00:00:00 2001 From: Paul Phillips Date: Mon, 12 Dec 2011 12:56:23 -0800 Subject: Tweaking build string some more. Reintroduced date and an "r" to meet IDE needs. Moved reference commit backward to accomodate 2.8.x. Merging changes into 2.8.x, 2.9.x, and master. --- tools/get-scala-revision | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'tools') diff --git a/tools/get-scala-revision b/tools/get-scala-revision index 3977a61040..b27b6ddc82 100755 --- a/tools/get-scala-revision +++ b/tools/get-scala-revision @@ -7,8 +7,8 @@ # not like releases come out so often that we are duty-bound # to recalculate this every time. -# git merge-base v2.9.1 master -devbase="d6f3184fc8" +# git merge-base v2.8.2 v2.9.1 master +devbase="df13e31bbb" # reimplementing git describe hopefully in a way which works # without any particular tags, branches, or recent versions of git. @@ -16,7 +16,9 @@ devbase="d6f3184fc8" # dev-NNNN-g # where NNNN is the number of commits since devbase, which # is the merge-base of the most recent release and master. -# Presently hardcoded to reduce uncertainty, v2.9.1/master. +# Presently hardcoded to reduce uncertainty, v2.8.2/v2.9.1/master. commits=$(git --no-pager log --pretty=oneline $devbase..HEAD | wc -l) sha=$(git rev-list -n 1 HEAD) -printf "dev-%s-g%s\n" $commits ${sha:0:7} +datestr=$(date "+%Y-%m-%d") + +printf "rdev-%s-%s-g%s\n" $commits $datestr ${sha:0:7} -- cgit v1.2.3