release.pl: allow specifying explicit point release number

This commit is contained in:
Juergen E. Fischer 2020-05-17 09:17:35 +02:00
parent c4546ae6e4
commit db50e77741

View File

@ -60,7 +60,7 @@ my $skipts = 0;
my $result = GetOptions(
"major" => \$domajor,
"minor" => \$dominor,
"point" => \$dopoint,
"point:i" => \$dopoint,
"releasename=s" => \$newreleasename,
"help" => \$help,
"ltr" => \$doltr,
@ -76,7 +76,7 @@ $i++ if defined $domajor;
$i++ if defined $dominor;
$i++ if defined $dopoint;
pod2usage("Exactly one of -major, -minor or -point expected") if $i!=1;
pod2usage("Release name for major and minor releases expected") if !$dopoint && !defined $newreleasename;
pod2usage("Release name for major and minor releases expected") if !defined $dopoint && !defined $newreleasename;
pod2usage("Pre-major releases can only be minor releases") if $dopremajor && !$dominor;
pod2usage("No CMakeLists.txt in current directory") unless -r "CMakeLists.txt";
@ -106,10 +106,10 @@ pod2usage("Version mismatch ($2.$3) in branch $branch vs. $major.$minor in CMake
pod2usage("Release name Master expected on master branch" ) if $branch =~ /^master/ && $releasename ne "Master";
if( $branch =~ /^master.*/ ) {
pod2usage("No point releases on master branch") if $dopoint;
pod2usage("No point releases on master branch") if defined $dopoint;
pod2usage("No new release name for major/minor release") unless $newreleasename || $newreleasename eq $releasename;
} else {
pod2usage("Only point releases on release branches") if !$dopoint;
pod2usage("Only point releases on release branches") if !defined $dopoint;
pod2usage("New release names only for new minor releases") if $newreleasename;
$newreleasename = $releasename;
}
@ -125,16 +125,17 @@ if( $domajor ) {
$newmajor = $major;
$newminor = $minor + 1;
$newpatch = 0;
} elsif( $dopoint ) {
} elsif( defined $dopoint ) {
$newmajor = $major;
$newminor = $minor;
$newpatch = $patch + 1;
pod2usage("Given point release number <= $patch") if $dopoint && $dopoint <= $patch;
$newpatch = $dopoint ? $dopoint : $patch + 1;
} else {
pod2usage("No version change");
}
my $splashwidth;
unless( $dopoint ) {
unless( defined $dopoint ) {
pod2usage("Splash images/splash/splash-$newmajor.$newminor.png not found") unless -r "images/splash/splash-$newmajor.$newminor.png";
pod2usage("NSIS image ms-windows/Installer-Files/WelcomeFinishPage-$newmajor.$newminor.png not found") unless -r "ms-windows/Installer-Files/WelcomeFinishPage-$newmajor.$newminor.png";
my $welcomeformat = `identify -format '%wx%h %m' ms-windows/Installer-Files/WelcomeFinishPage-$newmajor.$newminor.png`;
@ -163,7 +164,7 @@ print "Updating changelog...\n";
run( "scripts/create_changelog.sh", "create_changelog.sh failed" );
run( "perl -i -pe 's#<releases>#<releases>\n <release version=\"$newmajor.$newminor.$newpatch\" date=\"" . strftime("%Y-%m-%d", localtime) . "\" />#' linux/org.qgis.qgis.appdata.xml.in", "appdata update failed" );
unless( $dopoint ) {
unless( defined $dopoint ) {
run( "scripts/update_news.pl $newmajor.$newminor '$newreleasename'", "could not update news" ) if $major>2 || ($major==2 && $minor>14);
run( "git commit -n -a -m \"changelog and news update for $release\"", "could not commit changelog and news update" );
@ -179,7 +180,7 @@ run( "dch -r ''", "dch failed" );
run( "dch --newversion $version 'Release of $version'", "dch failed" );
run( "cp debian/changelog /tmp", "backup changelog failed" );
unless( $dopoint ) {
unless( defined $dopoint ) {
run( "perl -i -pe 's/qgis-dev-deps/qgis-ltr-deps/;' doc/msvc.t2t", "could not update osgeo4w deps package" ) if $doltr;
run( "perl -i -pe 's/qgis-dev-deps/qgis-rel-deps/;' doc/msvc.t2t", "could not update osgeo4w deps package" ) unless $doltr;
run( "txt2tags -odoc/INSTALL.html -t html doc/INSTALL.t2t", "could not update INSTALL.html" );
@ -201,7 +202,7 @@ run( "git archive --format tar --prefix=qgis-$version/ $reltag | bzip2 -c >qgis-
run( "sha256sum qgis-$version.tar.bz2 >qgis-$version.tar.bz2.sha256", "sha256sum failed" );
my @topush;
unless( $dopoint ) {
unless( defined $dopoint ) {
$newminor++;
print "Updating master...\n";
@ -246,12 +247,12 @@ release.pl - create a new release
=head1 SYNOPSIS
release.pl {{-major|-minor [-premajor]} [-skipts] -releasename=releasename|-point} [-ltr]
release.pl {{-major|-minor [-premajor]} [-skipts] -releasename=releasename|-point[=version]} [-ltr]
Options:
-major do a new major release
-minor do a new minor release
-point do a new point release
-point[=number] do a new point release with an optional number
-releasename=name new release name for master/minor release
-ltr new release is a long term release
-dryrun just echo but don't run any commands
@ -267,5 +268,5 @@ release.pl {{-major|-minor [-premajor]} [-skipts] -releasename=releasename|-poin
master_$currentmajor to allow more interim minor releases
while the new major version is being developed in master.
For that the minor version of the master branch leading
to the next major release is bumped to 999.
to the next major release is bumped to 99.
=cut