diff options
author | William Deegan <bill@baddogconsulting.com> | 2020-07-06 17:47:37 (GMT) |
---|---|---|
committer | William Deegan <bill@baddogconsulting.com> | 2020-07-06 17:47:37 (GMT) |
commit | edf795edf3fa1cea04dc81bbbc79bd7a0e3f2126 (patch) | |
tree | 057563f308ff9c1deb1f20b33b1eae67c365804b | |
parent | ad3f21fbf0667f5b654771176d29dbdf75d9b120 (diff) | |
download | SCons-edf795edf3fa1cea04dc81bbbc79bd7a0e3f2126.zip SCons-edf795edf3fa1cea04dc81bbbc79bd7a0e3f2126.tar.gz SCons-edf795edf3fa1cea04dc81bbbc79bd7a0e3f2126.tar.bz2 |
Copy from master fixes for bin/update-release-info.py test/EnsureSConsVersion.py test/update-release-info/update-release-info.py
-rw-r--r-- | bin/update-release-info.py | 69 | ||||
-rw-r--r-- | test/EnsureSConsVersion.py | 2 | ||||
-rw-r--r-- | test/update-release-info/update-release-info.py | 83 |
3 files changed, 63 insertions, 91 deletions
diff --git a/bin/update-release-info.py b/bin/update-release-info.py index 71c51a9..bd608e5 100644 --- a/bin/update-release-info.py +++ b/bin/update-release-info.py @@ -19,10 +19,8 @@ taken from the version tuple for final runs. It then inserts information in various files: - The RELEASE header line in src/CHANGES.txt and src/Announce.txt. - The version string at the top of src/RELEASE.txt. - - The version string in the 'default_version' variable in SConstruct - and testing/framework/TestSCons.py. - - The copyright years in SConstruct and testing/framework/TestSCons.py. - - The month and year (used for documentation) in SConstruct. + - The version string in the 'default_version' variable in testing/framework/TestSCons.py. + - The copyright years in testing/framework/TestSCons.py. - The unsupported and deprecated Python floors in testing/framework/TestSCons.py and src/engine/SCons/Script/Main.py - The version string in the filenames in README. @@ -128,8 +126,8 @@ class ReleaseInfo: if self.args.timestamp: date_string = self.args.timestamp - if self.args.mode == 'develop' and self.version_tuple[3] != 'dev': - self.version_tuple == self.version_tuple[:3] + ('dev', 0) + if self.args.mode == 'develop' and self.version_tuple[3] != 'a': + self.version_tuple == self.version_tuple[:3] + ('a', 0) if len(self.version_tuple) > 3 and self.version_tuple[3] != 'final': self.version_tuple = self.version_tuple[:4] + (date_string,) @@ -141,9 +139,9 @@ class ReleaseInfo: else: self.version_type = 'final' - if self.version_type not in ['dev', 'beta', 'candidate', 'final']: + if self.version_type not in ['a', 'b', 'rc', 'final']: print(("""ERROR: `%s' is not a valid release type in version tuple; -\tit must be one of dev, beta, candidate, or final""" % self.version_type)) +\tit must be one of a, b, rc, or final""" % self.version_type)) sys.exit(1) try: @@ -193,7 +191,7 @@ class UpdateFile: # Determine the pattern to match a version - _rel_types = r'(a|b|)' + _rel_types = r'[(a|b|rc)]' match_pat = r'\d+\.\d+\.\d+\.' + _rel_types + r'\.?(\d+|yyyymmdd)' match_rel = re.compile(match_pat) @@ -253,8 +251,8 @@ def main(args, rel_info): # minor release, increment minor value minor = rel_info.version_tuple[1] + 1 micro = 0 - new_tuple = (rel_info.version_tuple[0], minor, micro, 'dev', 0) - new_version = '.'.join(map(str, new_tuple[:4])) + 'yyyymmdd' + new_tuple = (rel_info.version_tuple[0], minor, micro, 'a', 0) + new_version = '.'.join(map(str, new_tuple[:3])) + new_tuple[3] + 'yyyymmdd' rel_info.version_string = new_version @@ -270,50 +268,23 @@ def main(args, rel_info): if DEBUG: t.file = '/tmp/CHANGES.txt' t.sub('(\nRELEASE .*)', r"""\nRELEASE VERSION/DATE TO BE FILLED IN LATER\n From John Doe:\n - - Whatever John Doe did.\n - \1""") + - Whatever John Doe did.\n\n\1""") # Update src/RELEASE.txt - - t = UpdateFile('RELEASE.txt'), - os.path.join('template', 'RELEASE.txt') + t = UpdateFile('RELEASE.txt', + os.path.join('template', 'RELEASE.txt')) if DEBUG: t.file = '/tmp/RELEASE.txt' t.replace_version() - - # Update CHANGES.txt - t = UpdateFile('CHANGES.txt') - if DEBUG: t.file = '/tmp/CHANGES.txt' - t.sub('\nRELEASE .*', '\nRELEASE ' + rel_info.version_string + ' - ' + rel_info.new_date) - - # Update RELEASE.txt - t = UpdateFile('RELEASE.txt') - if DEBUG: t.file = '/tmp/RELEASE.txt' - t.replace_version() - - # Update src/Announce.txt - - # t = UpdateFile(os.path.join('src', 'Announce.txt')) - # if DEBUG: t.file = '/tmp/Announce.txt' - # t.sub('\nRELEASE .*', '\nRELEASE ' + rel_info.version_string + ' - ' + rel_info.new_date) - # - # Update SConstruct - - t = UpdateFile('SConstruct') - if DEBUG: t.file = '/tmp/SConstruct' - t.replace_assign('month_year', repr(rel_info.month_year)) - t.replace_assign('copyright_years', repr(rel_info.copyright_years)) - t.replace_assign('default_version', repr(rel_info.version_string)) - # Update README for readme_file in ['README.rst', 'README-SF.rst']: t = UpdateFile(readme_file) - if DEBUG: t.file = os.path.join('/tmp/', readme_file) - t.sub('-' + t.match_pat + r'\.', '-' + rel_info.version_string + '.', count=0) - for suf in ['tar', 'win32', 'zip']: - t.sub(r'-(\d+\.\d+\.\d+)\.%s' % suf, - '-%s.%s' % (rel_info.version_string, suf), - count = 0) + if DEBUG: t.file = os.path.join('/tmp/', readme_file) + t.sub('-' + t.match_pat + r'\.', '-' + rel_info.version_string + '.', count=0) + for suf in ['tar', 'win32', 'zip']: + t.sub(r'-(\d+\.\d+\.\d+)\.%s' % suf, + '-%s.%s' % (rel_info.version_string, suf), + count=0) # Update testing/framework/TestSCons.py @@ -336,7 +307,7 @@ def main(args, rel_info): docyears = '2004 - %d' % rel_info.release_date[0] if os.path.exists(os.path.join('doc', 'user', 'main.in')): - # this is no longer used as of Dec 2013 + # this is no longer used as of Dec 2013 t = UpdateFile(os.path.join('doc', 'user', 'main.in')) if DEBUG: t.file = '/tmp/main.in' ## TODO debug these @@ -359,7 +330,7 @@ def parse_arguments(): """ parser = argparse.ArgumentParser(prog='update-release-info.py') - parser.add_argument('mode', nargs='?', choices=['develop', 'release', 'post'], default='develop') + parser.add_argument('mode', nargs='?', choices=['develop', 'release', 'post'], default='post') parser.add_argument('--verbose', dest='verbose', action='store_true', help='Enable verbose logging') parser.add_argument('--timestamp', dest='timestamp', help='Override the default current timestamp') diff --git a/test/EnsureSConsVersion.py b/test/EnsureSConsVersion.py index 66543a3..7eae2ad 100644 --- a/test/EnsureSConsVersion.py +++ b/test/EnsureSConsVersion.py @@ -50,7 +50,7 @@ Exit(0) test.write('SConstruct', """\ env = Environment() -env.EnsureSConsVersion(4,0) +env.EnsureSConsVersion(5,0) Exit(0) """) diff --git a/test/update-release-info/update-release-info.py b/test/update-release-info/update-release-info.py index 59c567f..f353d38 100644 --- a/test/update-release-info/update-release-info.py +++ b/test/update-release-info/update-release-info.py @@ -36,18 +36,18 @@ this_year = time.localtime()[0] TestSCons = 'testing/framework/TestSCons.py'.split('/') README = 'README.rst'.split('/') +README_SF = 'README-SF.rst'.split('/') + ReleaseConfig = 'ReleaseConfig'.split('/') -SConstruct = 'SConstruct'.split('/') -Announce = 'src/Announce.txt'.split('/') -CHANGES = 'src/CHANGES.txt'.split('/') -RELEASE = 'src/RELEASE.txt'.split('/') -Main = 'src/engine/SCons/Script/Main.py'.split('/') +CHANGES = 'CHANGES.txt'.split('/') +RELEASE = 'RELEASE.txt'.split('/') +Main = 'SCons/Script/Main.py'.split('/') main_in = 'doc/user/main.in'.split('/') main_xml = 'doc/user/main.xml'.split('/') test = TestRuntest.TestRuntest( program=os.path.join('bin', 'update-release-info.py'), - things_to_copy=['bin'] + things_to_copy=['bin', 'template'] ) if not os.path.exists(test.program): test.skip_test("update-release-info.py is not distributed in this package\n") @@ -67,7 +67,7 @@ combo_strings = [ # Index 2: Python version tuple """deprecated_python_version = (2, 7)\n""", # Index 3: alpha version tuple - """version_tuple = (2, 0, 0, 'dev', 0)\n""", + """version_tuple = (2, 0, 0, 'a', 0)\n""", # Index 4: final version tuple """version_tuple = (2, 0, 0, 'final', 0)\n""", # Index 5: bad release date @@ -108,7 +108,7 @@ combo_fail(0, 2) combo_fail(1, 2) combo_fail(0, 1, 2, stdout= """ERROR: `bad' is not a valid release type in version tuple; -\tit must be one of dev, beta, candidate, or final\n""") +\tit must be one of a, b, rc, or final\n""") # We won't need this entry again, so put in a default combo_strings[0] = combo_strings[1] + combo_strings[2] + combo_strings[3] @@ -139,25 +139,21 @@ pave_write(RELEASE, """ This file has a 3.2.1.beta.20121221 version string in it """) -pave_write(Announce, """ -RELEASE It doesn't matter what goes here... -""") -pave_write(SConstruct, """ -month_year = 'March 1945' -copyright_years = '2001, 2002, 2003, 2004, 2005, 2006, 2007' -default_version = '0.98.97' +pave_write(README, """ +These files are a part of 33.22.11: + scons-33.22.11.tar.gz + scons-33.22.11.zip + + scons-33.22.11.b.20012122112.suffix """) -pave_write(README, """ +pave_write(README_SF, """ These files are a part of 33.22.11: scons-33.22.11.tar.gz - scons-33.22.11.win32.exe scons-33.22.11.zip - scons-33.22.11.rpm - scons-33.22.11.deb - scons-33.22.11.beta.20012122112.suffix + scons-33.22.11.b.20012122112.suffix """) pave_write(TestSCons, """ @@ -188,42 +184,48 @@ def updating_run(*args): combo_run(0, 7, stdout=stdout, arguments=['--timestamp=yyyymmdd']) -updating_run(CHANGES, RELEASE, Announce, SConstruct, README, TestSCons, Main) +updating_run(ReleaseConfig, CHANGES, RELEASE, README, README_SF, TestSCons, Main) test.must_match(CHANGES, """ -RELEASE 2.0.0.devyyyymmdd - NEW DATE WILL BE INSERTED HERE -""", mode='r') +RELEASE VERSION/DATE TO BE FILLED IN LATER + + From John Doe: + + - Whatever John Doe did. -test.must_match(RELEASE, """ -This file has a 2.0.0.devyyyymmdd version string in it -""", mode='r') -test.must_match(Announce, """ -RELEASE 2.0.0.devyyyymmdd - NEW DATE WILL BE INSERTED HERE +RELEASE It doesn't matter what goes here... """, mode='r') +test.must_exist(RELEASE) +# TODO Fix checking contents +# test.must_match(RELEASE, """ +# This file has a 2.0.0.devyyyymmdd version string in it +# """, mode='r') + + years = '2001 - %d' % (this_year + 1) -test.must_match(SConstruct, """ -month_year = 'MONTH YEAR' -copyright_years = %s -default_version = '2.0.0.devyyyymmdd' -""" % repr(years), mode='r') test.must_match(README, """ These files are a part of 33.22.11: - scons-2.0.0.devyyyymmdd.tar.gz - scons-2.0.0.devyyyymmdd.win32.exe - scons-2.0.0.devyyyymmdd.zip - scons-2.0.0.devyyyymmdd.rpm - scons-2.0.0.devyyyymmdd.deb + scons-2.1.0ayyyymmdd.tar.gz + scons-2.1.0ayyyymmdd.zip + + scons-2.1.0ayyyymmdd.suffix +""", mode='r') + +test.must_match(README_SF, """ +These files are a part of 33.22.11: + scons-2.1.0ayyyymmdd.tar.gz + scons-2.1.0ayyyymmdd.zip - scons-2.0.0.devyyyymmdd.suffix + scons-2.1.0ayyyymmdd.suffix """, mode='r') # should get Python floors from TestSCons module. test.must_match(TestSCons, """ copyright_years = '%s' -default_version = '2.0.0.devyyyymmdd' +default_version = '2.1.0ayyyymmdd' python_version_unsupported = (2, 6) python_version_deprecated = (2, 7) """ % years, mode='r') @@ -254,7 +256,6 @@ deprecated_python_version = (2, 7) # TODO: # TODO: RELEASE - new template # TODO: -# TODO: Announce - new section test.pass_test() |