summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2017-04-22 21:50:07 +0300
committerLars Wirzenius <liw@liw.fi>2017-04-22 21:50:07 +0300
commit7214496dd37924a5fa54133bfef57f88f98c01b9 (patch)
tree44ac48038c9489a7d3de0454dd90611a2f40a0ea
parent754141da035deb99a1848f79c229ac58203a6b12 (diff)
downloadbumper-7214496dd37924a5fa54133bfef57f88f98c01b9.tar.gz
Add support for version.txt, version.yaml
-rwxr-xr-xbumper61
1 files 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()