From 7c3c04f7967fa71284001c07c12e53256455f844 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miroslav=20Such=C3=BD?= Date: Fri, 26 Nov 2010 16:55:11 +0100 Subject: [PATCH] add new tagger: zStreamTagger - bump up release part after dist tag --- bin/bump-version.pl | 15 ++++++++++++--- src/tito/tagger.py | 4 +++- src/tito/zstreamtagger.py | 20 ++++++++++++++++++++ 3 files changed, 35 insertions(+), 4 deletions(-) create mode 100644 src/tito/zstreamtagger.py diff --git a/bin/bump-version.pl b/bin/bump-version.pl index a39ff35..74292a0 100755 --- a/bin/bump-version.pl +++ b/bin/bump-version.pl @@ -19,7 +19,7 @@ use warnings FATAL => 'all'; my $command = shift @ARGV; if (not defined $command - or ($command ne 'bump-version' and $command ne 'bump-release')) { + or ($command ne 'bump-version' and $command ne 'bump-release' and $command ne 'zstream-release')) { usage(); } my $specfile = 0; @@ -32,7 +32,7 @@ if (not @ARGV) { } sub usage { - die "usage: $0 { bump-version | bump-release } [--specfile] file [ files ... ]\n"; + die "usage: $0 { bump-version | bump-release | zstream-release } [--specfile] file [ files ... ]\n"; } my $newfile; @@ -42,8 +42,10 @@ while () { if ($command eq 'bump-version') { s/^(version:\s*)(.+)/ $1 . bump_version($2) /ei; s/^(release:\s*)(.+)/ $1 . reset_release($2) /ei; - } else { + } elsif ($command eq 'bump-bump-release') { s/^(release:\s*)(.+)/ $1 . bump_version($2) /ei; + } else { # zstream-release Release: 7%{?dist} + s/^(release:\s*)(.+)/ $1 . bump_zstream($2) /ei; } push @content, $_; } else { @@ -90,6 +92,13 @@ sub bump_version { $_; } +sub bump_zstream { + my $version = shift; + # if we do not have zstream, create .0 and then bump the version + $version =~ s/^(.*)(%{\?dist})$/$1$2.0/i; + return bump_version($version); +} + sub reset_release { local $_ = shift; s/(^|\.)([.0-9]+)(\.|%|$)/${1}1$3/; diff --git a/src/tito/tagger.py b/src/tito/tagger.py index a083f92..ba249a4 100644 --- a/src/tito/tagger.py +++ b/src/tito/tagger.py @@ -259,7 +259,7 @@ class VersionTagger(object): relative = current_dir[len(git_root) + 1:] + "/" return relative - def _bump_version(self, release=False): + def _bump_version(self, release=False, zstream=False): """ Bump up the package version in the spec file. @@ -276,6 +276,8 @@ class VersionTagger(object): bump_type = "bump-version" if release: bump_type = "bump-release" + elif zstream: + bump_type = "bump-zstream" script_path = get_script_path("bump-version.pl") cmd = "%s %s --specfile %s" % \ diff --git a/src/tito/zstreamtagger.py b/src/tito/zstreamtagger.py new file mode 100644 index 0000000..ae7a4d0 --- /dev/null +++ b/src/tito/zstreamtagger.py @@ -0,0 +1,20 @@ +from tito.tagger import VersionTagger + +class zStreamTagger(VersionTagger): + """ + Tagger which increments the spec file zstream number instead of version. + + Used for: + - Red Hat Service Packs (zstream) + """ + + def _tag_release(self): + """ + Tag a new zstream of the package. (i.e. x.y.z-r%{dist}.Z+1) + """ + self._make_changelog() + new_version = self._bump_version(release=True) + + self._check_tag_does_not_exist(self._get_new_tag(new_version)) + self._update_changelog(new_version) + self._update_package_metadata(new_version, release=True)