From 7214496dd37924a5fa54133bfef57f88f98c01b9 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sat, 22 Apr 2017 21:50:07 +0300 Subject: Add support for version.txt, version.yaml --- bumper | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 57 insertions(+), 4 deletions(-) diff --git a/bumper b/bumper index 4bbb25a..b2b6ad4 100755 --- a/bumper +++ b/bumper @@ -21,6 +21,7 @@ import re import time import cliapp +import yaml import bumperlib @@ -39,8 +40,19 @@ class Bumper(cliapp.Application): version, current_version)) version_py = self.find_version_py() - print '... {}'.format(version_py) - self.write_version_py(version_py, version, '') + if version_py: + print '... {}'.format(version_py) + self.write_version_py(version_py, version, '') + + version_txt = self.find_version_txt() + if version_txt: + print '... {}'.format(version_txt) + self.write_version_txt(version_txt, version, '') + + version_yaml = self.find_version_yaml() + if version_yaml: + print '... {}'.format(version_yaml) + self.write_version_yaml(version_yaml, version, '') print '... debian/changelog' self.update_debian_changelog(version, '') @@ -58,8 +70,17 @@ class Bumper(cliapp.Application): gitversion = version + '+git' print 'Updating in-development version to', gitversion - print '... {}'.format(version_py) - self.write_version_py(version_py, version, '+git') + if version_py: + print '... {}'.format(version_py) + self.write_version_py(version_py, version, '+git') + + if version_txt: + print '... {}'.format(version_txt) + self.write_version_txt(version_txt, version, '+git') + + if version_yaml: + print '... {}'.format(version_yaml) + self.write_version_yaml(version_yaml, version, '+git') print '... debian/changelog' self.update_debian_changelog(version, 'New upstream version.') @@ -88,6 +109,26 @@ class Bumper(cliapp.Application): raise cliapp.AppException('Too many version.py in project') return version_pys[0] + def find_version_txt(self): + output = cliapp.runcmd(['git', 'ls-files']) + filenames = [x.strip() for x in output.splitlines()] + version_txts = [x for x in filenames if x == 'version.txt'] + if len(version_txts) == 0: + raise cliapp.AppException('No version.txt in project') + elif len(version_txts) > 1: + raise cliapp.AppException('Too many version.txt in project') + return version_txts[0] + + def find_version_yaml(self): + output = cliapp.runcmd(['git', 'ls-files']) + filenames = [x.strip() for x in output.splitlines()] + version_yamls = [x for x in filenames if x == 'version.yaml'] + if len(version_yamls) == 0: + raise cliapp.AppException('No version.yaml in project') + elif len(version_yamls) > 1: + raise cliapp.AppException('Too many version.yaml in project') + return version_yamls[0] + def get_current_version(self): return cliapp.runcmd(['python', 'setup.py', '--version']).strip() @@ -163,5 +204,17 @@ class Bumper(cliapp.Application): result.append(suffix) return tuple(result) + def write_version_txt(self, filename, version, suffix): + with open(filename, 'w') as f: + f.write('{}\n'.format(version + suffix)) + + def write_version_yaml(self, filename, version, suffix): + version = { + 'version': version + suffix, + 'version_info': self.parse_version_info(version, suffix), + } + with open(filename, 'w') as f: + yaml.safe_dump(version, stream=f, indent=4) + Bumper(version=bumperlib.__version__).run() -- cgit v1.2.1