summaryrefslogtreecommitdiffstats
path: root/RELEASE.txt
blob: ec22f1057a8502dcc7b693419e567fe93698626e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
If you are reading this in the git repository, the contents
refer to *unreleased* changes since the last SCons release.
Past official release announcements appear at:

    https://scons.org/tag/releases.html

==================================================================

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

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


Here is a summary of the changes since 4.7.0:

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

- GetSConsVersion() added to retrieve the SCons version.

DEPRECATED FUNCTIONALITY
------------------------

- Mark Python 3.6 support as deprecated. Use --warn=no-python-version
  to quiet the warning.

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

- Dump() with json format selected now recognizes additional compound types
  (UserDict and UserList), which improves the detail of the display.
  json output is also sorted, to match the default display.
- Python 3.13 changes the behavior of isabs() on Windows. Adjust SCons
  usage of this in NodeInfo classes to avoid test problems.
- Drop duplicated __getstate__ and __setstate__ methods in AliasNodeInfo,
  FileNodeInfo and ValueNodeInfo classes, as they are identical to the
  ones in parent NodeInfoBase and can just be inherited.
- All exceptions during the execution of an Action are now returned by value
  rather than by raising an exception, for more consistent behavior.
  NOTE: With this change, user created Actions should now catch and handle
  expected exceptions (whereas previously many of these were silently caught
  and suppressed by the SCons Action exection code).
- ParseFlags now sorts a --stdlib=libname argument into CXXFLAGS instead
  of CCFLAGS; the latter variable could cause a compiler warning.
- The implementation of Variables was slightly refactored, there should
  not be user-visible changes.
- SCons.Environment.is_valid_construction_var() now returns a boolean to
  match the convention that functions beginning with "is" have yes/no
  answers (previously returned either None or an re.match object).
  Now matches the annotation and docstring (which were prematurely
  updated in 4.6). All SCons usage except unit test was already fully
  consistent with a bool.
- The Variables object Add method now accepts a do_subst keyword argument
  (defaults to True) which can be set to inhibit substitution prior to
  calling the variable's converter and validator.

FIXES
-----

- OSErrors are now no longer hidden during the execution of Actions.
- Improved the conversion of a "foreign" exception from an action
  into BuildError by making sure our defaults get applied even in
  corner cases. Fixes Issue #4530

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

- Make the testing framework a little more resilient: the temporary
  directory for tests now includes a component named "scons" which can
  be given to antivirus software to exclude.

PACKAGING
---------

- setup.cfg logic now handled via pyproject.toml; consequently, setup.cfg
  was removed.


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

- Updated Value Node docs.
- Update manpage for Tools, and for the TOOL variable.
- Update manpage and user guide for Variables usage.
- Restructured API Docs build so main package contents are listed
  before contents of package submodules.
- Updated manpage description of Command "builder" and function.



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

- Documentation build now properly passes through skipping the PDF
  (and EPUB) builds of manpage and user guide; this can also be done
  manually if directly calling doc/man/SConstruct and doc/user/SConstruct
  by adding SKIP_PDF=1. This should help with distro packaging of SCons,
  which now does not need "fop" and other tools to be set up in order to
  build pdf versions which are then ignored.
- .gitattributes has been setup to mirror .editorconfig's eol settings.
  The repo-wide line-ending is now `lf`, with the exception of a few
  Windows-only files using `crlf` instead. Any files not already fitting
  this format have been explicitly converted.


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