Skip to content

Releases: SCons/scons

4.1.0 Release

19 Jan 22:02
Compare
Choose a tag to compare

SCons 4.1.0 is available

Here is a summary of the changes since 4.0.1:

NEW FUNCTIONALITY

  • Add COMPILATIONDB_PATH_FILTER env option for CompilationDatabase() builder which allows
    filtering of entries based on the output file paths using glob style file matching (issue #3742).
  • Add ZIP_OVERRIDE_TIMESTAMP env option to Zip builder which allows for overriding of the file
    modification times in the archive.
  • Raise an error if an option (not otherwise consumed) is used which
    looks like an abbreviation of one one added by AddOption. (#3653)

CHANGED/ENHANCED EXISTING FUNCTIONALITY

  • Completely rewrote versioned shared libraries logic.
    Added support for SOVERSION via dmoody's initial PR #3733

  • No longer automatically disable setting SONAME on shared libraries on OpenBSD.

  • Environment.SideEffect() no longer adds duplicate side effects.
    NOTE: The list of returned side effect Nodes will not include any
    duplicate side effect Nodes.

  • /snap/bin is added to the default search path for the 'posix' platform.

  • Completely rewrote versioned shared libraries logic.

  • Added support for SOVERSION

  • No longer automatically disable setting SONAME on shared libraries on OpenBSD.

  • Switch to use ctypes instead of pywin32 (requiring an extra pip install) - Fixes Github Issue #2291

    • pywin32 no longer necessary for SCons install. (pip install SCons will no longer also require pywin32 on win32)
    • Remove pywin32 usage from SCons.Util where it was used for accessing the registry. Python native winreg
      library already includes this functionality.
    • Remove using pywin32 to retrieve peak memory usage on Win32 for --debug=memory
  • Tool module not found will now raise a UserError to more clearly indicate this is
    probably an SConscript problem, and to make the traceback more relevant.

  • Fix three issues with MergeFlags:

    • Signature/return did not match documentation or existing usage - the implementation now no longer returns the passed env
    • merging --param arguments did not work (issue #3107);
    • passing a dict to merge where the values are strings failed (issue #2961).
  • Only try to initialize the wix tool by default (or when tool default is explicitly installed)
    on Windows based systems.

  • Add /snap/bin to env['PATH'] on POSIX, although this is only
    really useful for a subset of POSIX systems that use snaps.
    Was needed for CI builds, which run on Ubuntu LTS images.

FIXES

  • Fix yacc tool, not respecting YACC set at time of tool initialization.
  • Fix race condition bug when initializing a scons cache directory at the
    same time from multiple threads or processes. Problem described in PR #3114.
    This is a simpler fix which should avoid some problems identified with the initial PR.
    (Credit to Fredrik Medley for reporting the issue, the initial PR, and discussing and testing
    this solution)
  • Fix incorrect cache hits and/or misses when running in interactive mode by having
    SCons.Node.Node.clear() clear out all caching-related state.
  • Fix Zip builder not rebuilding when ZIPROOT env option was changed.
  • Fix python3 crash when Value node get_text_content when child content does not have decode()
    NOTE: If you depend on Value node's get_text_content returning concatenated contents of it's
    children. This may break your code. It now concatenates the csig() of all children.
  • Fix Zip tool to respect ZIPCOMSTR. Previously all zip builder calls would yield something
    like zip(["test.zip"], ["zip_scons.py"]) and ignore ZIPCOMSTR if ZIPCOM and ZIPCOMSTR
    weren't set after the Environment/Tool is initialized. (Explained in PR #3659)
  • Fix issue where java parsed a class incorrectly from lambdas used after a new.
  • Fix using TEMPFILE in multiple actions in an action list. Previously a builder, or command
    with an action list like the following could yield a single tempfile with the first TEMPFILE's contents, used by both steps
    in the action list.

.. code-block:: text

['${TEMPFILE("xxx.py -otempfile $SOURCE")}', '${TEMPFILE("yyy.py -o$TARGET tempfile")}']

  • Cleanup in SCons.Util.AddMethod. If called with an environment instance
    as the object to modify, the method would not be correctly set up in
    any Clone of that instance. Now tries to detect this and calls
    MethodWrapper to set up the method the same way env.AddMethod does.
    MethodWrapper moved to Util to avoid a circular import. Fixes #3028.
  • Fix Issue #3014 - Empty file and missing file have same csig

PACKAGING

  • Fix Issue #3759 - include scons.1, sconsign.1, scons-time.1 manpages in sdist and wheel packages.
  • Pick a better "Topic" Trove classifier for SCons: SW Dev / Build Tools

DOCUMENTATION

  • Include previously-excluded SideEffect section in User Guide.

DEVELOPMENT

  • Rework runtest.py to use argparse for arg handling (was a mix
    of hand-coded and optparse, with a stated intent to "gradually port").
  • Add options to runtest to generate/not generate a log of failed tests,
    and to rerun such tests. Useful when an error cascades through several
    tests, can quickly try if a change improves all the fails. Dropped
    runtest test for fallback from qmtest, not needed; added new tests.

Thanks to the following contributors listed below for their contributions to this release.

.. code-block:: text

git shortlog --no-merges -ns 4.0.1..HEAD
  115  Mats Wichmann
    83  William Deegan
    14  Adam Gross
    4  Joseph Brill
    3  Joachim Kuebart
    2  GIT
    2  Daniel Moody
    2  James Benton
    1  Unknown
    1  Daniel
    1  anatoly techtonik
    1  Dirk Baechle
    1  dependabot[bot]
    1  David H
    1  Michał Górny
    1  Simon Tegelid

.. _page: http://sourceforge.net/projects/scons/files/scons/4.1.0/
.. _ChangeLog: https://raw.githubusercontent.com/SCons/scons/rel_4.1.0/CHANGES.txt

3.0.5a2

05 Mar 16:08
Compare
Choose a tag to compare
3.0.5a2 Pre-release
Pre-release

This is an alpha release for the Mesa project to try to ensure their windows build issue with MD5-timestamp decider has been resolved.

This should resolve: https://bugs.freedesktop.org/show_bug.cgi?id=109443