Skip to content

Commit 005f613

Browse files
committed
fix generating pre-release deb/rpm versions when using '.'
The script assumed that pre-release suffixes used the format `-tp<number>`, `-beta<number>` or `-rc<number>`, however, it's more common (and standard practice in SemVer) to delimit the `alpha/beta/rc` with a `.`, which allows SemVer comparing to first sort by pre-release version (`alpha`, `beta`, `rc`), then by the numeric suffix. Altogether, we should consider removing this code; using `tp` as a pre-release *before* `alpha` / `beta` is non-standard (pre-releases are named `alpha`, `beta`, `rc`, so that they can be sorted alphabetically. Using `tp` violates that assumption, and adds the complexity of having to add a numeric prefix to make it sort again. Also see https://www.debian.org/doc/debian-policy/ch-controlfields.html#epochs-should-be-used-sparingly Before: ./rpm/gen-rpm-ver . 22.06.0-beta0 22.06.0 1.0.beta0 6e7db7f 22.06.0-beta0 ./rpm/gen-rpm-ver . 22.06.0-beta.0 22.06.0.beta.0 3 6e7db7f 22.06.0-beta.0 ./deb/gen-deb-ver . 22.06.0-beta0 22.06.0~1.0.beta0 22.06.0-beta0 ./deb/gen-deb-ver . 22.06.0-beta.0 22.06.0~beta.0~3 22.06.0-beta.0 After: ./rpm/gen-rpm-ver . 22.06.0-beta0 22.06.0 1.0.beta0 3091da7 22.06.0-beta0 ./rpm/gen-rpm-ver . 22.06.0-beta.0 22.06.0 1.0.beta.0 3091da7 22.06.0-beta.0 ./deb/gen-deb-ver . 22.06.0-beta0 22.06.0~1.0.beta0 22.06.0-beta0 ./deb/gen-deb-ver . 22.06.0-beta.0 22.06.0~1.0.beta.0 22.06.0-beta.0 Signed-off-by: Sebastiaan van Stijn <[email protected]>
1 parent 6e7db7f commit 005f613

File tree

2 files changed

+13
-13
lines changed

2 files changed

+13
-13
lines changed

deb/gen-deb-ver

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,19 +24,19 @@ gen_deb_version() {
2424
increment="$3"
2525
testVersion="${fullVersion#*-$pattern}"
2626
baseVersion="${fullVersion%-"$pattern"*}"
27-
echo "$baseVersion-$increment.$testVersion.$pattern$testVersion"
27+
echo "$baseVersion-$increment.${testVersion##.}.$pattern$testVersion"
2828
}
2929

3030
case "$debVersion" in
3131
*-dev)
3232
;;
33-
*-tp[0-9]*)
33+
*-tp[.0-9]*)
3434
debVersion="$(gen_deb_version "$debVersion" tp 0)"
3535
;;
36-
*-beta[0-9]*)
36+
*-beta[.0-9]*)
3737
debVersion="$(gen_deb_version "$debVersion" beta 1)"
3838
;;
39-
*-rc[0-9]*)
39+
*-rc[.0-9]*)
4040
debVersion="$(gen_deb_version "$debVersion" rc 2)"
4141
;;
4242
*)

rpm/gen-rpm-ver

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,18 +23,18 @@ rpmRelease=3
2323
# Docker 18.01.0-ce-cs1-rc1: version=18.01.0.ce.cs1, release=0.1.rc1
2424
# Docker 18.01.0-ce-dev nightly: version=18.01.0.ce, release=0.0.YYYYMMDD.HHMMSS.gitHASH
2525

26-
if [[ "$rpmVersion" =~ .*-tp[0-9]+$ ]]; then
27-
tpVersion=${rpmVersion#*-tp}
26+
if [[ "$rpmVersion" =~ .*-tp[.0-9]+$ ]]; then
27+
testVersion=${rpmVersion#*-tp}
2828
rpmVersion=${rpmVersion%-tp*}
29-
rpmRelease="0.${tpVersion}.tp${tpVersion}"
30-
elif [[ "$rpmVersion" =~ .*-beta[0-9]+$ ]]; then
31-
betaVersion=${rpmVersion#*-beta}
29+
rpmRelease="0.${testVersion##.}.tp${testVersion}"
30+
elif [[ "$rpmVersion" =~ .*-beta[.0-9]+$ ]]; then
31+
testVersion=${rpmVersion#*-beta}
3232
rpmVersion=${rpmVersion%-beta*}
33-
rpmRelease="1.${betaVersion}.beta${betaVersion}"
34-
elif [[ "$rpmVersion" =~ .*-rc[0-9]+$ ]]; then
35-
rcVersion=${rpmVersion#*-rc}
33+
rpmRelease="1.${testVersion##.}.beta${testVersion}"
34+
elif [[ "$rpmVersion" =~ .*-rc[.0-9]+$ ]]; then
35+
testVersion=${rpmVersion#*-rc}
3636
rpmVersion=${rpmVersion%-rc*}
37-
rpmRelease="2.${rcVersion}.rc${rcVersion}"
37+
rpmRelease="2.${testVersion##.}.rc${testVersion}"
3838
fi
3939

4040
DOCKER_GITCOMMIT=$($GIT_COMMAND rev-parse --short HEAD)

0 commit comments

Comments
 (0)