summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWilliam Deegan <bill@baddogconsulting.com>2020-07-06 17:47:37 (GMT)
committerWilliam Deegan <bill@baddogconsulting.com>2020-07-06 17:47:37 (GMT)
commitedf795edf3fa1cea04dc81bbbc79bd7a0e3f2126 (patch)
tree057563f308ff9c1deb1f20b33b1eae67c365804b
parentad3f21fbf0667f5b654771176d29dbdf75d9b120 (diff)
downloadSCons-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.py69
-rw-r--r--test/EnsureSConsVersion.py2
-rw-r--r--test/update-release-info/update-release-info.py83
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()