Skip to content

Commit 06a5d8b

Browse files
committed
Revise build number computation
Use commits since last change to VERSION file instead of commits since last tag. Build number is appended if VERSION ends in -dev or -pre. To maintain consistency for 0.5.0-dev versions, the number of commits is incremented by one for these (last tag was one commit before change to VERSION).
1 parent 8f99882 commit 06a5d8b

File tree

3 files changed

+51
-11
lines changed

3 files changed

+51
-11
lines changed

base/version.jl

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -206,9 +206,18 @@ A `VersionNumber` object describing which version of Julia is in use. For detail
206206
[Version Number Literals](:ref:`man-version-number-literals`).
207207
"""
208208
const VERSION = try
209-
# Include build number if we've got at least some distance from a tag (e.g. a release)
210-
build_number = GIT_VERSION_INFO.build_number != 0 ? "+$(GIT_VERSION_INFO.build_number)" : ""
211-
convert(VersionNumber, "$(VERSION_STRING)$(build_number)")
209+
ver = convert(VersionNumber, VERSION_STRING)
210+
if !isempty(ver.prerelease)
211+
build_number = GIT_VERSION_INFO.build_number
212+
if ver == v"0.5.0-pre"
213+
# due to change of reference for counting commits from last tag to last change of VERSION file
214+
build_number += 5578
215+
end
216+
ver = VersionNumber(ver.major, ver.minor, ver.patch, ver.prerelease, (build_number,))
217+
elseif GIT_VERSION_INFO.build_number != 0
218+
println("WARNING: ignoring non-zero build number for VERSION")
219+
end
220+
ver
212221
catch e
213222
println("while creating Base.VERSION, ignoring error $e")
214223
VersionNumber(0)

base/version_git.sh

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ origin=$(git config -l 2>/dev/null | grep 'remote\.\w*\.url.*JuliaLang/julia.git
3030
if [ -z "$origin" ]; then
3131
origin="origin/"
3232
fi
33-
last_tag=$(git describe --tags --abbrev=0)
3433
git_time=$(git log -1 --pretty=format:%ct)
3534

3635
#collect the contents
@@ -41,10 +40,15 @@ if [ -n "$(git status --porcelain)" ]; then
4140
commit_short="$commit_short"*
4241
fi
4342
branch=$(git branch | sed -n '/\* /s///p')
44-
# Some versions of wc (eg on OS X) add extra whitespace to their output.
45-
# The sed(1) call stops this from breaking the generated Julia's indentation by
46-
# stripping all non-digits.
47-
build_number=$(git rev-list HEAD ^$last_tag | wc -l | sed -e 's/[^[:digit:]]//g')
43+
44+
topdir=$(git rev-parse --show-toplevel)
45+
verchanged=$(git blame -L ,1 -sl -- "$topdir/VERSION" | cut -f 1 -d " ")
46+
if [ $verchanged = 0000000000000000000000000000000000000000 ]; then
47+
# uncommited change to VERSION
48+
build_number=0
49+
else
50+
build_number=$(git rev-list --count HEAD "^$verchanged")
51+
fi
4852

4953
date_string=$git_time
5054
case $(uname) in

contrib/commit-name.sh

Lines changed: 30 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,34 @@
66

77
gitref=${1:-HEAD}
88

9-
last_tag=$(git describe --tags --abbrev=0 "$gitref")
109
ver=$(git show "$gitref:VERSION")
11-
nb=$(git rev-list --count "$gitref" "^$last_tag")
12-
echo "$ver+$nb"
10+
major=$(echo $ver | cut -f 1 -d .)
11+
minor=$(echo $ver | cut -f 2 -d .)
12+
13+
if [ $major = 0 -a $minor -lt 5 ]; then
14+
# use tag based build number prior to 0.5.0-
15+
last_tag=$(git describe --tags --abbrev=0 "$gitref")
16+
nb=$(git rev-list --count "$gitref" "^$last_tag")
17+
if [ $nb = 0 ]; then
18+
echo $ver
19+
else
20+
echo "$ver+$nb"
21+
fi
22+
else
23+
topdir=$(git rev-parse --show-toplevel)
24+
verchanged=$(git blame -L ,1 -sl $gitref -- "$topdir/VERSION" | cut -f 1 -d " ")
25+
nb=$(git rev-list --count "$gitref" "^$verchanged")
26+
pre=$(echo $ver | cut -s -f 2 -d "-")
27+
if [ $ver = "0.5.0-dev" ]; then
28+
# bump to 0.5.0-dev was one commit after tag during 0.5.0-dev
29+
nb=$(expr $nb + 1)
30+
elif [ $ver = "0.5.0-pre" ]; then
31+
# bump to 0.5.0-pre was 5578 commits after tag
32+
nb=$(expr $nb + 5578)
33+
fi
34+
if [ -n "$pre" ]; then
35+
echo "$ver+$nb"
36+
else
37+
echo $ver
38+
fi
39+
fi

0 commit comments

Comments
 (0)