Merge branch 'master' into issue/unique-delete-existing
[scons.git] / RELEASE.txt
blob8b7647d373c0006f3bc4ac8c43859b9fe31763cd
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.8.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.8.0:
16 NEW FUNCTIONALITY
17 -----------------
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 - env.Dump() previously accepted a single optional "key" argument.
30   It now accepts any number of optional "key" arguments; any supplied
31   keys will be serialized with their values in a Python dict style.
32   As a result there is a small change in behavior: if a *single* key
33   argument is given, where it previously would return a string containing
34   just the value, now it will return a string that looks like a dictionary
35   including the key.  For example, from "'gcc'" to "{'CC': 'gcc'}".
36   This should not have any impact as the result of calling Dump is
37   intended for diagnostic output, not for use by other interfaces.
39 FIXES
40 -----
42 - SCons 4.8.0 added an `__all__`  specifier at the top of the Variables
43   module (`Variables/__init__.py`) to control what is made available in
44   a star import. However, there was existing usage of doing
45   `from SCons.Variables import *` which expected the variable *types*
46   to be avaiable. `BoolVariable`, `EnumVariable`, `ListVariable`,
47   `PackageVariable` and `PathVariable` are added to `__all__`,
48   so this form of import should now work again.
49 - Fix a problem with AppendUnique and PrependUnique where a value could
50   be erroneously removed due to a substring match.
51 - Fix handling of ListVariable when supplying a quoted choice containing
52   a space character (issue #4585).
54 IMPROVEMENTS
55 ------------
57 - List improvements that wouldn't be visible to the user in the
58 documentation:  performance improvements (describe the circumstances
59 under which they would be observed), or major code cleanups
61 PACKAGING
62 ---------
64 - List changes in the way SCons is packaged and/or released
66 DOCUMENTATION
67 -------------
69 - Improve wording of manpage "Functions and Environment Methods" section.
70 - Make doc function signature style more consistent - tweaks to AddOption,
71   DefaultEnvironment and Tool,.
74 DEVELOPMENT
75 -----------
77 - sctypes `is_*` functions given explicit return types. Python 3.13+ uses
78   `TypeIs` for a near-equivalent of `isinstance`. Python 3.10 through 3.12
79   uses `TypeGuard`, a less accurate implementation but still provides
80   usable type hinting. Python 3.9 and earlier simply returns `bool`, same
81   as before.
83 Thanks to the following contributors listed below for their contributions to this release.
84 ==========================================================================================
85 .. code-block:: text
87     git shortlog --no-merges -ns 4.0.1..HEAD