summaryrefslogtreecommitdiff
path: root/bumper
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2016-02-14 13:14:23 +0200
committerLars Wirzenius <liw@liw.fi>2016-02-14 13:35:46 +0200
commita5f6c84f32855c1516a9d284b0bba33202c7b66c (patch)
tree56176341826c3fce1fc0173917454871fd7e6a53 /bumper
parent70668a5053c800b9b5a5d4f964f79e503928b11b (diff)
downloadbumper-a5f6c84f32855c1516a9d284b0bba33202c7b66c.tar.gz
Add +git suffix to version after release
Diffstat (limited to 'bumper')
-rwxr-xr-xbumper69
1 files changed, 55 insertions, 14 deletions
diff --git a/bumper b/bumper
index f2153e3..65aae99 100755
--- a/bumper
+++ b/bumper
@@ -28,29 +28,68 @@ class Bumper(cliapp.Application):
def process_args(self, args):
version = args[0]
filename = args[1]
- self.write_version_py(filename, version)
- self.update_debian_changelog(version)
- self.update_NEWS(version)
- self.commit(version)
+ print 'Preparing release version', version
+
+ print 'Setting version in', filename
+ self.write_version_py(filename, version, '')
+
+ print 'Updating debian/changelog'
+ self.update_debian_changelog(version, 'New upstream version.')
+ self.release_debian_changelog()
+
+ print 'Updating NEWS'
+ self.update_NEWS_for_release(version)
+
+ print 'Committing version updates to git'
+ self.commit(version, 'Prepare to release version {}'.format(version))
+
+ print 'Making release tag'
self.make_release_tag(version)
- def update_debian_changelog(self, version):
+ gitversion = version + '+git'
+ print 'Updating in-development version to', gitversion
+
+ print 'Setting version in', filename
+ self.write_version_py(filename, version, '+git')
+
+ print 'Updating debian/changelog'
+ self.update_debian_changelog(gitversion, '')
+
+ print 'Updating NEWS'
+ self.update_NEWS_for_git(gitversion)
+
+ print 'Committing development version changes'
+ self.commit(
+ version,
+ 'Bump version number post-release to {}'.format(gitversion))
+
+ def update_debian_changelog(self, version, msg):
debian_version = '{}-1'.format(version)
- cliapp.runcmd(['dch', '-v', debian_version, 'New upstream release.'])
+ cliapp.runcmd(['dch', '-v', debian_version, msg])
+
+ def release_debian_changelog(self):
cliapp.runcmd(['dch', '-r', ''])
- def update_NEWS(self, version):
+ def update_NEWS_for_release(self, version):
with open('NEWS') as f:
text = f.read()
date = time.strftime('%Y-%m-%d')
- pattern = r'^Version \d+(\.\d+)*, not yet released$'
+ pattern = r'^Version \d+(\.\d+)*(\+git)?, not yet released$'
replacement = 'Version {}, released {}'.format(version, date)
updated = re.sub(pattern, replacement, text, flags=re.M)
with open('NEWS', 'w') as f:
f.write(updated)
- def commit(self, version):
- msg = 'Prepare to release version {}'.format(version)
+ def update_NEWS_for_git(self, version):
+ with open('NEWS') as f:
+ text = f.read()
+ pattern = r'^Version \d+(\.\d+)*, released \d\d\d\d-\d\d-\d\d$'
+ replacement = 'Version {}, not yet released'.format(version)
+ updated = re.sub(pattern, replacement, text, flags=re.M)
+ with open('NEWS', 'w') as f:
+ f.write(updated)
+
+ def commit(self, version, msg):
cliapp.runcmd(['git', 'commit', '-am', msg])
def make_release_tag(self, version):
@@ -63,13 +102,13 @@ class Bumper(cliapp.Application):
output = cliapp.runcmd(['python', 'setup.py', '--name'])
return output.strip()
- def write_version_py(self, filename, version):
- version_info = self.parse_version_info(version)
+ def write_version_py(self, filename, version, suffix):
+ version_info = self.parse_version_info(version, suffix)
with open(filename, 'w') as f:
- f.write('__version__ = "{}"\n'.format(version))
+ f.write('__version__ = "{}"\n'.format(version + suffix))
f.write('__version_info__ = {!r}\n'.format(version_info))
- def parse_version_info(self, version):
+ def parse_version_info(self, version, suffix):
parts = version.split('.')
result = []
for part in parts:
@@ -77,6 +116,8 @@ class Bumper(cliapp.Application):
result.append(int(part))
except ValueError:
result.append(part)
+ if suffix:
+ result.append(suffix)
return tuple(result)