From 12d8f49a651bd751bd7fdd2e27382a18e797ccb1 Mon Sep 17 00:00:00 2001 From: Sarah Vaupel Date: Wed, 5 Feb 2025 11:02:39 +0100 Subject: [PATCH] build(release): fix version script [skip ci] --- utils/version.pl | 63 ++++++++++++++++++++---------------------------- 1 file changed, 26 insertions(+), 37 deletions(-) diff --git a/utils/version.pl b/utils/version.pl index d00d80cdb..d9b3aa60f 100644 --- a/utils/version.pl +++ b/utils/version.pl @@ -224,47 +224,35 @@ sub parseVersion { warn "$0: internal error (parseVersion called on undef at $c)\n"; return undef } - my ($pre,$ma,$mi,$p,$sp,$brn,$brv) = (); - if($v=~m#^([a-z]*)([0-9]+)$#) { - $pre = $1; - $ma = $2; - } elsif($v=~m#^([a-z]*)([0-9]+)\.([0-9]+)$#) { - $pre = $1; - $ma = $2; - $mi = $3 - } elsif($v=~m#^([a-z]*)([0-9]+)\.([0-9]+)\.([0-9]+)$#) { - $pre = $1; - $ma = $2; - $mi = $3; - $p = $4; - } elsif($v=~m#^([a-z]*)([0-9]+)\.([0-9]+)\.([0-9]+)-test-([a-z]+)-([0-9\.]+)$#) { - $pre = $1; - $ma = $2; - $mi = $3; - $p = $4; - $sp = $5; - $brn = $6; - $brv = $7; - } elsif($v=~m#^([a-z]*)([0-9]+)\.([0-9]+)\.([0-9]+)-(.*)$#) { - $pre = $1; - $ma = $2; - $mi = $3; - $p = $4; - $sp = $5; + my %cap = (); + if( + $v=~m#^(?
[a-z]*)(?[0-9]+)$# ||
+    $v=~m#^(?
[a-z]*)(?[0-9]+)\.(?[0-9]+)$# ||
+    $v=~m#^(?
[a-z]*)(?[0-9]+)\.(?[0-9]+)\.(?

[0-9]+)$# || + $v=~m#^(?

[a-z]*)(?[0-9]+)\.(?[0-9]+)\.(?

[0-9]+)-test-(?(?[a-z]+)-(?[0-9\.]+))$# || + $v=~m#^(?

[a-z]*)(?[0-9]+)\.(?[0-9]+)\.(?

[0-9]+)-(?.*)$# + ) { + %cap = %+ +# my ($pre,$ma,$mi,$p,$sp,$brn,$brv) = (); } else { warn "$0: unexpected old version number: $v\n" if $par{v}; return undef } - $pre = 'v' if '' eq $pre; - return { - prefix=>$pre, - major=>$ma, - minor=>$mi, - patch=>$p, - subpatch=>$sp, - branchname=>$brn, - branchversion=>$brv, + $cap{pre} = 'v' if '' eq $cap{pre}; + my %ret = ( + prefix=>$cap{pre}, + major=>$cap{ma}, + minor=>$cap{mi}, + patch=>$cap{p}, + subpatch=>$cap{sp}, + branchname=>$cap{brn}, + branchversion=>$cap{brv}, + ); + if($par{v}) { + my $parsed = join '; ', map { "$_=>$ret{$_}" } sort keys %ret; + warn "Version '$v' was parsed to '$parsed'\n" } + return \%ret } #@oldVersions = sort { @@ -474,7 +462,7 @@ SEARCHVERSION: for my $v(@versions) { sub justVersionInc { my ($v, $react) = @_; my $vv = parseVersion($v); - $vv->{patch}++ if $react->{patch}; + $vv->{patch}++; # if $react->{patch}; # in principal a good idea to increase only when a patch action happend, but we need a new version, even if nothing happend, so we always increase patch; if there are other changes as well, it is overwritten anyways do {$vv->{minor}++; $vv->{patch}=0} if $react->{minor}; do {$vv->{major}++; $vv->{minor}=0; $vv->{patch}=0} if $react->{major}; return vsJustVersion($vv); @@ -500,6 +488,7 @@ for(@allVersions) { $allVersions{$_} = 1 } while(exists $allVersions{$newVersion}) { + warn "Version conflict, so we try another version, '$newVersion' exists already\n" if $par{v}; if($mainVersion) { die "$0: probably internal error (collision in main version)\n" }