add new tagger: zStreamTagger - bump up release part after dist tag

This commit is contained in:
Miroslav Suchý 2010-11-26 16:55:11 +01:00
parent 64fdac6c79
commit 7c3c04f796
3 changed files with 35 additions and 4 deletions

View file

@ -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 (<ARGV>) {
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/;

View file

@ -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" % \

20
src/tito/zstreamtagger.py Normal file
View file

@ -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)