1 If you are reading this in the git repository, the contents
2 refer to *unreleased* changes since the last SCons release.
3 Past official release announcements appear at:
5 https://scons.org/tag/releases.html
7 ==================================================================
9 A new SCons release, 4.4.1, is now available on the SCons download page:
11 https://scons.org/pages/download.html
14 Here is a summary of the changes since 4.4.0:
19 - List new features (presumably why a checkpoint is being released)
21 DEPRECATED FUNCTIONALITY
22 ------------------------
24 - List anything that's been deprecated since the last release
26 CHANGED/ENHANCED EXISTING FUNCTIONALITY
27 ---------------------------------------
29 - List modifications to existing features, where the previous behavior
30 wouldn't actually be considered a bug
32 - Removed Python 3.6 support.
34 - Override environments, created when giving construction environment
35 keyword arguments to Builder calls (or manually, through the
36 undocumented Override method), were modified not to "leak" on item deletion.
37 The item will now not be deleted from the base environment.
39 - Added support for tracking beamer themes in the LaTeX scanner.
41 - MSVS: msvs project files are always generated before the corresponding
42 msvs solution files. This changes the behavior of clean for a project
43 generated with auto_build_solution disabled and explicit solution
44 generation: when the solution files are cleaned, the project files are
45 also cleaned. The tests for vs 6.0-7.1 were updated accordingly.
47 - MSVS: Add an optional keyword argument, auto_filter_projects, to
48 MSVSSolution. Accepted values for auto_filter_projects are:
49 - None [default]: raise an exception when solution file names or nodes
50 are detected in the projects argument list.
51 - True or evaluates True: automatically remove solution file names and
52 nodes from the project argument list.
53 - False or evaluates False: leave solution file names and nodes in the
54 project argument list. An exception is not raised.
55 Solution file names and/or nodes in the project argument list cause
56 erroneous Project records to be produced in the generated solution file.
57 As a convenience, a user may elect to ignore solution file names and nodes
58 in the projects argument list rather than manually removing solution file
59 names and nodes from the MSVSProject return values.
61 - SCons C preprocessor:
62 - Update the optional integer suffixes to include the z|Z and wb|WB
64 - Add support for binary integer constants.
65 - Add support for octal integer constants. Previously, octal integers
66 were evaluated as decimal integers. A literal zero (0) is treated as an
68 - Change the method for attempted conversion of a define expansion value
69 to an integer from a literal to a constant expression evaluation.
71 - Add a tag to each CacheDir to let systems ignore backing it up
72 (per https://bford.info/cachedir/). Update the way a CacheDir
73 is created, since it now has to create two files.
75 - The Dictionary method now has an as_dict flag. If true, Dictionary
76 always returns a dict. The default remains to return different
77 types depending on whether zero, one, or multiple construction
82 - PackageVariable now does what the documentation always said it does
83 if the variable is used on the command line with one of the enabling
84 string as the value: the variable's default value is produced (previously
85 it always produced True in this case).
87 - Temporary files created by TempFileMunge() are now cleaned up on
88 scons exit, instead of at the time they're used. Fixes #4595.
90 - AddOption now correctly adds short (single-character) options.
91 Previously an added short option would always report as unknown,
92 while long option names for the same option worked. Short options
93 that take a value require the user to specify the value immediately
94 following the option, with no spaces (e.g. -j5 and not -j 5).
96 - Fix a problem with compilation_db component initialization - the
97 entries for assembler files were not being set up correctly.
99 - On Darwin, PermissionErrors are now handled while trying to access
100 /etc/paths.d. This may occur if SCons is invoked in a sandboxed environment
103 - Added error handling when creating MSVC detection debug log file specified
104 by SCONS_MSCOMMON_DEBUG.
106 - MSVS: Modify select msvs test scripts to run on platforms not supported by
107 the msvs/msvc tool implementation via a default host architecture for
108 unsupported platforms.
110 - MSVS: Fixed early loop exit in select msvs test scripts. Select msvs test
111 scripts were being invoked for msvc version 8.0 only. Additional msvs
112 tool and test changes due to the msvs test scripts being run for all msvc
113 versions (i.e., minor test and tool issues went undetected).
115 - MSVS: for variant build configurations, msvs solution files are
116 generated in the source directory and a placeholder file is generated in
117 the variant build directory. This mirrors the behavior of generated
120 - MSVS: msvs project files are generated before the corresponding msvs
121 solution file. User-specified project GUIDs should now be correctly
122 written to the solution file.
124 - SCons C preprocessor: Preserve literals that contain valid integer
125 substring specifications. Previously, the integer suffix could be
126 stripped from a symbol that contained an integer and suffix substring.
128 - SCons C preprocessor: Update the optional integer suffixes to include
129 support for the alternate orderings of unsigned with long or long long as
130 defined in the c/cpp grammar.
132 - SCons C preprocessor: Update the optional integer suffixes for case
133 insensitive specifications as defined in the c/cpp grammar.
135 - Fix nasm test for missing include file, cleanup.
137 - Skip running a few validation tests if the user is root and the test is
138 not designed to work for the root user.
143 - List improvements that wouldn't be visible to the user in the
144 documentation: performance improvements (describe the circumstances
145 under which they would be observed), or major code cleanups
147 - For consistency with the optparse "add_option" method, AddOption accepts
148 an SConsOption object as a single argument (this failed previously).
149 Calling AddOption with the full set of arguments (option names and
150 attributes) to set up the option is still the recommended approach.
152 - Add clang and clang++ to the default tool search orders for POSIX
153 and Windows platforms. These will be searched for after gcc and g++,
154 respectively. Does not affect explicitly requested tool lists. Note:
155 on Windows, SCons currently only has builtin support for clang, not
156 for clang-cl, the version of the frontend that uses cl.exe-compatible
157 command line switches.
162 - List changes in the way SCons is packaged and/or released
167 - List any significant changes to the documentation (not individual
168 typo fixes, even if they're mentioned in src/CHANGES.txt to give
169 the contributor credit)
171 - Some manpage cleanup for the gettext and pdf/ps builders.
173 - Some clarifications in the User Guide "Environments" chapter.
175 - Clarify documentation of Repository() in manpage and user guide.
177 - Many grammatical and spelling fixes in the documentation.
183 - List visible changes in the way SCons is developed
185 - Ruff/Mypy: Excluded items now synced.
187 - Ruff: Linter includes new rules - `FA`, `UP006`, `UP007`, and `UP037` - to
188 detect and upgrade legacy type-hint syntax.
190 - Removed "SCons.Util.sctyping.py", as the functionality can now be substituted
191 via top-level `from __future__ import annotations`.
193 Thanks to the following contributors listed below for their contributions to this release.
194 ==========================================================================================
197 git shortlog --no-merges -ns 4.0.1..HEAD