|
1 |
| -A new SCons release, 4.8.0, is now available on the SCons download page: |
| 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: |
| 4 | + |
| 5 | + https://scons.org/tag/releases.html |
| 6 | + |
| 7 | +================================================================== |
| 8 | + |
| 9 | +A new SCons release, 4.8.1, is now available on the SCons download page: |
2 | 10 |
|
3 | 11 | https://scons.org/pages/download.html
|
4 | 12 |
|
5 | 13 |
|
6 |
| -Here is a summary of the changes since 4.7.0: |
| 14 | +Here is a summary of the changes since 4.8.0: |
7 | 15 |
|
8 | 16 | NEW FUNCTIONALITY
|
9 | 17 | -----------------
|
10 | 18 |
|
11 |
| -- GetSConsVersion() added to retrieve the SCons version. |
| 19 | +- List new features (presumably why a checkpoint is being released) |
12 | 20 |
|
13 | 21 | DEPRECATED FUNCTIONALITY
|
14 | 22 | ------------------------
|
15 | 23 |
|
16 |
| -- Mark Python 3.6 support as deprecated. Use --warn=no-python-version |
17 |
| - to quiet the warning. |
| 24 | +- List anything that's been deprecated since the last release |
18 | 25 |
|
19 | 26 | CHANGED/ENHANCED EXISTING FUNCTIONALITY
|
20 | 27 | ---------------------------------------
|
21 | 28 |
|
22 |
| -- Dump() with json format selected now recognizes additional compound types |
23 |
| - (UserDict and UserList), which improves the detail of the display. |
24 |
| - json output is also sorted, to match the default display. |
25 |
| -- Python 3.13 changes the behavior of isabs() on Windows. Adjust SCons |
26 |
| - usage of this in NodeInfo classes to avoid test problems. |
27 |
| -- Drop duplicated __getstate__ and __setstate__ methods in AliasNodeInfo, |
28 |
| - FileNodeInfo and ValueNodeInfo classes, as they are identical to the |
29 |
| - ones in parent NodeInfoBase and can just be inherited. |
30 |
| -- All exceptions during the execution of an Action are now returned by value |
31 |
| - rather than by raising an exception, for more consistent behavior. |
32 |
| - NOTE: With this change, user created Actions should now catch and handle |
33 |
| - expected exceptions (whereas previously many of these were silently caught |
34 |
| - and suppressed by the SCons Action exection code). |
35 |
| -- ParseFlags now sorts a --stdlib=libname argument into CXXFLAGS instead |
36 |
| - of CCFLAGS; the latter variable could cause a compiler warning. |
37 |
| -- The implementation of Variables was slightly refactored, there should |
38 |
| - not be user-visible changes. |
39 |
| -- MSVC: For msvc version specifications without an 'Exp' suffix, an express |
40 |
| - installation is used when no other edition is detected for the msvc version. |
41 |
| - This was the behavior for Visual Studio 2008 (9.0) through Visual Studio 2015 |
42 |
| - (14.0). This behavior was extended to Visual Studio 2017 (14.1) and Visual |
43 |
| - Studio 2008 (8.0). An express installation of the IDE binary is used when no |
44 |
| - other IDE edition is detected. |
45 |
| -- The vswhere executable locations for the WinGet and Scoop package managers were |
46 |
| - added to the default vswhere executable search list after the Chocolatey |
47 |
| - installation location. |
48 |
| -- SCons.Environment.is_valid_construction_var() now returns a boolean to |
49 |
| - match the convention that functions beginning with "is" have yes/no |
50 |
| - answers (previously returned either None or an re.match object). |
51 |
| - Now matches the annotation and docstring (which were prematurely |
52 |
| - updated in 4.6). All SCons usage except unit test was already fully |
53 |
| - consistent with a bool. |
54 |
| -- The Variables object Add method now accepts a subst keyword argument |
55 |
| - (defaults to True) which can be set to inhibit substitution prior to |
56 |
| - calling the variable's converter and validator. |
57 |
| -- AddOption and the internal add_local_option which AddOption calls now |
58 |
| - recognize a "settable" keyword argument to indicate a project-added |
59 |
| - option can also be modified using SetOption. |
60 |
| - NOTE: If you were using ninja and using SetOption() for ninja options |
61 |
| - in your SConscripts prior to loading the ninja tool, you will now |
62 |
| - see an error. The fix is to move the SetOption() to after you've loaded |
63 |
| - the ninja tool. |
64 |
| -- ListVariable now has a separate validator, with the functionality |
65 |
| - that was previously part of the converter. The main effect is to |
66 |
| - allow a developer to supply a custom validator, which previously |
67 |
| - could be inhibited by the converter failing before the validator |
68 |
| - is reached. |
69 |
| -- When debugging (--debug=pdb), the filename SCsub is now recognized when |
70 |
| - manipulating breakpoints. |
| 29 | +- List modifications to existing features, where the previous behavior |
| 30 | + wouldn't actually be considered a bug |
71 | 31 |
|
72 | 32 | FIXES
|
73 | 33 | -----
|
74 | 34 |
|
75 |
| -- OSErrors are now no longer hidden during the execution of Actions. |
76 |
| -- Improved the conversion of a "foreign" exception from an action |
77 |
| - into BuildError by making sure our defaults get applied even in |
78 |
| - corner cases. Fixes Issue #4530 |
79 |
| -- MSVC: Visual Studio 2010 (10.0) could be inadvertently detected due to an |
80 |
| - sdk-only install of Windows SDK 7.1. An sdk-only install of Visual Studio |
81 |
| - 2010 is ignored as the msvc batch files will fail. The installed files are |
82 |
| - intended to be used in conjunction with the SDK batch file. Similar protection |
83 |
| - was added for Visual Studio 2008 (9.0). |
84 |
| -- MSVC: For Visual Studio 2005 (8.0) to Visual Studio 2015 (14.0), detection of |
85 |
| - installed files was expanded to include the primary msvc batch file, dependent |
86 |
| - msvc batch file, and compiler executable. In certain installations, the |
87 |
| - dependent msvc batch file may not exist while the compiler executable does exist |
88 |
| - resulting in a build failure. |
89 |
| -- MSVC: Visual Studio 2008 (9.0) Visual C++ For Python was not detected when |
90 |
| - installed using the ALLUSERS command-line option: |
91 |
| - msiexec /i VCForPython27.msi ALLUSERS=1 |
92 |
| - When installed for all users, Visual Studio 2008 (9.0) Visual C++ For Python is |
93 |
| - now correctly detected. |
94 |
| -- MSVC: For Visual Studio 2008 (9.0), a full development edition (e.g., Professional) |
95 |
| - is now selected before a Visual C++ For Python edition. Prior to this change, |
96 |
| - Visual C++ For Python was selected before a full development edition when both |
97 |
| - editions are installed. |
98 |
| -- The vswhere executable is frozen upon initial detection. Specifying a different |
99 |
| - vswhere executable via the construction variable VSWHERE after the initial |
100 |
| - detection now results in an exception. Multiple bugs in the implementation of |
101 |
| - specifying a vswhere executable via the construction variable VSWHERE have been |
102 |
| - fixed. Previously, when a user specified vswhere executable detects new msvc |
103 |
| - installations after the initial detection, the internal msvc installation cache |
104 |
| - and the default msvc version based on the initial detection are no longer valid. |
105 |
| - For example, when no vswhere executable is found for the initial detection |
106 |
| - and then later an environment is constructed with a user specified vswhere |
107 |
| - executable that detects new msvc installations. |
108 |
| -- MSVC: Visual Studio 2022 v143 BuildTools now supports msvc toolset versions from |
109 |
| - 14.30 to 14.4X. Fixes Issue #4543. |
110 |
| -- The Clone() method now respects the variables argument (fixes #3590) |
| 35 | +- List fixes of outright bugs |
111 | 36 |
|
112 | 37 | IMPROVEMENTS
|
113 | 38 | ------------
|
114 | 39 |
|
115 |
| -- Make the testing framework a little more resilient: the temporary |
116 |
| - directory for tests now includes a component named "scons" which can |
117 |
| - be given to antivirus software to exclude. |
118 |
| -- Performance tweak: the __setitem__ method of an Environment, used for |
119 |
| - setting construction variables, now uses the string method isidentifier |
120 |
| - to validate the name (updated from microbenchmark results). |
121 |
| -- MSVC: Visual Studio 2015 Express (14.0Exp) does not support the sdk version |
122 |
| - argument. Visual Studio 2015 Express does not support the store argument for |
123 |
| - target architectures other than x86. Script argument validation now takes into |
124 |
| - account these restrictions. |
125 |
| -- MSVC: Visual Studio 2015 BuildTools (14.0) does not support the sdk version |
126 |
| - argument and does not support the store argument. Script argument validation now |
127 |
| - takes into account these restrictions. |
128 |
| -- MSVC: The registry detection of VS2015 (14.0), and earlier, is now cached at runtime |
129 |
| - and is only evaluated once for each msvc version. |
130 |
| -- MSVC: The vswhere detection of VS2017 (14.1), and later, is now cached at runtime and |
131 |
| - is only evaluated once using a single vswhere invocation for all msvc versions. |
| 40 | +- List improvements that wouldn't be visible to the user in the |
| 41 | + documentation: performance improvements (describe the circumstances |
| 42 | + under which they would be observed), or major code cleanups |
132 | 43 |
|
133 | 44 | PACKAGING
|
134 | 45 | ---------
|
135 | 46 |
|
136 |
| -- setup.cfg logic now handled via pyproject.toml; consequently, setup.cfg |
137 |
| - was removed. |
138 |
| - |
| 47 | +- List changes in the way SCons is packaged and/or released |
139 | 48 |
|
140 | 49 | DOCUMENTATION
|
141 | 50 | -------------
|
142 | 51 |
|
143 |
| -- Updated Value Node docs. |
144 |
| -- Update manpage for Tools, and for the TOOL variable. |
145 |
| -- Update manpage and user guide for Variables usage. |
146 |
| -- Restructured API Docs build so main package contents are listed |
147 |
| - before contents of package submodules. |
148 |
| -- Updated manpage description of Command "builder" and function. |
149 |
| -- Updated the notes about reproducible builds with SCons and the example. |
150 |
| -- Regularized header (copyright, licens) at top of documentation files using SPDX. |
151 |
| -- Updated introductory section of manual page. |
152 |
| - |
153 |
| - |
| 52 | +- List any significant changes to the documentation (not individual |
| 53 | + typo fixes, even if they're mentioned in src/CHANGES.txt to give |
| 54 | + the contributor credit) |
154 | 55 |
|
155 | 56 | DEVELOPMENT
|
156 | 57 | -----------
|
157 | 58 |
|
158 |
| -- Documentation build now properly passes through skipping the PDF |
159 |
| - (and EPUB) builds of manpage and user guide; this can also be done |
160 |
| - manually if directly calling doc/man/SConstruct and doc/user/SConstruct |
161 |
| - by adding SKIP_PDF=1. This should help with distro packaging of SCons, |
162 |
| - which now does not need "fop" and other tools to be set up in order to |
163 |
| - build pdf versions which are then ignored. |
164 |
| -- .gitattributes has been setup to mirror .editorconfig's eol settings. |
165 |
| - The repo-wide line-ending is now `lf`, with the exception of a few |
166 |
| - Windows-only files using `crlf` instead. Any files not already fitting |
167 |
| - this format have been explicitly converted. |
168 |
| -- Repository linter/formatter changed from flake8/black to ruff, as the |
169 |
| - latter grants an insane speed boost without compromising functionality. |
170 |
| - Existing settings were migrated 1-to-1 where possible. |
171 |
| -- The test runner now recognizes the unittest module's return code of 5, |
172 |
| - which means no tests were run. SCons/Script/MainTests.py currently |
173 |
| - has no tests, so this particular error code is expected - should not |
174 |
| - cause runtest to give up with an "unknown error code". |
175 |
| -- is_valid_construction_var() (not part of the public API) moved from |
176 |
| - SCons.Environment to SCons.Util to avoid the chance of import loops. Variables |
177 |
| - and Environment both use the routine and Environment() uses a Variables() |
178 |
| - object so better to move to a safer location. |
| 59 | +- List visible changes in the way SCons is developed |
179 | 60 |
|
180 | 61 | Thanks to the following contributors listed below for their contributions to this release.
|
181 | 62 | ==========================================================================================
|
182 | 63 | .. code-block:: text
|
183 | 64 |
|
184 |
| - git shortlog --no-merges -ns 4.7.0..HEAD |
185 |
| - 70 Mats Wichmann |
186 |
| - 35 Joseph Brill |
187 |
| - 26 William Deegan |
188 |
| - 7 Raymond Li |
189 |
| - 7 Thaddeus Crews |
| 65 | + git shortlog --no-merges -ns 4.0.1..HEAD |
0 commit comments