A new SCons release, 4.3.1, is now available on the SCons download page: https://scons.org/pages/download.html Here is a summary of the changes since 4.3.1: NOTE: If you build with Python 3.10.0 and then rebuild with 3.10.1 (or higher), you may see unexpected rebuilds. This is due to Python internals changing which changed the signature of a Python Action Function. NEW FUNCTIONALITY ----------------- - Added MSVC_USE_SCRIPT_ARGS variable to pass arguments to MSVC_USE_SCRIPT. - Added Configure.CheckMember() checker to check if struct/class has the specified member. DEPRECATED FUNCTIONALITY ------------------------ - List anything that's been deprecated since the last release CHANGED/ENHANCED EXISTING FUNCTIONALITY --------------------------------------- - On Windows, %AllUsersProfile%\scons\site_scons is now the default "system" location for a site_scons. %AllUsersProfile%\Application Data\scons\site_scons will continue to work. There does not seem to be any convention to use an "Application Data" subdirectory here. - Action._subproc() can now be used as a python context manager to ensure that the POpen object is properly closed. - SCons help (-H) no longer prints the "ignored for compatibility" options, which are still listed in the manpage. - Help is now sensitive to the size of the terminal window: the width of the help text will scale to wider (or narrower) terminals than 80 characters. - Ninja: Changed generated build.ninja file to run SCons only build Actions via a SCons Deamon. Added logic for starting and connecting to SCons daemon (currently only used for ninja) - The change to "content" and "content-timestamp" Decider names is reflected in the User Guide as well, since the hash function may be other than md5 (tidying up from earlier change) FIXES ----- - Fix a number of Python ResourceWarnings which are issued when running SCons and/or it's tests with python 3.9 (or higher) - Ninja: Fix issue where Configure files weren't being properly processed when build run via ninja. - Fixed crash in C scanner's dictify_CPPDEFINES() function which happens if AppendUnique is called on CPPPATH. (Issue #4108). - Added default values for source and target arguments to _defines() function. This is used to expand CPPDEFINES (and others). Previous change added those arguments with no defaults, so old usage where _defines() was called without source and target arguments would yield an exception. This issue was found via qt4 and qt5 tools in scons-contrib https://github.com/SCons/scons-contrib/issues/45 - Fix issue where if you only had mingw installed on a Windows system and no MSVC compiler, and did not explicitly request the mingw tool, mingw tool initialization would fail and set the default compiler to MSVC which wasn't installed, yielding broken build. Updated mingw tool so that the generate and exists methods use the same mingw search paths (issue #4134). IMPROVEMENTS ------------ - Verify that a user specified msvc script (via MSVC_USE_SCRIPT) exists and raise an exception immediately when the user specified msvc script does not exist. - Add cache-debug messages for push failures. - Added ninja mingw support and improved ninja CommandGeneratorAction support. - Command-line help is now sensitive to the size of the terminal window: the width of the help text will scale for terminals other than 80 chars wide. PACKAGING --------- - Added project_url for mailing lists and Discord - Updated setup.cfg to remove Python 3.5 and add Python 3.10 DOCUMENTATION ------------- - 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 the following contributors listed below for their contributions to this release. ========================================================================================== .. code-block:: text git shortlog --no-merges -ns 4.3.0..HEAD