From 51267bfd7cfc82c4947f00ccca19a5b9d062dccd Mon Sep 17 00:00:00 2001 From: Sarah Vaupel Date: Wed, 5 Feb 2025 13:17:39 +0100 Subject: [PATCH] build(release): fix version script (again) [skip ci] --- utils/version.pl | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/utils/version.pl b/utils/version.pl index d9b3aa60f..4a0c6ffc1 100644 --- a/utils/version.pl +++ b/utils/version.pl @@ -138,6 +138,7 @@ if($par{autokind}) { my @rules = split /,/, $par{autokind}; RULES: { for my $r(@rules) { + warn "$0: Processing autokind rule '$r'\n" if $par{v}; if($r!~m#(.*)=(.*)#) { die "$0: Bad rule in autokind: $r\n"; } @@ -153,14 +154,15 @@ if($par{autokind}) { if($par{'v'}) { - print "VERBOSE: Parameters\n"; + warn "VERBOSE: Parameters\n"; for my $k(sort keys %par) { - print " $k: $par{$k}\n" + warn " $k: $par{$k}\n" } } my %typeReact = (); for my $as(split /,/, $par{change}) { + warn "$0: processing change parameter '$as'\n" if $par{v}; if($as=~m#(.*)=(.*)#) { $typeReact{$1} = $2; } else { @@ -229,7 +231,7 @@ sub parseVersion { $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]+)-test-(?(?[a-z]+)-?(?[0-9\.]+))$# || $v=~m#^(?

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

[0-9]+)-(?.*)$# ) { %cap = %+ @@ -249,7 +251,7 @@ sub parseVersion { branchversion=>$cap{brv}, ); if($par{v}) { - my $parsed = join '; ', map { "$_=>$ret{$_}" } sort keys %ret; + my $parsed = join '; ', map { "$_=>".($ret{$_}//'') } sort keys %ret; warn "Version '$v' was parsed to '$parsed'\n" } return \%ret @@ -360,6 +362,7 @@ if('-' eq $par{vcslog}) { } my @versions = (); for my $v(@versionsOrig) { + warn "$0: Processing orig version (part 1): '$v'\n" if $par{v}; if($v=~m#^(.*?\S)\s*::::\s*(.*?)\s*::::\s*(.*)#) { push @versions, { hash => $1, @@ -377,6 +380,7 @@ my $tag = undef; my @versionPast = (); VERSION: for my $v(@versions) { + warn "$0: Processing version (part 2): $v\n" if $par{v}; #if($v->{meta}=~m#tag\s*:\s*\Q$par{kind}\E(.*)\)#) { # $tag=$1; # last VERSION @@ -405,6 +409,7 @@ VERSION: for my $v(@versions) { #$tag = parseVersion($tag); for my $r(reverse @change) { + warn "$0: Processing change: $r\n" if $par{v}; if('major' eq $r->{react}) { $tag->{major}++; $tag->{minor}=0; @@ -451,6 +456,7 @@ my $highStart = $mainVersion ? $sortAll[0] : $sortSee[0]; my $highSee = $sortSee[0]; my %reactCollect = (); SEARCHVERSION: for my $v(@versions) { + warn "$0: search for version: '$v'\n" if $par{v}; next unless $v->{version}; next unless $v->{react}; $reactCollect{$v->{react}} = 1; @@ -465,7 +471,9 @@ sub justVersionInc { $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); + my $ret = vsJustVersion($vv); + warn "$0: version inc from '$v' to $ret\n" if $par{v}; + return $ret } my $newVersion = undef; @@ -488,7 +496,7 @@ for(@allVersions) { $allVersions{$_} = 1 } while(exists $allVersions{$newVersion}) { - warn "Version conflict, so we try another version, '$newVersion' exists already\n" if $par{v}; + warn "$0: 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" } @@ -518,6 +526,7 @@ if($par{changelog}) { my %seen = (); my @sects = ([]); for(@changelog) { + warn "$0: Changelog processing: '$_'\n" if $par{v}; push @sects, [] if m/^## /; push @{$sects[-1]}, $_; if(m#/commit/([a-f0-9]+)\s*\)\s*\)\s*$#) { @@ -531,6 +540,7 @@ if($par{changelog}) { shift @sects; } for my $s(@sects) { + warn "$0: Changelog processing, section search: '$s'\n" if $par{v}; my $hh = $s->[0]; chomp $hh; my $cnt = @$s; @@ -555,6 +565,7 @@ if($par{changelog}) { 'feature' => 'Features', ); SELECTCHANGELOG: for my $v(@versions) { + warn "$0: Changelog processing, version selection: '$v'\n" if $par{v}; last SELECTCHANGELOG if $seen{$v->{hash}}; next unless $v->{subject}=~m#^\s*([a-z]+)\s*(!?)\s*((?:\(.*?\))?)\s*:\s*(.*?)\s*$#i; my ($kind, $break, $context, $msg) = ($1, $2, $3, $4);