SCons 4.8.1 Released
Bill Deegan <bill-cJFiu+DHMVC5azolltMz9laTQe2KTcn/@public.gmane.org> Tue, 3 Sep 2024 17:57:03 -0700
| Newsgroups | gmane.comp.programming.tools.scons.devel |
|---|---|
| Message-ID | <CAEyG4CEB+98oSH-VmA=1hoPY1uhKA6E5y+_8vjUa_47vo0BmCQ@mail.gmail.com> |
--===============1049285329890668437==
Content-Type: multipart/alternative; boundary="000000000000a4c310062140a7ef"
--000000000000a4c310062140a7ef
Content-Type: text/plain; charset="UTF-8"
A new SCons release, 4.8.1, is now available on the SCons download page:
https://scons.org/pages/download.html
Here is a summary of the changes since 4.8.0:
CHANGED/ENHANCED EXISTING FUNCTIONALITY
---------------------------------------
- env.Dump() previously accepted a single optional "key" argument.
It now accepts any number of optional "key" arguments; any supplied
keys will be serialized with their values in a Python dict style.
As a result there is a small change in behavior: if a *single* key
argument is given, where it previously would return a string containing
just the value, now it will return a string that looks like a dictionary
including the key. For example, from "'gcc'" to "{'CC': 'gcc'}".
This should not have any impact as the result of calling Dump is
intended for diagnostic output, not for use by other interfaces.
FIXES
-----
- SCons 4.8.0 added an `__all__` specifier at the top of the Variables
module (`Variables/__init__.py`) to control what is made available in
a star import. However, there was existing usage of doing
`from SCons.Variables import *` which expected the variable *types*
to be avaiable. `BoolVariable`, `EnumVariable`, `ListVariable`,
`PackageVariable` and `PathVariable` are added to `__all__`,
so this form of import should now work again.
- Fix a problem with AppendUnique and PrependUnique where a value could
be erroneously removed due to a substring match.
- Fix handling of ListVariable when supplying a quoted choice containing
a space character (issue #4585).
- On win32 platform, SCons 4.7.0 modified the determination
of the output encoding of piped processes. Instead of using the default
encoding, it relied on the encoding attribute of the output stream.
If the encoding attribute of the output stream was set to None,
it was triggering an invalid argument exception. This was the case with
streams of type io.StringIO for example.
This has been changed to always use the `oem` encoding which should be the
encoding in the shell where the command was spawned.
DOCUMENTATION
-------------
- Improve wording of manpage "Functions and Environment Methods" section.
- Make doc function signature style more consistent - tweaks to AddOption,
DefaultEnvironment and Tool,.
DEVELOPMENT
-----------
- sctypes `is_*` functions given explicit return types. Python 3.13+ uses
`TypeIs` for a near-equivalent of `isinstance`. Python 3.10 through 3.12
uses `TypeGuard`, a less accurate implementation but still provides
usable type hinting. Python 3.9 and earlier simply returns `bool`, same
as before.
Thanks to the following contributors listed below for their contributions
to this release.
==========================================================================================
.. code-block:: text
git shortlog --no-merges -ns 4.8.0..HEAD
9 Mats Wichmann
8 William Deegan
1 SIEGRIST Anthony
1 Thaddeus Crews
1 siegria
--000000000000a4c310062140a7ef
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr"><br>A new SCons release, 4.8.1, is now available on the SC=
ons download page:<br><br>=C2=A0 =C2=A0 <a href=3D"https://scons.org/pages/=
download.html">https://scons.org/pages/download.html</a><br><br><br>Here is=
a summary of the changes since 4.8.0:<br><br><br>CHANGED/ENHANCED EXISTING=
FUNCTIONALITY<br>---------------------------------------<br><br>- env.Dump=
() previously accepted a single optional "key" argument.<br>=C2=
=A0 It now accepts any number of optional "key" arguments; any su=
pplied<br>=C2=A0 keys will be serialized with their values in a Python dict=
style.<br>=C2=A0 As a result there is a small change in behavior: if a *si=
ngle* key<br>=C2=A0 argument is given, where it previously would return a s=
tring containing<br>=C2=A0 just the value, now it will return a string that=
looks like a dictionary<br>=C2=A0 including the key.=C2=A0 For example, fr=
om "'gcc'" to "{'CC': 'gcc'}".<=
br>=C2=A0 This should not have any impact as the result of calling Dump is<=
br>=C2=A0 intended for diagnostic output, not for use by other interfaces.<=
br><br>FIXES<br>-----<br><br>- SCons 4.8.0 added an `__all__` =C2=A0specifi=
er at the top of the Variables<br>=C2=A0 module (`Variables/__init__.py`) t=
o control what is made available in<br>=C2=A0 a star import. However, there=
was existing usage of doing<br>=C2=A0 `from SCons.Variables import *` whic=
h expected the variable *types*<br>=C2=A0 to be avaiable. `BoolVariable`, `=
EnumVariable`, `ListVariable`,<br>=C2=A0 `PackageVariable` and `PathVariabl=
e` are added to `__all__`,<br>=C2=A0 so this form of import should now work=
again.<br>- Fix a problem with AppendUnique and PrependUnique where a valu=
e could<br>=C2=A0 be erroneously removed due to a substring match.<br>- Fix=
handling of ListVariable when supplying a quoted choice containing<br>=C2=
=A0 a space character (issue #4585).<br><br>- On win32 platform, SCons 4.7.=
0 modified the determination<br>=C2=A0 of the output encoding of piped proc=
esses. Instead of using the default<br>=C2=A0 encoding, it relied on the en=
coding attribute of the output stream.<br>=C2=A0 If the encoding attribute =
of the output stream was set to None,<br>=C2=A0 it was triggering an invali=
d argument exception. This was the case with<br>=C2=A0 streams of type io.S=
tringIO for example.<br>=C2=A0 This has been changed to always use the `oem=
` encoding which should be the<br>=C2=A0 encoding in the shell where the co=
mmand was spawned.<br><br><br>DOCUMENTATION<br>-------------<br><br>- Impro=
ve wording of manpage "Functions and Environment Methods" section=
.<br>- Make doc function signature style more consistent - tweaks to AddOpt=
ion,<br>=C2=A0 DefaultEnvironment and Tool,.<br><br><br>DEVELOPMENT<br>----=
-------<br><br>- sctypes `is_*` functions given explicit return types. Pyth=
on 3.13+ uses<br>=C2=A0 `TypeIs` for a near-equivalent of `isinstance`. Pyt=
hon 3.10 through 3.12<br>=C2=A0 uses `TypeGuard`, a less accurate implement=
ation but still provides<br>=C2=A0 usable type hinting. Python 3.9 and earl=
ier simply returns `bool`, same<br>=C2=A0 as before.<br><br>Thanks to the f=
ollowing contributors listed below for their contributions to this release.=
<br>=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D<br>.. code-block:: text=
<br><br>=C2=A0 =C2=A0 git shortlog --no-merges -ns 4.8.0..HEAD<br><br>=C2=
=A0 =C2=A0 =C2=A09 =C2=A0Mats Wichmann<br>=C2=A0 =C2=A0 =C2=A08 =C2=A0Willi=
am Deegan<br>=C2=A0 =C2=A0 =C2=A01 =C2=A0SIEGRIST Anthony<br>=C2=A0 =C2=A0 =
=C2=A01 =C2=A0Thaddeus Crews<br>=C2=A0 =C2=A0 =C2=A01 =C2=A0siegria<br></di=
v>
--000000000000a4c310062140a7ef--
--===============1049285329890668437==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
_______________________________________________
Scons-dev mailing list
[email protected]
https://pairlist2.pair.net/mailman/listinfo/scons-dev
--===============1049285329890668437==--