• [Python-announce] SCons 4.7.0 Release

    From Bill Deegan@bill@baddogconsulting.com to comp.lang.python.announce on Sun Mar 17 17:50:23 2024
    From Newsgroup: comp.lang.python.announce

    A new SCons release, 4.7.0, is now available on the SCons download page:

    https://scons.org/pages/download.html

    Here is a summary of the changes since 4.6.0:

    NEW FUNCTIONALITY
    -----------------

    - Method unlink_files was added to the TestCmd class that unlinks a list of files
    from a specified directory. An attempt to unlink a file is made only
    when the
    file exists; otherwise, the file is ignored.

    CHANGED/ENHANCED EXISTING FUNCTIONALITY
    ---------------------------------------

    - Add an optional argument list string to configure's CheckFunc method so
    that the generated function argument list matches the function's
    prototype when including a header file. Fixes GH Issue #4320
    - Now supports pre-release Python 3.13
    - Support for Python versions without support for the `threading` package
    has been removed
    - Dropped three unused warning classes: DeprecatedSourceCodeWarning,
    TaskmasterNeedsExecuteWarning, DeprecatedMissingSConscriptWarning.
    * Two warning classes that are actually used were added to manpage section
    on
    enabling warnings (cache-cleanup-error, future-reserved-variable).

    FIXES
    -----

    - Fix of the --debug=sconscript option to return exist statements when
    using return
    statement with stop flag enabled
    - MSVS: prevent overwriting the SCons environment variable SCONS_HOME with
    the OS
    environment value of SCONS_HOME in the msvs tool.
    - MSVC: Fix the detection of Visual Studio 2015 Express ('14.0Exp') by
    adding a
    registry key definition and updating the installation root-relative
    registry value
    at runtime for the location of the VC folder.
    - MSVS: Fix the msvs project generation test for MSVS 6.0 to use the
    correct name of
    the generated project file.
    - MSVS: Fix the msvs project generation test scripts so that "false
    positive" tests
    results are not possible when the initial build is successful and the command-line
    build of the project file fails.
    - On Windows platform, when collecting command output (Configure checks),
    make sure decoding of bytes doesn't fail.
    - Documentation indicated that both Pseudo() and env.Pseudo() were usable,
    but Pseudo() did not work; is now enabled.
    - Improve handling of file data that SCons itself processes - as in
    scanners - try harder to decode non-UTF-8 text.
    - PyPackageDir no longer fails if passed a module name which cannot be
    found,
    now returns None.
    - Add locking around creation of CacheDir config file. Fixes issue #4489.

    IMPROVEMENTS
    ------------

    - Use of NotImplemented instead of NotImplementedError for special methods
    of _ListVariable class
    - The NewParallel scheduler is now the default, the `tm_v2` flag is removed,
    and the old scheduler is opt-in under `--experimental=legacy_sched`. Additionally,
    the new scheduler is now used for -j1 builds as well.
    NOTE: This should significantly improve SCons performance for larger
    parallel builds
    (Larger -j values)
    - CacheDir writes no longer happen within the taskmaster critical section,
    and therefore
    can run in parallel with both other CacheDir writes and the taskmaster
    DAG walk.
    - The NewParallel scheduler now only adds threads as new work requiring execution
    is discovered, up to the limit set by -j. This should reduce resource utilization
    when the achievable parallelism in the DAG is less than the -j limit.
    - Dumping an environment with `json` formatting will now explicitly specify
    if a given
    value cannot be serialized.

    PACKAGING
    ---------

    - Remove unnecessary dependencies on pypi packages from setup.cfg
    - SCons documentation build can now be controlled through SKIP_DOC
    variable - rather than just true/false can now specify
    skip none, skip all, skip pdf docs, skip api docs.

    DOCUMENTATION
    -------------

    - Fixed the Scanner examples in the User Guide to be runnable and added
    some more explanation. Clarified discussion of the scanner function in
    the Scanner Objects section of the manpage.
    - The manpage entry for Pseudo was clarified.
    - The manpage entry for SharedLibrary was clarified.
    - Update API docs for Warnings framework; add two warns to manpage
    enable/disable control.
    - More consistent use of &Python; in the manpage. A few links added.
    A warning about overwriting env['ENV'] and one about Configure
    checks possibly not running in in no-exec mode also added.
    - Clarify how SCons finds the project top directory, and what that is used
    for.
    - Clarify MergeFlags usage of a dict argument.

    DEVELOPMENT
    -----------

    - Fix sphinx config to handle SCons versions with post such as: 4.6.0.post1
    - Created SCons.Util.sctyping to contain complex type information, allowing
    for repo-wide type hinting without causing cyclical dependencies.

    Thanks to the following contributors listed below for their contributions
    to this release. ==========================================================================================
    .. code-block:: text

    git shortlog --no-merges -ns 4.6.0..HEAD
    26 Andrew Morrow
    24 Mats Wichmann
    14 William Deegan
    7 Joseph Brill
    6 StenGruener
    3 Prabhu S. Khalsa
    3 Thaddeus Crews
    2 fazledyn-or
    1 Michał Górny
    1 Piotr Siupa
    --- Synchronet 3.20a-Linux NewsLink 1.114