summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2014-01-09 21:21:09 +0000
committerCarl Hetherington <cth@carlh.net>2014-01-09 21:21:09 +0000
commit15ef3602230deec5e1d4e9f74992f999a5cb641c (patch)
treea5081aea6cca2bd425c0a23378279564fb6bd879
parent411fe562073eeb2b8ff616e16b315e3b506c5445 (diff)
Try to replace beta versions with micro versioning.
-rwxr-xr-xcdist67
1 files changed, 26 insertions, 41 deletions
diff --git a/cdist b/cdist
index 72c020d..fc24ca4 100755
--- a/cdist
+++ b/cdist
@@ -137,7 +137,6 @@ def read_wscript_variable(directory, variable):
class Version:
def __init__(self, s):
self.pre = False
- self.beta = None
if s.startswith("'"):
s = s[1:]
@@ -148,47 +147,32 @@ class Version:
s = s[0:-3]
self.pre = True
- b = s.find("beta")
- if b != -1:
- self.beta = int(s[b+4:])
- s = s[0:b]
-
p = s.split('.')
self.major = int(p[0])
self.minor = int(p[1])
+ if len(p) == 3:
+ self.micro = int(p[2])
+ else:
+ self.micro = 0
- def bump(self):
+ def bump_minor(self):
self.minor += 1
+ self.micro = 0
self.pre = False
- self.beta = None
- def to_pre(self):
- self.pre = True
- self.beta = None
+ def bump_micro(self):
+ self.micro += 1
+ self.pre = False
- def bump_and_to_pre(self):
- self.bump()
+ def to_pre(self):
self.pre = True
- self.beta = None
def to_release(self):
self.pre = False
- self.beta = None
-
- def bump_beta(self):
- if self.pre:
- self.pre = False
- self.beta = 1
- elif self.beta is not None:
- self.beta += 1
- elif self.beta is None:
- self.beta = 1
def __str__(self):
- s = '%d.%02d' % (self.major, self.minor)
- if self.beta is not None:
- s += 'beta%d' % self.beta
- elif self.pre:
+ s = '%d.%02d.%d' % (self.major, self.minor, self.micro)
+ if self.pre:
s += 'pre'
return s
@@ -588,8 +572,8 @@ parser = argparse.ArgumentParser()
parser.add_argument('command')
parser.add_argument('-p', '--project', help='project name')
parser.add_argument('-d', '--directory', help='directory within project repo', default='.')
-parser.add_argument('--beta', help='beta release', action='store_true')
-parser.add_argument('--full', help='full release', action='store_true')
+parser.add_argument('--minor', help='minor version number bump', action='store_true')
+parser.add_argument('--micro', help='micro version number bump', action='store_true')
parser.add_argument('-c', '--checkout', help='string to pass to git for checkout')
parser.add_argument('-o', '--output', help='output directory', default='.')
parser.add_argument('-q', '--quiet', help='be quiet', action='store_true')
@@ -644,17 +628,14 @@ elif args.command == 'package':
target.cleanup()
elif args.command == 'release':
- if args.full is False and args.beta is False:
- raise Error('you must specify --full or --beta')
+ if args.minor is False and args.micro is False:
+ raise Error('you must specify --minor or --micro')
target = SourceTarget()
project.checkout(target)
version = project.version
- if args.full:
- version.to_release()
- else:
- version.bump_beta()
+ version.to_release()
set_version_in_wscript(version)
append_version_to_changelog(version)
@@ -663,11 +644,14 @@ elif args.command == 'release':
command('git commit -a -m "Bump version"')
command('git tag -m "v%s" v%s' % (version, version))
- if args.full:
- version.bump_and_to_pre()
- set_version_in_wscript(version)
- command('git commit -a -m "Bump version"')
+ if args.minor:
+ version.bump_minor()
+ else:
+ version.bump_micro()
+ version.to_pre()
+ set_version_in_wscript(version)
+ command('git commit -a -m "Bump version"')
command('git push')
command('git push --tags')
@@ -702,7 +686,8 @@ elif args.command == 'changelog':
if len(l) > 0 and l[0] == "\t":
s = l.split()
if len(s) == 4 and s[1] == "Version" and s[3] == "released.":
- if not "beta" in s[2]:
+ v = Version(s[2])
+ if v.micro == 0:
if last is not None and len(changes) > 0:
print >>html,"<h2>Changes between version %s and %s</h2>" % (s[2], last)
print >>html,"<ul>"