diff options
| author | Phil Nash | 2015-06-29 18:05:23 +0100 |
|---|---|---|
| committer | Phil Nash | 2015-06-29 18:06:15 +0100 |
| commit | 21f7ef6fdcfcc98fa668028c02ba51643982e7cf (patch) | |
| tree | bdf6b9ca32777405feeefa8a6f5e34481fe6f468 /scripts | |
| parent | f5fef1ebed9faaf12058d7a16223b4f617e6a5b6 (diff) | |
| download | catch3-1.2.0.tar.gz | |
Committed to semantic versioningv1.2.0
as prompted by #365, #430, #447 and a thread on the google group.
- split version bumping out of generateSingleHeader script
- separate scripts for bumping each version component
- "build" number only incremented for "develop" builds
Diffstat (limited to 'scripts')
| -rw-r--r-- | scripts/developBuild.py | 9 | ||||
| -rw-r--r-- | scripts/generateSingleHeader.py | 93 | ||||
| -rw-r--r-- | scripts/majorRelease.py | 9 | ||||
| -rw-r--r-- | scripts/minorRelease.py | 9 | ||||
| -rw-r--r-- | scripts/patchRelease.py | 9 | ||||
| -rw-r--r-- | scripts/releaseCommon.py | 89 |
6 files changed, 145 insertions, 73 deletions
diff --git a/scripts/developBuild.py b/scripts/developBuild.py new file mode 100644 index 00000000..c244871a --- /dev/null +++ b/scripts/developBuild.py @@ -0,0 +1,9 @@ +from __future__ import print_function +from releaseCommon import Version + +v = Version() +v.incrementBuildNumber() +v.updateVersionFile() +v.updateReadmeFile() + +print( "Updated Version.hpp and README to v{0}".format( v.getVersionString() ) )
\ No newline at end of file diff --git a/scripts/generateSingleHeader.py b/scripts/generateSingleHeader.py index cd97010f..419633f8 100644 --- a/scripts/generateSingleHeader.py +++ b/scripts/generateSingleHeader.py @@ -7,8 +7,9 @@ import datetime import string from scriptCommon import catchPath +from releaseCommon import Version + -versionParser = re.compile( r'(\s*Version\slibraryVersion)\s*\(\s*(.*)\s*,\s*(.*)\s*,\s*(.*)\s*,\s*\"(.*)\"\s*\).*' ) includesParser = re.compile( r'\s*#include\s*"(.*)"' ) guardParser = re.compile( r'\s*#.*TWOBLUECUBES_CATCH_.*_INCLUDED') defineParser = re.compile( r'\s*#define') @@ -20,22 +21,15 @@ commentParser2 = re.compile( r'^ \*') blankParser = re.compile( r'^\s*$') seenHeaders = set([]) rootPath = os.path.join( catchPath, 'include/' ) -versionPath = os.path.join( rootPath, "internal/catch_version.hpp" ) -readmePath = os.path.join( catchPath, "README.md" ) outputPath = os.path.join( catchPath, 'single_include/catch.hpp' ) -bumpVersion = True includeImpl = True for arg in sys.argv[1:]: arg = string.lower(arg) - if arg == "nobump": - bumpVersion = False - print( "Not bumping version number" ) - elif arg == "noimpl": + if arg == "noimpl": includeImpl = False - bumpVersion = False - print( "Not including impl code (and not bumping version)" ) + print( "Not including impl code" ) else: print( "\n** Unrecognised argument: " + arg + " **\n" ) exit(1) @@ -87,70 +81,23 @@ def parseFile( path, filename ): if blanks < 2: write( line.rstrip() + "\n" ) -class Version: - def __init__(self): - f = open( versionPath, 'r' ) - for line in f: - m = versionParser.match( line ) - if m: - self.variableDecl = m.group(1) - self.majorVersion = int(m.group(2)) - self.minorVersion = int(m.group(3)) - self.buildNumber = int(m.group(4)) - self.branchName = m.group(5) - f.close() - - def incrementBuildNumber(self): - self.buildNumber = self.buildNumber+1 - - def updateVersionFile(self): - f = open( versionPath, 'r' ) - lines = [] - for line in f: - m = versionParser.match( line ) - if m: - lines.append( '{0}( {1}, {2}, {3}, "{4}" );'.format( self.variableDecl, self.majorVersion, self.minorVersion, self.buildNumber, self.branchName ) ) - else: - lines.append( line.rstrip() ) - f.close() - f = open( versionPath, 'w' ) - for line in lines: - f.write( line + "\n" ) - - def updateReadmeFile(self): - f = open( readmePath, 'r' ) - lines = [] - for line in f: - lines.append( line.rstrip() ) - f.close() - f = open( readmePath, 'w' ) - for line in lines: - if line.startswith( "*v" ): - f.write( '*v{0}.{1} build {2} ({3} branch)*\n'.format( self.majorVersion, self.minorVersion, self.buildNumber, self.branchName ) ) - else: - f.write( line + "\n" ) -def generateSingleInclude(): - v = Version() - if bumpVersion: - v.incrementBuildNumber() - v.updateVersionFile() - v.updateReadmeFile() - out.write( "/*\n" ) - out.write( " * CATCH v{0}.{1} build {2} ({3} branch)\n".format( v.majorVersion, v.minorVersion, v.buildNumber, v.branchName ) ) - out.write( " * Generated: {0}\n".format( datetime.datetime.now() ) ) - out.write( " * ----------------------------------------------------------\n" ) - out.write( " * This file has been merged from multiple headers. Please don't edit it directly\n" ) - out.write( " * Copyright (c) 2012 Two Blue Cubes Ltd. All rights reserved.\n" ) - out.write( " *\n" ) - out.write( " * Distributed under the Boost Software License, Version 1.0. (See accompanying\n" ) - out.write( " * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\n" ) - out.write( " */\n" ) - out.write( "#ifndef TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED\n" ) - out.write( "#define TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED\n" ) +v = Version() +out.write( "/*\n" ) +out.write( " * Catch v{0}\n".format( v.getVersionString() ) ) +out.write( " * Generated: {0}\n".format( datetime.datetime.now() ) ) +out.write( " * ----------------------------------------------------------\n" ) +out.write( " * This file has been merged from multiple headers. Please don't edit it directly\n" ) +out.write( " * Copyright (c) 2012 Two Blue Cubes Ltd. All rights reserved.\n" ) +out.write( " *\n" ) +out.write( " * Distributed under the Boost Software License, Version 1.0. (See accompanying\n" ) +out.write( " * file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\n" ) +out.write( " */\n" ) +out.write( "#ifndef TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED\n" ) +out.write( "#define TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED\n" ) - parseFile( rootPath, 'catch.hpp' ) +parseFile( rootPath, 'catch.hpp' ) - out.write( "#endif // TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED\n\n" ) +out.write( "#endif // TWOBLUECUBES_SINGLE_INCLUDE_CATCH_HPP_INCLUDED\n\n" ) -generateSingleInclude() +print ("Generated single include for Catch v{0}\n".format( v.getVersionString() ) ) diff --git a/scripts/majorRelease.py b/scripts/majorRelease.py new file mode 100644 index 00000000..03b7e78e --- /dev/null +++ b/scripts/majorRelease.py @@ -0,0 +1,9 @@ +from __future__ import print_function +from releaseCommon import Version + +v = Version() +v.incrementMajorVersion() +v.updateVersionFile() +v.updateReadmeFile() + +print( "Updated Version.hpp and README to v{0}".format( v.getVersionString() ) )
\ No newline at end of file diff --git a/scripts/minorRelease.py b/scripts/minorRelease.py new file mode 100644 index 00000000..bbd97ed0 --- /dev/null +++ b/scripts/minorRelease.py @@ -0,0 +1,9 @@ +from __future__ import print_function +from releaseCommon import Version + +v = Version() +v.incrementMinorVersion() +v.updateVersionFile() +v.updateReadmeFile() + +print( "Updated Version.hpp and README to v{0}".format( v.getVersionString() ) )
\ No newline at end of file diff --git a/scripts/patchRelease.py b/scripts/patchRelease.py new file mode 100644 index 00000000..6abf87af --- /dev/null +++ b/scripts/patchRelease.py @@ -0,0 +1,9 @@ +from __future__ import print_function +from releaseCommon import Version + +v = Version() +v.incrementPatchNumber() +v.updateVersionFile() +v.updateReadmeFile() + +print( "Updated Version.hpp and README to v{0}".format( v.getVersionString() ) )
\ No newline at end of file diff --git a/scripts/releaseCommon.py b/scripts/releaseCommon.py new file mode 100644 index 00000000..14eb235e --- /dev/null +++ b/scripts/releaseCommon.py @@ -0,0 +1,89 @@ +from __future__ import print_function + +import os +import sys +import re +import string + +from scriptCommon import catchPath + +versionParser = re.compile( r'(\s*Version\slibraryVersion)\s*\(\s*(.*)\s*,\s*(.*)\s*,\s*(.*)\s*,\s*\"(.*)\"\s*,\s*(.*)\s*\).*' ) +rootPath = os.path.join( catchPath, 'include/' ) +versionPath = os.path.join( rootPath, "internal/catch_version.hpp" ) +readmePath = os.path.join( catchPath, "README.md" ) + +class Version: + def __init__(self): + f = open( versionPath, 'r' ) + for line in f: + m = versionParser.match( line ) + if m: + self.variableDecl = m.group(1) + self.majorVersion = int(m.group(2)) + self.minorVersion = int(m.group(3)) + self.patchNumber = int(m.group(4)) + self.branchName = m.group(5) + self.buildNumber = int(m.group(6)) + f.close() + + def nonDevelopRelease(self): + if self.branchName != "": + self.branchName = "" + self.buildNumber = 0 + def developBuild(self): + if self.branchName == "": + self.branchName = "develop" + self.buildNumber = 0 + + def incrementBuildNumber(self): + self.developBuild() + self.buildNumber = self.buildNumber+1 + + def incrementPatchNumber(self): + self.nonDevelopRelease() + self.patchNumber = self.patchNumber+1 + + def incrementMinorVersion(self): + self.nonDevelopRelease() + self.patchNumber = 0 + self.minorVersion = self.minorVersion+1 + + def incrementMajorVersion(self): + self.nonDevelopRelease() + self.patchNumber = 0 + self.minorVersion = 0 + self.majorVersion = self.majorVersion+1 + + def getVersionString(self): + versionString = '{0}.{1}.{2}'.format( self.majorVersion, self.minorVersion, self.patchNumber ) + if self.branchName != "": + versionString = versionString + '-{0}.{1}'.format( self.branchName, self.buildNumber ) + return versionString + + def updateVersionFile(self): + f = open( versionPath, 'r' ) + lines = [] + for line in f: + m = versionParser.match( line ) + if m: + lines.append( '{0}( {1}, {2}, {3}, "{4}", {5} );'.format( self.variableDecl, self.majorVersion, self.minorVersion, self.patchNumber, self.branchName, self.buildNumber ) ) + else: + lines.append( line.rstrip() ) + f.close() + f = open( versionPath, 'w' ) + for line in lines: + f.write( line + "\n" ) + + def updateReadmeFile(self): + f = open( readmePath, 'r' ) + lines = [] + for line in f: + lines.append( line.rstrip() ) + f.close() + f = open( readmePath, 'w' ) + for line in lines: + if line.startswith( "*v" ): + f.write( '*v{0}*\n'.format( self.getVersionString() ) ) + else: + f.write( line + "\n" ) + |