doc/manual/pdf
doc/manual/extensions.ent
.be/id-cache
+*.pyc
+
import sys
import datetime
import shutil
+import version
def command(c):
os.system(c)
print c
-def release_version(s):
- s = s[1:-1]
- if s.endswith('pre'):
- s = s[0:-3]
- p = s.split('.')
- return '0.%02d' % int(p[1])
-
-def new_pre_version(s):
- s = s[1:-1]
- p = s.split('.')
- return '0.%02dpre' % (int(p[1]) + 1)
-
-def rewrite_wscript(version_maker):
- f = open('wscript', 'rw')
- o = open('wscript.tmp', 'w')
- while 1:
- l = f.readline()
- if l == '':
- break
-
- s = l.split()
- if len(s) == 3 and s[0] == "VERSION":
- v = version_maker(s[2])
- print "REWRITE %s -> %s" % (s[2], v)
- print >>o,"VERSION = '%s'" % v
- else:
- print >>o,l,
- f.close()
- o.close()
-
- os.rename('wscript.tmp', 'wscript')
- return v
-
-def append_to_changelog(version):
- f = open('ChangeLog', 'r')
- c = f.read()
- f.close()
-
- f = open('ChangeLog', 'w')
- now = datetime.datetime.now()
- f.write('%d-%02d-%02d Carl Hetherington <cth@carlh.net>\n\n\t* Version %s released.\n\n' % (now.year, now.month, now.day, version))
- f.write(c)
-
command("git checkout master")
-
-release_version_string = rewrite_wscript(release_version)
-append_to_changelog(release_version_string)
+
+release_version_string = version.rewrite_wscript(version.Version.to_release)
+version.append_to_changelog(release_version_string)
command("git diff")
if (raw_input() != "y"):
command("./builds/windows-64")
shutil.copy(os.path.join('build', 'windows', 'DVD-o-matic %s 64-bit Installer.exe' % release_version_string), '.')
-rewrite_wscript(new_pre_version)
+version.rewrite_wscript(version.Version.bump_and_to_pre)
command("git diff")
if (raw_input() != "y"):
--- /dev/null
+#!/usr/bin/python
+
+import version
+
+a = version.Version("0.51")
+assert(a.major == 0)
+assert(a.minor == 51)
+assert(a.pre == False)
+assert(a.beta == None)
+assert(str(a) == "0.51")
+
+a.bump_and_to_pre()
+assert(a.major == 0)
+assert(a.minor == 52)
+assert(a.pre == True)
+assert(a.beta == None)
+assert(str(a) == "0.52pre")
+
+a.bump()
+assert(a.major == 0)
+assert(a.minor == 53)
+assert(a.pre == False)
+assert(a.beta == None)
+assert(str(a) == "0.53")
+
+a.to_pre()
+a.bump_beta()
+assert(a.major == 0)
+assert(a.minor == 53)
+assert(a.pre == False)
+assert(a.beta == 1)
+assert(str(a) == "0.53beta1")
+
+a.bump_beta()
+assert(a.major == 0)
+assert(a.minor == 53)
+assert(a.pre == False)
+assert(a.beta == 2)
+assert(str(a) == "0.53beta2")
+
+a.to_release()
+assert(a.major == 0)
+assert(a.minor == 53)
+assert(a.pre == False)
+assert(a.beta == None)
+assert(str(a) == "0.53")
--- /dev/null
+#!/usr/bin/python
+
+import os
+import sys
+import datetime
+import shutil
+import copy
+
+class Version:
+ def __init__(self, s):
+ self.pre = False
+ self.beta = None
+
+ if s.startswith("'"):
+ s = s[1:]
+ if s.endswith("'"):
+ s = s[0:-1]
+
+ if s.endswith('pre'):
+ s = s[0:-3]
+ self.pre = True
+
+ b = s.find("beta")
+ if b != -1:
+ self.beta = int(s[b+4:])
+
+ p = s.split('.')
+ self.major = int(p[0])
+ self.minor = int(p[1])
+
+ def bump(self):
+ self.minor += 1
+ self.pre = False
+ self.beta = None
+
+ def bump_and_to_pre(self):
+ self.bump()
+ 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 += 'pre'
+
+ return s
+
+def rewrite_wscript(method):
+ f = open('wscript', 'rw')
+ o = open('wscript.tmp', 'w')
+ version = None
+ while 1:
+ l = f.readline()
+ if l == '':
+ break
+
+ s = l.split()
+ if len(s) == 3 and s[0] == "VERSION":
+ version = Version(s[2])
+ method(version)
+ print "Writing %s" % version
+ print >>o,"VERSION = '%s'" % version
+ else:
+ print >>o,l,
+ f.close()
+ o.close()
+
+ os.rename('wscript.tmp', 'wscript')
+ return version
+
+def append_to_changelog(version):
+ f = open('ChangeLog', 'r')
+ c = f.read()
+ f.close()
+
+ f = open('ChangeLog', 'w')
+ now = datetime.datetime.now()
+ f.write('%d-%02d-%02d Carl Hetherington <cth@carlh.net>\n\n\t* Version %s released.\n\n' % (now.year, now.month, now.day, version))
+ f.write(c)