diff options
-rwxr-xr-x | CHANGES.txt | 7 | ||||
-rwxr-xr-x | README-SF.rst | 10 | ||||
-rwxr-xr-x | RELEASE.txt | 175 | ||||
-rwxr-xr-x | ReleaseConfig | 2 | ||||
-rw-r--r-- | SConstruct | 3 | ||||
-rw-r--r-- | bin/update-release-info.py | 23 | ||||
-rw-r--r-- | testing/framework/TestSCons.py | 6 |
7 files changed, 67 insertions, 159 deletions
diff --git a/CHANGES.txt b/CHANGES.txt index 629ec14..a3db40d 100755 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -6,6 +6,13 @@ NOTE: The 4.0.0 Release of SCons will drops Python 2.7 Support +RELEASE 4.1.0.devyyyymmdd - Mon, 04 Jul 2020 16:06:40 -0700 + + From John Doe: + + - Whatever John Doe did. + + RELEASE 4.0.0 - Sat, 04 Jul 2020 12:00:27 +0000 From Dirk Baechle: diff --git a/README-SF.rst b/README-SF.rst index cf0eef8..e33c3f1 100755 --- a/README-SF.rst +++ b/README-SF.rst @@ -392,11 +392,11 @@ Depending on the utilities installed on your system, any or all of the following packages will be built:: SCons-4.0.0-py3-none-any.whl - SCons-4.0.0.tar.gz - SCons-4.0.0.zip - scons-doc-4.0.0.tar.gz - scons-local-4.0.0.tar.gz - scons-local-4.0.0.zip + SCons-4.1.0.devyyyymmdd.tar.gz + SCons-4.1.0.devyyyymmdd.zip + scons-doc-4.1.0.devyyyymmdd.tar.gz + scons-local-4.1.0.devyyyymmdd.tar.gz + scons-local-4.1.0.devyyyymmdd.zip The SConstruct file is supposed to be smart enough to avoid trying to build packages for which you don't have the proper utilities installed. diff --git a/RELEASE.txt b/RELEASE.txt index f736add..3ebb0d0 100755 --- a/RELEASE.txt +++ b/RELEASE.txt @@ -1,152 +1,73 @@ - A new SCons release, 4.0.0, is now available + A new SCons checkpoint release, 2.0.0.beta.yyyymmdd, is now available on the SCons download page: https://scons.org/pages/download.html - Here is a summary of the changes since 3.1.2: + XXX The primary purpose of this release ... XXX + + A SCons "checkpoint release" is intended to provide early access to + new features so they can be tested in the field before being released + for adoption by other software distributions. + + Note that a checkpoint release is developed using the same test-driven + development methodology as all SCons releases. Existing SCons + functionality should all work as it does in previous releases (except + for any changes identified in the release notes) and early adopters + should be able to use a checkpoint release safely for production work + with existing SConscript files. If not, it represents not only a bug + in SCons but also a hole in the regression test suite, and we want to + hear about it. + + New features may be more lightly tested than in past releases, + especially as concerns their interaction with all of the other + functionality in SCons. We are especially interested in hearing bug + reports about new functionality. + + We do not recommend that downstream distributions (Debian, Fedora, + etc.) package a checkpoint release, mainly to avoid confusing the + "public" release numbering with the long checkpoint release names. + + Here is a summary of the changes since 1.3.0: NEW FUNCTIONALITY - - Added support for scanning multiple entries in an action string if - IMPLICIT_COMMAND_DEPENDENCIES is set to 2 or 'all'. This enables more thorough - action scanning where every item in each command line is scanned to determine - if it is a non-source and non-target path and added to the list of implicit dependencies - for the target. - - Added new module SCons.Scanner.Python to allow scanning .py files. - - Added support for explicitly passing a name when creating Value() nodes. This may be useful - when the value can't be converted to a string or if having a name is otherwise desirable. - - Added a new flag called "linedraw" for the command line argument "--tree" - that instructs scons to use single line drawing characters to draw the dependency tree. - - Add CompilationDatabase() builder in compilation_db tool. Contributed by MongoDB. - Setting COMPILATIONDB_USE_ABSPATH to True|False controls whether the files are absolute or relative - paths. Address Issue #3693 and #3694 found during development. - - Extended `Environment.Dump()` to select a format to serialize construction variables (pretty, json). - - New conditional C Scanner (`SCons.Scanner.C.CConditionalScanner()`) - which interprets C/C Preprocessor conditional syntax (#ifdef, #if, #else, - #elif, #define, etc.) - - Experimental New Feature: Enable caching MSVC configuration - If SCONS_CACHE_MSVC_CONFIG shell environment variable is set, - SCons will cache the results of past calls to vcvarsall.bat to - a file; integrates with existing memoizing of such vars. - - Preliminary Python 3.9 support. + - List new features (presumably why a checkpoint is being released) DEPRECATED FUNCTIONALITY - - Drop support for Python 2.7. SCons will be Python 3.5+ going forward. - - Remove deprecated SourceCode() + - List anything that's been deprecated since the last release CHANGED/ENHANCED EXISTING FUNCTIONALITY - - Added check for SONAME in environment to setup symlinks correctly (Github Issue #3246) - - Resolve Issue #3248 - Removing '-Wl,-Bsymbolic' from SHLIBVERSIONFLAGS - NOTE: If your build depends on the above you must now add to your SHLIBVERSIONFLAGS - - Microsoft Visual Studio - switch to using uuid module to generate GUIDs rather than hand rolled - method using md5 directly. - NOTE: This change affects the following builders' output. If your build depends on the output of these builders - you will likely see a rebuild. - * Package() (with PACKAGETYPE='msi') - * MSVSSolution() - * MSVSProject() - - Improve Visual Studio solution/project generation code to add support - for a per-variant cppflags. Intellisense can be affected by cppflags, - this is especially important when it comes to /std:c++* which specifies - what C++ standard version to target. SCons will append /Zc:__cplusplus - to the project's cppflags when a /std:c++* flag is found as this is - required for intellisense to use the C++ standard version from cppflags. - - Allow user specified location for vswhere.exe specified by VSWHERE. - NOTE: This must be set at the time the 'msvc' 'msvs' and/or 'mslink' tool(s) are initialized to have any effect. - - Fixed Github Issue 3628 - Hardcoding pickle protocol to 4 (supports python 3.4+) - and skipping Python 3.8's new pickle protocol 5 whose main advantage is for out-of-band data buffers. - NOTE: If you used Python 3.8 with SCons 3.0.0 or above, you may get a a pickle protocol error. Remove your - .sconsign.dblite. You will end up with a full rebuild. - - MSVC updates: When there are multiple product installations (e.g, Community and - Build Tools) of MSVC 2017 or MSVC 2019, an Enterprise, Professional, - or Community installation will be selected before a Build Tools installation when - "14.1" or "14.2" is requested, respectively. (GH Issue #3699). - - MSVC updates: When there are multiple product installations of MSVC 2017 (e.g., - Community and Express), 2017 Express is no longer returned when "14.1" is - requested. Only 2017 Express will be returned when "14.1Exp" is requested. - (GH Issue #3699). - - MSVC updates: pass on VSCMD_DEBUG and VSCMD_SKIP_SENDTELEMETRY to msvc - tool setup if set in environment. Add Powershell to default env - (used to call telemetry script). - - Renamed as.py to asm.py and left redirecting tool. 'as' is a reserved word and so - changing the name was required as we wanted to import symbols for use in compilation_db - tool. - - Add no_progress (-Q) option as a set-able option. However, setting it in the - SConstruct/SConscript will still cause "scons: Reading SConscript files ..." to be - printed, since the option is not set when the build scripts first get read. - - Docbook builder provides a fallback if lxml fails to generate - a document with tostring(). - - SubstitutionEnvironment and OverrideEnvironment now have keys() - and values() methods to better emulate a dict (already had items()). + - List modifications to existing features, where the previous behavior + wouldn't actually be considered a bug FIXES - - Cleanup dangling symlinks before running builders (Issue #3516) - - Fixed usage of abspath and path for RootDir objects on Windows. Previously - env.fs.Dir("T:").abspath would return "T:\T:" and now it correctly returns "T:". - - Fix Issue #3469 - Fixed improper reuse of temporary and compiled files by Configure when changing - the order and/or number of tests. This is done by using the hash of the generated temporary files - content and (For the target files) the hash of the action. - So where previously files would be named: - - config_1.c, config_1.o, config_1 - The will now be named (For example) - - conftest_68b375d16e812c43e6d72d6e93401e7c_0.c, - conftest_68b375d16e812c43e6d72d6e93401e7c_0_5713f09fc605f46b2ab2f7950455f187.o - or - conftest_68b375d16e812c43e6d72d6e93401e7c_0.o - conftest_68b375d16e812c43e6d72d6e93401e7c_0_5713f09fc605f46b2ab2f7950455f187 (for executable) - - Updated documentation toolchain to work properly under Python3, also - removed libxslt support from the Docbook Tool. (issue #3580) - - Fix broken clang + MSVC 2019 combination by using MSVC configuration logic to - propagate 'VCINSTALLDIR' and 'VCToolsInstallDir' which clang tools use to locate - header files and libraries from MSVC install. (Fixes GH Issue #3480) - - Fix Github Issue #2904 - Provide useful error message when more than one Configure Contexts are opened. - Only one open is allowed. You must call conf.Finish() to complete the currently open one before creating another + - List fixes of outright bugs IMPROVEMENTS - - Improve performance of Subst by preventing unnecessary frame - allocations by no longer defining the *Subber classes inside of their - respective function calls. - - Improve performance of Subst in some cases by preventing - unnecessary calls to eval when a token is surrounded in braces - but is not a function call. - - Improve performance of subst by removing unnecessary recursion. + - List improvements that wouldn't be visible to the user in the + documentation: performance improvements (describe the circumstances + under which they would be observed), or major code cleanups PACKAGING - - Resolve Issue #3451 and Issue #3450 - Rewrite SCons setup.py and packaging. Move script logic to entry points so - package can create scripts which use the correct version of Python. + - List changes in the way SCons is packaged and/or released DOCUMENTATION - - Significant rework of documentation: API docs are now generated - using Sphinx; manpage and user guide now use more "standard" - markup elements (which could facilitate later conversion to a - different doc format, should that choice be made); significant - rewordings in manpage. Manpage Examples moved to an external - repository / website (scons-cookbook.readthedocs.io). - - Thanks to the following contributors listed below for their contributions to this release. - -git shortlog --no-merges -ns 3.1.2..HEAD - 290 William Deegan - 184 Mats Wichmann - 46 Adam Gross - 22 Daniel Moody - 16 Joseph Brill - 15 Dirk Baechle - 12 Ivan Kravets - 9 Mathew Robinson - 6 Paul Tipei - 1 Rob Boehne - 1 Robert Boehne - 1 Daniel - 1 Andrew Morrow - 1 Iosif Daniel Kurazs - 1 James Benton - 1 Jeremy Elson - 1 Konstantin Gonchar - 1 Andrii Doroshenko (Xrayez)
\ No newline at end of file + - List any significant changes to the documentation (not individual + typo fixes, even if they're mentioned in src/CHANGES.txt to give + the contributor credit) + + DEVELOPMENT + + - List visible changes in the way SCons is developed + + Thanks to CURLY, LARRY, and MOE for their contributions to this release. + Contributors are listed alphabetically by their last name. + +__COPYRIGHT__ +__FILE__ __REVISION__ __DATE__ __DEVELOPER__ diff --git a/ReleaseConfig b/ReleaseConfig index d1a9ebc..5ab3db6 100755 --- a/ReleaseConfig +++ b/ReleaseConfig @@ -32,7 +32,7 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__" # 'final', the patchlevel is set to the release date. This value is # mandatory and must be present in this file. #version_tuple = (2, 2, 0, 'final', 0) -version_tuple = (4,0,0) +version_tuple = (4, 1, 0, 'dev', 0) # Python versions prior to unsupported_python_version cause a fatal error # when that version is used. Python versions prior to deprecate_python_version @@ -11,7 +11,6 @@ copyright_years = strftime('2001 - %Y') # This gets inserted into the man pages to reflect the month of release. month_year = strftime('%B %Y') - # # __COPYRIGHT__ # @@ -37,7 +36,7 @@ month_year = strftime('%B %Y') project = 'scons' -default_version = '4.0.0' +default_version = '4.1.0.devyyyymmdd' copyright = "Copyright (c) %s The SCons Foundation" % copyright_years # diff --git a/bin/update-release-info.py b/bin/update-release-info.py index 71c51a9..9141add 100644 --- a/bin/update-release-info.py +++ b/bin/update-release-info.py @@ -275,8 +275,8 @@ def main(args, rel_info): # 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() @@ -286,25 +286,6 @@ def main(args, rel_info): 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) diff --git a/testing/framework/TestSCons.py b/testing/framework/TestSCons.py index 00bddd2..9ffae9b 100644 --- a/testing/framework/TestSCons.py +++ b/testing/framework/TestSCons.py @@ -35,10 +35,10 @@ from TestCmd import PIPE # here provides some independent verification that what we packaged # conforms to what we expect. -default_version = '3.1.2' +default_version = '4.1.0.devyyyymmdd' -python_version_unsupported = (2, 6, 0) -python_version_deprecated = (2, 7, 0) +python_version_unsupported = (3, 4, 0) +python_version_deprecated = (3, 4, 0) # In the checked-in source, the value of SConsVersion in the following # line must remain "__ VERSION __" (without the spaces) so the built |