diff --git a/CHANGES.txt b/CHANGES.txt index 2e5a2707a7..f45dc9647d 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -7,6 +7,13 @@ NOTE: The 4.0.0 Release of SCons dropped Python 2.7 Support NOTE: 4.3.0 now requires Python 3.6.0 and above. Python 3.5.x is no longer supported +RELEASE VERSION/DATE TO BE FILLED IN LATER + + From John Doe: + + - Whatever John Doe did. + + RELEASE 4.6.0 - Sun, 19 Nov 2023 17:22:20 -0700 From Max Bachmann: diff --git a/RELEASE.txt b/RELEASE.txt index 26f1d5dc98..6bf0d09b1d 100644 --- a/RELEASE.txt +++ b/RELEASE.txt @@ -1,182 +1,65 @@ -A new SCons release, 4.6.0, is now available on the SCons download page: +If you are reading this in the git repository, the contents +refer to *unreleased* changes since the last SCons release. +Past official release announcements appear at: + + https://scons.org/tag/releases.html + +================================================================== + +A new SCons release, 4.6.1, is now available on the SCons download page: https://scons.org/pages/download.html -Here is a summary of the changes since 4.5.2: +Here is a summary of the changes since 4.6.0: NEW FUNCTIONALITY ----------------- -- D compilers : added support for generation of .di interface files. - New variables DI_FILE_DIR, DI_FILE_DIR_PREFIX, DI_FILE_DIR_SUFFIX, - DI_FILE_SUFFIX. -- MSVC: If available, native arm64 tools will be used on arm64 hosts for VS2022. -- MSVC: If necessary, automatically define VSCMD_SKIP_SENDTELEMETRY for VS2019 and later - on arm64 hosts when using an arm (32-bit) build of python to prevent a powershell - error pop-up window (powershell dll not found). -- Add a LIBLITERALPREFIX variable which can be set to the linker's - prefix for considering a library argument unmodified (e.g. for the - GNU linker, the ':' in '-l:libfoo.a'). Fixes Github issue #3951. +- List new features (presumably why a checkpoint is being released) + +DEPRECATED FUNCTIONALITY +------------------------ +- List anything that's been deprecated since the last release CHANGED/ENHANCED EXISTING FUNCTIONALITY --------------------------------------- -- When debugging (--debug=pdb), the filenames SConstruct and SConscript - are now recognized when manipulating breakpoints. Previously, - only a full pathname to an sconscript file worked, as pdb requires - a .py extension to open a file that is not an absolute path. -- Three unused non-public methods of the Environment Base class - were dropped: get_src_sig_type, get_tgt_sig_type, _changed_source. - These were unused remnants of the previously removed SourceSignatures - and TargetSignatures features (dropped in 3.1.2). -- The --debug flag now has a 'json' option which will write information - generated by --debug={count, memory, time, action-timestamps} and about - the build. -- Obsoleted YACCVCGFILESUFFIX, it's being replaced by YACC_GRAPH_FILE_SUFFIX. - If YACC_GRAPH_FILE_SUFFIX is not set, it will respect YACCVCGFILESUFFIX. -- The yacc tool now understands the bison behavior of --header, --defines - and --graph being called without an option-argument as being synonyms - for -d (first two) and -g. -H also recognized as a synonym for -d. - Default value for $YACC_GRAPH_FILE_SUFFIX changed to '.gv' to match - current bison default (since bison 3.8). Set this variable to '.dot' - if using byacc. Fixes #4326 and #4327. -- MSVC: When trying to find a valid msvc batch file, the existence of the msvc compiler - executable is verified for VS6 to VS2015 to avoid executing the msvc batch file when - the host/target tool is known not to be present. Always check that the msvc compiler - executable is found on the msvc script environment path after running the msvc batch - file. This is predominately needed for recent versions of Visual Studio where the msvc - batch file exists but an individual msvc toolset may not support the host/target - architecture combination. For example, when using VS2022 on arm64, the arm64 native - tools are only installed for the 14.3x toolsets. -- MSVC: When the msvc compiler executable is not found during setup of the msvc - environment, the warning message issued takes into account whether or not a - possibly erroneous compiler executable was already present in the scons environment - path. See CHANGES.txt for details. -- Extend range of recognized Java versions to 20. -- Builder calls (like Program()) now accept pathlib objects in source lists. -- The Help() function now takes an additional keyword argument keep_local: - when starting to build a help message, you can now retain help from AddOption - calls (options added for the project_, but omit help for SCons' own cmdline - options with "Help(newtext, append=True, local_only=True)". -- Calling SConscript() with a nonexistent file is now an error. - Previously this succeeded - prior to SCons 3.0, silently; since 3.0, with - a warning. Developers can still instruct such an SConscript() call not - to fail by being explicit: pass keyword argument "must_exist=False". - The "--warn=missing-sconscript" commandline option is no longer available - as the warning was part of the transitional phase. -- Add missing directories to searched paths for mingw installs -- SCons.Util.types renamed to to SCons.Util.sctypes to avoid any possible - confusion with the Python stdlib "types" module. Note that it was briefly - (for 4.5.x only) possible to import directly from SCons.Util.types, - although the preferred usage remains to import from SCons.Util only. - Any code that did the direct import will have to change to import from - SCons.Util.sctypes. -- Add JDK 21 LTS support -- The newly added --debug=sconscript option (new) will output notices when - entering an exiting each SConscript as they are processed. +- List modifications to existing features, where the previous behavior + wouldn't actually be considered a bug FIXES ----- -- Fixed: when using the mingw tool, if an msys2 Python is used (os.sep - is '/' rather than the Windows default '\'), certain Configure checks - could fail due to the construction of the path to run the compiled check. -- C scanner's dictifyCPPDEFINES routine did not understand the possible - combinations of CPPDEFINES - not aware of a "name=value" string either - embedded in a sequence, or by itself. The conditional C scanner thus - did not always properly apply the defines. The regular C scanner does - not use these, so was not affected. [fixes #4193] -- MSVC: The installed msvc list is calculated once and cached. There was an indirect - dependency on the target architecture when determining if each version of msvc - was installed based on the initial invocation. It was possible that an msvc instance - would not be considered installed due to the tools for the requested target - architecture not being installed. The initial call to construct the installed msvc - list now uses an undefined target architecture to evaluate all potential host/target - combinations when evaluating if the msvc tools are installed for a given Visual Studio - installation. -- MSVC: Erroneous construction of the installed msvc list (as described above) caused an - index error in the msvc support code. An explicit check was added to prevent indexing - into an empty list. Fixes #4312. -- MSVC: The search for the msvc compiler executable (cl.exe) no longer inspects the - OS system path in certain situations when setting up the msvc environment. -- MSCommon: Test SConfTests.py would fail when mscommon debugging was enabled via the - MSVC_MSCOMMON_DEBUG environment variable. The mscommon logging filter class registered - with the python logging module was refactored to prevent test failure. -- MSVS: Add arm64 to the MSVS supported architectures list for VS2017 and later to be - consistent with the current documentation of MSVS_ARCH. -- FORTRAN: Fix gfortran tool initialization. Defaults to using binary named gfortran - as would be expected, and properly set's SHFORTRAN flags to include -fPIC - where previously it was only doing so for the other fortran versions (F77,..) -- MSCommon: Added more error handling while reading msvc config cache. - (Enabled/specified by SCONS_CACHE_MSVC_CONFIG). - The existing cache will be discarded if there's a decode error reading it. - It's possible there's a race condition creating this issue it in certain CI builds. -- Fixed: race condition in `Mkdir` which can happen when two `SConscript` - are processed simultaneously by two separate build commands. +- List fixes of outright bugs IMPROVEMENTS ------------ -- Now tries to find mingw if it comes from Chocolatey install of msys2. -- MSVC: Module imports were changed from a relative import to a top-level - absolute import in the following Microsoft tools: midl, mslib, mslink, mssdk, msvc, - msvs. Moving any of these tools that used relative imports to the scons site tools - folder would fail on import (i.e., the relative import paths become invalid when - moved). +- 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 --------- -- The build of scons now matches the help text displayed - the targets - listed there can all now be given as a target to build (except for - the two full source balls; the source tar.gz is currently generated directly - by the GitHub release process). +- List changes in the way SCons is packaged and/or released DOCUMENTATION ------------- -- Aligned manpage signature for Alias function to match implementation - - if the previous *targets* parameter had been used as a keyword argument, - the results would be incorrect (does not apply to positional argument - usage, which had no problem). -- Changed the message about scons -H to clarify it shows built-in options only. -- Cachedir description updated. -- Updated the first two chapters on building with SCons in the User Guide. -- Clarify that exported variables are shared - if mutable, changes made in - an SConscript are visible everywhere that takes a refereence to that object. -- Update PCH builder docs with some usage notes. +- 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 ----------- -- SCons test runner now uses pathlib to normalize and compare paths - to test files, which allows test lists, exclude lists, and tests on - the command line to "not care" about the OS convention for pathname - separators. -- Class ActionBase is now an abstract base class to more accurately - reflect its usage. Derived _ActionAction inherits the ABC, so it - now declares (actually raises NotImplementedError) two methods it - doesn't use so it can be instantiated by unittests and others. -- Added more type annotations to internal routines. -- Cleaned up dblite module (checker warnings, etc.). -- TeX tests: skip tests that use makeindex or epstopdf not installed, or - if `kpsewhich glossaries.sty` fails. +- List visible changes in the way SCons is developed Thanks to the following contributors listed below for their contributions to this release. ========================================================================================== .. code-block:: text - git shortlog --no-merges -ns 4.5.2..HEAD - 97 Mats Wichmann - 39 William Deegan - 20 Joseph Brill - 12 Alex Burton - 4 StenGruener - 2 Jonathon Reinhart - 2 LiuYinCarl - 2 Max Bachmann - 1 Kenshin - 1 Shohei YOSHIDA - 1 Vitaly Cheptsov + git shortlog --no-merges -ns 4.0.1..HEAD diff --git a/ReleaseConfig b/ReleaseConfig index 0974543581..7efd22933d 100755 --- a/ReleaseConfig +++ b/ReleaseConfig @@ -31,7 +31,7 @@ # If the release type is not '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,6,0) +version_tuple = (4, 7, 0, 'a', 0) # Python versions prior to unsupported_python_version cause a fatal error # when that version is used. Python versions prior to deprecate_python_version diff --git a/SCons/__init__.py b/SCons/__init__.py index 09eda03a30..7a7d3ef794 100644 --- a/SCons/__init__.py +++ b/SCons/__init__.py @@ -1,9 +1,9 @@ -__version__="4.6.0" +__version__="4.6.1" __copyright__="Copyright (c) 2001 - 2023 The SCons Foundation" __developer__="bdbaddog" -__date__="Sun, 19 Nov 2023 17:22:20 -0700" +__date__="Sun, 19 Nov 2023 17:54:10 -0700" __buildsys__="M1Dog2021" -__revision__="e5eef322a4a727b96358a436dca46e8085ac8692" -__build__="e5eef322a4a727b96358a436dca46e8085ac8692" +__revision__="70bcde6f38478a85a552ee624baaa2beb7b2bb92" +__build__="70bcde6f38478a85a552ee624baaa2beb7b2bb92" # make sure compatibility is always in place import SCons.compat # noqa \ No newline at end of file diff --git a/SConstruct b/SConstruct index 472ae18935..98e1bd9462 100644 --- a/SConstruct +++ b/SConstruct @@ -36,7 +36,7 @@ copyright_years = strftime('2001 - %Y') # This gets inserted into the man pages to reflect the month of release. month_year = strftime('%B %Y') project = 'scons' -default_version = '4.6.0' +default_version = '4.6.1' copyright = f"Copyright (c) {copyright_years} The SCons Foundation" # We let the presence or absence of various utilities determine whether diff --git a/doc/user/main.xml b/doc/user/main.xml index de549a8bcb..2825dba266 100644 --- a/doc/user/main.xml +++ b/doc/user/main.xml @@ -54,7 +54,7 @@ <corpauthor>The SCons Development Team</corpauthor> - <pubdate>Released: Mon, 21 Mar 2023 12:25:39 -0400</pubdate> + <pubdate>Released: Mon, 19 Nov 2023 17:52:53 -0700</pubdate> <copyright> <year>2004 - 2023</year> diff --git a/testing/framework/TestSCons.py b/testing/framework/TestSCons.py index 39a4245dbc..b6e34905cc 100644 --- a/testing/framework/TestSCons.py +++ b/testing/framework/TestSCons.py @@ -55,7 +55,7 @@ # here provides some independent verification that what we packaged # conforms to what we expect. -default_version = '4.5.3ayyyymmdd' +default_version = '4.7.0ayyyymmdd' # TODO: these need to be hand-edited when there are changes python_version_unsupported = (3, 6, 0)