Updates and slight refactor in fix
[scons.git] / RELEASE.txt
blobcbd4768be98a72a1d518028952cdcb294ef6eef4
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.
50 - On win32 platform, SCons 4.7.0 modified the determination
51   of the output encoding of piped processes. Instead of using the default
52   encoding, it relied on the encoding attribute of the output stream.
53   If the encoding attribute of the output stream was set to None,
54   it was triggering an invalid argument exeption. This was the case with
55   streams of type io.StringIO for example.
56   From now, if the encoding is set to None, UTF8 is used.
58 IMPROVEMENTS
59 ------------
61 - List improvements that wouldn't be visible to the user in the
62 documentation:  performance improvements (describe the circumstances
63 under which they would be observed), or major code cleanups
65 PACKAGING
66 ---------
68 - List changes in the way SCons is packaged and/or released
70 DOCUMENTATION
71 -------------
73 - Improve wording of manpage "Functions and Environment Methods" section.
74 - Make doc function signature style more consistent - tweaks to AddOption,
75   DefaultEnvironment and Tool,.
78 DEVELOPMENT
79 -----------
81 - sctypes `is_*` functions given explicit return types. Python 3.13+ uses
82   `TypeIs` for a near-equivalent of `isinstance`. Python 3.10 through 3.12
83   uses `TypeGuard`, a less accurate implementation but still provides
84   usable type hinting. Python 3.9 and earlier simply returns `bool`, same
85   as before.
87 Thanks to the following contributors listed below for their contributions to this release.
88 ==========================================================================================
89 .. code-block:: text
91     git shortlog --no-merges -ns 4.0.1..HEAD