-
-
Notifications
You must be signed in to change notification settings - Fork 356
Expand file tree
/
Copy pathRELEASE.txt
More file actions
203 lines (134 loc) · 7.27 KB
/
Copy pathRELEASE.txt
File metadata and controls
203 lines (134 loc) · 7.27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
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, NEXT_RELEASE, is now available on the SCons download page:
https://scons.org/pages/download.html
Here is a summary of the changes since PREVIOUS_RELEASE:
NEW FUNCTIONALITY
-----------------
- List new features (presumably why a checkpoint is being released)
DEPRECATED FUNCTIONALITY
------------------------
- List anything that's been deprecated since the last release
- Deprecated Python 3.7 & 3.8 support.
- Deprecated using signature-file-per-directory (aka old-style SConsign)
via the SConsignFile(name=None) call.
REMOVED FUNCTIONALITY
---------------------
- The qt3 tool module, deprecated since version 4.3, is removed due to
the general unavailability of the obsolete build-time Qt3 package.
CHANGED/ENHANCED EXISTING FUNCTIONALITY
---------------------------------------
- List modifications to existing features, where the previous behavior
wouldn't actually be considered a bug
FIXES
-----
- List fixes of outright bugs
- Fix --debug=includes for case of multiple source files.
- Adjust race protection for CacheDir - now uses a unique temporary
directory for each writer before doing the move, instead of depending
on a one-time uuid to make a path to the file.
IMPROVEMENTS
------------
- 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
- Reduce unneeded computation of overrides. The Mkdir builder used an
unknown argument ('explain') on creation, causing it to be considered
an override. Also, if override dict is empty, don't even call the
Override factory function.
- Subst: Multiple substitution optimizations providing up to 8-12% performance
improvement on typical builds, with larger gains (up to 20-30%) on builds with
many callable construction variables:
* Consolidate dictionary merging operations to reduce unnecessary copies
* Use functools.lru_cache for callable signature inspection with bounded
memory (256 entries max, ~1MB)
* Make Action classes (CommandAction, FunctionAction, ListAction) hashable
to enable cache optimization
* Fix for_signature logic bug in ListSubber.expand() for correct signature
generation
* Modernize string formatting to f-strings
Also, separately, some code-style cleanups and docstring work in Subst.py.
- Test runner reworked to use Python logging; the portion of the test suite
which tests the runner was adjusted to match.
- Used Gemini to refactor runtest.py to better organized the code and add docstrings.
- Simplified and sped up compilation database generation. No longer requires
each entry to have a dedicated node that's always built; instead, the database
*itself* is set to always build.
- Switch remaining "original style" docstring parameter listings to Google style.
- Additional small tweaks to Environment.py type hints, fold some overly
long function signature lines, and some linting-inspired cleanups.
- Test framework: tweak module docstrings
- Test suite: end to end tests don't use assert in result checks
- Don't duplicate the creation of Tool objects if "default" is part of
the tool list.
- Test suite: add support for Python 3.15 in the Action unit tests.
- zip tool now uses zipfile module's "from_file" method to populate ZipInfo
records, rather than doing manually.
PACKAGING
---------
- List changes in the way SCons is packaged and/or released
- Added script for release process to find all contributors in a release and highlight
new contributors. (Using Gemini AI)
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)
- Fix SCons Docbook schema to work with lxml > 5
- More clarifications in manpage Builder Methods section.
- Handle the default (unset) ProgressObject differently for the sole
purpose of avoiding Sphinx 9.0+ blowing up on it (it's been giving
a warning for years, but now it's a fatal error). Affects only the
API doc build.
- Improve coverage of "API doc" build by ignoring any setting of
__all__ in a package and not showing inherited members from optparse.
Add a trick to make sure build sees PathListCache while generating
docs (in normal operation, it's removed so was not visible).
- All functions/classes/non-dunder methods in Environment now have docstrings.
- Add possible build failure when targeting 32-bit arm using Visual
Studio 2022 with Windows SDK version 10.0.26100.0 or later installed
to the known issues in SCons/Tool/MSCommon/README.rst.
- Clarify VariantDir behavior when switching to not duplicate sources
and tweak wording a bit.
- Update documentation of the three file-finding functions in the API
(FindFile, FindInstalledFiles, FindSourceFiles) as well as FindPathDirs.
- Update documentation for linking-related construction variables.
Add a few more live links.
- Update documentation for CacheDir and related option flags
- Drop old example section from manpage. This has been commented out since
release 4.0, when the content was used to populate the new SCons Cookbook.
- Update documentation for IMPLICIT_COMMAND_DEPENDENCIES construction variable.
- Fix typo in preface
- Remove word "below" when content is not actually located below
- Fix typos in preface, Chapter 6, Chapter 9 and Chapter 10 of User Guide
- Fix broken links in Chapter 1 of User Guide
- Add info on the type of an option variable to GetOption and SetOption.
- Tighten up the doc for Variables-Add() and add a note on file contents
not being preserved to Variables-Save()
DEVELOPMENT
-----------
- List visible changes in the way SCons is developed
- Introduce some unit tests for the file locking utility routines
- Purge vim/emac local variable bloat.
- Implement type hints for Node subclasses.
- Ruff: Handle F401 exclusions more granularly, remove per-file exclusions.
- Update pyproject.toml to support Python 3.14 and remove restrictions on lxml version install
- Unify internal "_null" sentinel usage.
- Docbook tests: improve skip message, more clearly indicate which test
needs actual installed system programs (add -live suffix).
- Implement type hints for Environment and environment utilities.
- MSVC: Added a host/target batch file configuration table for Visual
Studio 2026. Visual Studio 2026 removed support for 32-bit arm targets.
- Modernized GitHub Actions test runner. This consolidates the logic of
existing test environments into a single package. Adjusted AppVeyor to
only run for targets unsupported by GitHub runners.
- Fix Appveyor scripting to install unavailable python versions when needed and use them
for testing.
- Split `SCons.Util.UtilTests.py` to individual packages where appropriate.
Thanks to the following contributors listed below for their contributions to this release.
==========================================================================================
.. code-block:: text
git shortlog --no-merges -ns PREVIOUS_RELEASE..HEAD