SCons 4.7.0 Release

Bill Deegan <bill-cJFiu+DHMVC5azolltMz9laTQe2KTcn/@public.gmane.org> Sun, 17 Mar 2024 17:50:23 -0700
Newsgroups gmane.comp.programming.tools.scons.devel
Message-ID <CAEyG4CGDg=tKCkEf47u9evkimq+VpUGZFqSVZhcyt1gbc2VNAg@mail.gmail.com>
--===============0393993964062404322==
Content-Type: multipart/alternative; boundary="000000000000c401d10613e4be37"

--000000000000c401d10613e4be37
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

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=3Dsconscript 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=3Dlegacy_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.
=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
.. 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=C5=82 G=C3=B3rny
     1  Piotr Siupa

--000000000000c401d10613e4be37
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">A new SCons release, 4.7.0, is now available on the SCons =
download page:<br><br>=C2=A0 =C2=A0 <a href=3D"https://scons.org/pages/down=
load.html">https://scons.org/pages/download.html</a><br><br>Here is a summa=
ry of the changes since 4.6.0:<br><br>NEW FUNCTIONALITY<br>----------------=
-<br><br>- Method unlink_files was added to the TestCmd class that unlinks =
a list of files<br>=C2=A0 from a specified directory.=C2=A0 An attempt to u=
nlink a file is made only when the<br>=C2=A0 file exists; otherwise, the fi=
le is ignored.<br><br>CHANGED/ENHANCED EXISTING FUNCTIONALITY<br>----------=
-----------------------------<br><br>- Add an optional argument list string=
 to configure&#39;s CheckFunc method so<br>=C2=A0 that the generated functi=
on argument list matches the function&#39;s<br>=C2=A0 prototype when includ=
ing a header file. Fixes GH Issue #4320<br>- Now supports pre-release Pytho=
n 3.13<br>- Support for Python versions without support for the `threading`=
 package has been removed<br>- Dropped three unused warning classes: Deprec=
atedSourceCodeWarning,<br>=C2=A0 TaskmasterNeedsExecuteWarning, DeprecatedM=
issingSConscriptWarning.<br>* Two warning classes that are actually used we=
re added to manpage section on<br>=C2=A0 enabling warnings (cache-cleanup-e=
rror, future-reserved-variable).<br><br>FIXES<br>-----<br><br>- Fix of the =
--debug=3Dsconscript option to return exist statements when using return<br=
>=C2=A0 statement with stop flag enabled<br>- MSVS: prevent overwriting the=
 SCons environment variable SCONS_HOME with the OS<br>=C2=A0 environment va=
lue of SCONS_HOME in the msvs tool.<br>- MSVC: Fix the detection of Visual =
Studio 2015 Express (&#39;14.0Exp&#39;) by adding a<br>=C2=A0 registry key =
definition and updating the installation root-relative registry value<br>=
=C2=A0 at runtime for the location of the VC folder.<br>- MSVS: Fix the msv=
s project generation test for MSVS 6.0 to use the correct name of<br>=C2=A0=
 the generated project file.<br>- MSVS: Fix the msvs project generation tes=
t scripts so that &quot;false positive&quot; tests<br>=C2=A0 results are no=
t possible when the initial build is successful and the command-line<br>=C2=
=A0 build of the project file fails.<br>- On Windows platform, when collect=
ing command output (Configure checks),<br>=C2=A0 make sure decoding of byte=
s doesn&#39;t fail.<br>- Documentation indicated that both Pseudo() and env=
.Pseudo() were usable,<br>=C2=A0 but Pseudo() did not work; is now enabled.=
<br>- Improve handling of file data that SCons itself processes - as in<br>=
=C2=A0 scanners - try harder to decode non-UTF-8 text.<br>- PyPackageDir no=
 longer fails if passed a module name which cannot be found,<br>=C2=A0 now =
returns None.<br>- Add locking around creation of CacheDir config file. Fix=
es issue #4489.<br><br>IMPROVEMENTS<br>------------<br><br>- Use of NotImpl=
emented instead of NotImplementedError for special methods<br>=C2=A0 of _Li=
stVariable class<br>- The NewParallel scheduler is now the default, the `tm=
_v2` flag is removed,<br>=C2=A0 and the old scheduler is opt-in under `--ex=
perimental=3Dlegacy_sched`. Additionally,<br>=C2=A0 the new scheduler is no=
w used for -j1 builds as well.<br>=C2=A0 NOTE: This should significantly im=
prove SCons performance for larger parallel builds<br>=C2=A0 =C2=A0 =C2=A0 =
=C2=A0 (Larger -j values)<br>- CacheDir writes no longer happen within the =
taskmaster critical section, and therefore<br>=C2=A0 can run in parallel wi=
th both other CacheDir writes and the taskmaster DAG walk.<br>- The NewPara=
llel scheduler now only adds threads as new work requiring execution<br>=C2=
=A0 is discovered, up to the limit set by -j. This should reduce resource u=
tilization<br>=C2=A0 when the achievable parallelism in the DAG is less tha=
n the -j limit.<br>- Dumping an environment with `json` formatting will now=
 explicitly specify if a given<br>=C2=A0 value cannot be serialized.<br><br=
>PACKAGING<br>---------<br><br>- Remove unnecessary dependencies on pypi pa=
ckages from setup.cfg<br>- SCons documentation build can now be controlled =
through SKIP_DOC<br>=C2=A0 variable - rather than just true/false can now s=
pecify<br>=C2=A0 skip none, skip all, skip pdf docs, skip api docs.<br><br>=
DOCUMENTATION<br>-------------<br><br>- Fixed the Scanner examples in the U=
ser Guide to be runnable and added<br>=C2=A0 some more explanation. Clarifi=
ed discussion of the scanner function in<br>=C2=A0 the Scanner Objects sect=
ion of the manpage.<br>- The manpage entry for Pseudo was clarified.<br>- T=
he manpage entry for SharedLibrary was clarified.<br>- Update API docs for =
Warnings framework; add two warns to manpage<br>=C2=A0 enable/disable contr=
ol.<br>- More consistent use of &amp;Python; in the manpage.=C2=A0 A few li=
nks added.<br>=C2=A0 A warning about overwriting env[&#39;ENV&#39;] and one=
 about Configure<br>=C2=A0 checks possibly not running in in no-exec mode a=
lso added.<br>- Clarify how SCons finds the project top directory, and what=
 that is used for.<br>- Clarify MergeFlags usage of a dict argument.<br><br=
>DEVELOPMENT<br>-----------<br><br>- Fix sphinx config to handle SCons vers=
ions with post such as: 4.6.0.post1<br>- Created SCons.Util.sctyping to con=
tain complex type information, allowing<br>=C2=A0 for repo-wide type hintin=
g without causing cyclical dependencies.<br><br>Thanks to the following con=
tributors 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.6.0..HEAD<br>=C2=A0 =C2=A0 26 =C2=
=A0Andrew Morrow<br>=C2=A0 =C2=A0 24 =C2=A0Mats Wichmann<br>=C2=A0 =C2=A0 1=
4 =C2=A0William Deegan<br>=C2=A0 =C2=A0 =C2=A07 =C2=A0Joseph Brill<br>=C2=
=A0 =C2=A0 =C2=A06 =C2=A0StenGruener<br>=C2=A0 =C2=A0 =C2=A03 =C2=A0Prabhu =
S. Khalsa<br>=C2=A0 =C2=A0 =C2=A03 =C2=A0Thaddeus Crews<br>=C2=A0 =C2=A0 =
=C2=A02 =C2=A0fazledyn-or<br>=C2=A0 =C2=A0 =C2=A01 =C2=A0Micha=C5=82 G=C3=
=B3rny<br>=C2=A0 =C2=A0 =C2=A01 =C2=A0Piotr Siupa<br></div>

--000000000000c401d10613e4be37--

--===============0393993964062404322==
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

--===============0393993964062404322==--