Skip to content

SCons 4.8.1 Released

Latest
Compare
Choose a tag to compare
@bdbaddog bdbaddog released this 04 Sep 01:22
· 70 commits to master since this release

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