Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 1 addition & 4 deletions CHANGES.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,7 @@ NOTE: Since SCons 4.3.0, Python 3.6.0 or above is required.
NOTE: Since SCons 4.9.0, Python 3.7.0 or above is required.


RELEASE VERSION/DATE TO BE FILLED IN LATER

From John Doe:
- Whatever John Doe did.
RELEASE 4.9.0 - Thu, 27 Mar 2025 11:40:20 -0700

From Mats Wichmann:
- Fix typos in CCFLAGS test. Didn't affect the test itself, but
Expand Down
56 changes: 5 additions & 51 deletions RELEASE.txt
Original file line number Diff line number Diff line change
@@ -1,71 +1,25 @@
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.9.0, is now available on the SCons download page:
A new SCons release, 4.9.1, is now available on the SCons download page:

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


Here is a summary of the changes since 4.4.0:

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

- List new features (presumably why a checkpoint is being released)

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

- List anything that's been deprecated since the last release

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

- List modifications to existing features, where the previous behavior
wouldn't actually be considered a bug

FIXES
-----

- List fixes of outright bugs

- New CacheDir initialization code failed on Python 3.7 for unknown
reason (worked on 3.8+). Adjusted the approach a bit. Fixes #4694.

- Fixed a hang in `wait_for_process_to_die()` on Windows, affecting
clean-up of the SCons daemon used for Ninja builds.

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

- List improvements that wouldn't be visible to the user in the
documentation: performance improvements (describe the circumstances
under which they would be observed), or major code cleanups

PACKAGING
---------

- List changes in the way SCons is packaged and/or released

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

- List any significant changes to the documentation (not individual
typo fixes, even if they're mentioned in src/CHANGES.txt to give
the contributor credit)

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

- List visible changes in the way SCons is developed

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
git shortlog --no-merges -ns 4.9.0..HEAD
7 Mats Wichmann
4 William Deegan
2 Adam Simpkins
2 changes: 1 addition & 1 deletion ReleaseConfig
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
# If the release type is not 'final', the patchlevel is set to the
# release date. This value is mandatory and must be present in this file.
#version_tuple = (2, 2, 0, 'final', 0)
version_tuple = (4, 9, 2, 'a', 0)
version_tuple = (4, 9, 1)

# Python versions prior to unsupported_python_version cause a fatal error
# when that version is used. Python versions prior to deprecate_python_version
Expand Down
8 changes: 4 additions & 4 deletions SCons/__init__.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
__version__="4.9.0"
__version__="4.9.1"
__copyright__="Copyright (c) 2001 - 2025 The SCons Foundation"
__developer__="bdbaddog"
__date__="Sun, 02 Mar 2025 14:04:50 -0700"
__date__="Thu, 27 Mar 2025 11:44:24 -0700"
__buildsys__="M1Dog2021"
__revision__="99a8c86de1ce91d23b102520e185c54ebd968924"
__build__="99a8c86de1ce91d23b102520e185c54ebd968924"
__revision__="39a12f34d532ab2493e78a7b73aeab2250852790"
__build__="39a12f34d532ab2493e78a7b73aeab2250852790"
# make sure compatibility is always in place
import SCons.compat # noqa
4 changes: 2 additions & 2 deletions doc/generated/examples/caching_ex-random_1.xml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q</userinput>
cc -o f2.o -c f2.c
cc -o f3.o -c f3.c
cc -o f4.o -c f4.c
cc -o f1.o -c f1.c
cc -o f5.o -c f5.c
cc -o f3.o -c f3.c
cc -o f2.o -c f2.c
cc -o prog f1.o f2.o f3.o f4.o f5.o
</screen>
50 changes: 25 additions & 25 deletions doc/generated/examples/troubleshoot_taskmastertrace_1.xml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
<screen xmlns="http://www.scons.org/dbxsd/v1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.scons.org/dbxsd/v1.0 http://www.scons.org/dbxsd/v1.0/scons.xsd">% <userinput>scons -Q --taskmastertrace=- prog</userinput>
Job.NewParallel._work(): [Thread:8646594432] Gained exclusive access
Job.NewParallel._work(): [Thread:8646594432] Starting search
Job.NewParallel._work(): [Thread:8646594432] Found 0 completed tasks to process
Job.NewParallel._work(): [Thread:8646594432] Searching for new tasks
Job.NewParallel._work(): [Thread:8286867328] Gained exclusive access
Job.NewParallel._work(): [Thread:8286867328] Starting search
Job.NewParallel._work(): [Thread:8286867328] Found 0 completed tasks to process
Job.NewParallel._work(): [Thread:8286867328] Searching for new tasks

Taskmaster: Looking for a node to evaluate
Taskmaster: Considering node &lt;no_state 0 'prog'&gt; and its children:
Expand All @@ -18,25 +18,25 @@ Taskmaster: Evaluating &lt;pending 0 'prog.c'&gt;

Task.make_ready_current(): node &lt;pending 0 'prog.c'&gt;
Task.prepare(): node &lt;up_to_date 0 'prog.c'&gt;
Job.NewParallel._work(): [Thread:8646594432] Found internal task
Job.NewParallel._work(): [Thread:8286867328] Found internal task
Task.executed_with_callbacks(): node &lt;up_to_date 0 'prog.c'&gt;
Task.postprocess(): node &lt;up_to_date 0 'prog.c'&gt;
Task.postprocess(): removing &lt;up_to_date 0 'prog.c'&gt;
Task.postprocess(): adjusted parent ref count &lt;pending 1 'prog.o'&gt;
Job.NewParallel._work(): [Thread:8646594432] Searching for new tasks
Job.NewParallel._work(): [Thread:8286867328] Searching for new tasks

Taskmaster: Looking for a node to evaluate
Taskmaster: Considering node &lt;no_state 0 'inc.h'&gt; and its children:
Taskmaster: Evaluating &lt;pending 0 'inc.h'&gt;

Task.make_ready_current(): node &lt;pending 0 'inc.h'&gt;
Task.prepare(): node &lt;up_to_date 0 'inc.h'&gt;
Job.NewParallel._work(): [Thread:8646594432] Found internal task
Job.NewParallel._work(): [Thread:8286867328] Found internal task
Task.executed_with_callbacks(): node &lt;up_to_date 0 'inc.h'&gt;
Task.postprocess(): node &lt;up_to_date 0 'inc.h'&gt;
Task.postprocess(): removing &lt;up_to_date 0 'inc.h'&gt;
Task.postprocess(): adjusted parent ref count &lt;pending 0 'prog.o'&gt;
Job.NewParallel._work(): [Thread:8646594432] Searching for new tasks
Job.NewParallel._work(): [Thread:8286867328] Searching for new tasks

Taskmaster: Looking for a node to evaluate
Taskmaster: Considering node &lt;pending 0 'prog.o'&gt; and its children:
Expand All @@ -46,19 +46,19 @@ Taskmaster: Evaluating &lt;pending 0 'prog.o'&gt;

Task.make_ready_current(): node &lt;pending 0 'prog.o'&gt;
Task.prepare(): node &lt;executing 0 'prog.o'&gt;
Job.NewParallel._work(): [Thread:8646594432] Found task requiring execution
Job.NewParallel._work(): [Thread:8646594432] Executing task
Job.NewParallel._work(): [Thread:8286867328] Found task requiring execution
Job.NewParallel._work(): [Thread:8286867328] Executing task
Task.execute(): node &lt;executing 0 'prog.o'&gt;
cc -o prog.o -c -I. prog.c
Job.NewParallel._work(): [Thread:8646594432] Enqueueing executed task results
Job.NewParallel._work(): [Thread:8646594432] Gained exclusive access
Job.NewParallel._work(): [Thread:8646594432] Starting search
Job.NewParallel._work(): [Thread:8646594432] Found 1 completed tasks to process
Job.NewParallel._work(): [Thread:8286867328] Enqueueing executed task results
Job.NewParallel._work(): [Thread:8286867328] Gained exclusive access
Job.NewParallel._work(): [Thread:8286867328] Starting search
Job.NewParallel._work(): [Thread:8286867328] Found 1 completed tasks to process
Task.executed_with_callbacks(): node &lt;executing 0 'prog.o'&gt;
Task.postprocess(): node &lt;executed 0 'prog.o'&gt;
Task.postprocess(): removing &lt;executed 0 'prog.o'&gt;
Task.postprocess(): adjusted parent ref count &lt;pending 0 'prog'&gt;
Job.NewParallel._work(): [Thread:8646594432] Searching for new tasks
Job.NewParallel._work(): [Thread:8286867328] Searching for new tasks

Taskmaster: Looking for a node to evaluate
Taskmaster: Considering node &lt;pending 0 'prog'&gt; and its children:
Expand All @@ -67,21 +67,21 @@ Taskmaster: Evaluating &lt;pending 0 'prog'&gt;

Task.make_ready_current(): node &lt;pending 0 'prog'&gt;
Task.prepare(): node &lt;executing 0 'prog'&gt;
Job.NewParallel._work(): [Thread:8646594432] Found task requiring execution
Job.NewParallel._work(): [Thread:8646594432] Executing task
Job.NewParallel._work(): [Thread:8286867328] Found task requiring execution
Job.NewParallel._work(): [Thread:8286867328] Executing task
Task.execute(): node &lt;executing 0 'prog'&gt;
cc -o prog prog.o
Job.NewParallel._work(): [Thread:8646594432] Enqueueing executed task results
Job.NewParallel._work(): [Thread:8646594432] Gained exclusive access
Job.NewParallel._work(): [Thread:8646594432] Starting search
Job.NewParallel._work(): [Thread:8646594432] Found 1 completed tasks to process
Job.NewParallel._work(): [Thread:8286867328] Enqueueing executed task results
Job.NewParallel._work(): [Thread:8286867328] Gained exclusive access
Job.NewParallel._work(): [Thread:8286867328] Starting search
Job.NewParallel._work(): [Thread:8286867328] Found 1 completed tasks to process
Task.executed_with_callbacks(): node &lt;executing 0 'prog'&gt;
Task.postprocess(): node &lt;executed 0 'prog'&gt;
Job.NewParallel._work(): [Thread:8646594432] Searching for new tasks
Job.NewParallel._work(): [Thread:8286867328] Searching for new tasks

Taskmaster: Looking for a node to evaluate
Taskmaster: No candidate anymore.
Job.NewParallel._work(): [Thread:8646594432] Found no task requiring execution, and have no jobs: marking complete
Job.NewParallel._work(): [Thread:8646594432] Gained exclusive access
Job.NewParallel._work(): [Thread:8646594432] Completion detected, breaking from main loop
Job.NewParallel._work(): [Thread:8286867328] Found no task requiring execution, and have no jobs: marking complete
Job.NewParallel._work(): [Thread:8286867328] Gained exclusive access
Job.NewParallel._work(): [Thread:8286867328] Completion detected, breaking from main loop
</screen>
2 changes: 1 addition & 1 deletion doc/user/main.xml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ This file is processed by the bin/SConsDoc.py module.

<corpauthor>The SCons Development Team</corpauthor>

<pubdate>Released: Mon, 02 Mar 2025 14:20:11 -0700</pubdate>
<pubdate>Released: Mon, 27 Mar 2025 11:40:11 -0700</pubdate>

<copyright>
<year>2004 - 2025</year>
Expand Down
2 changes: 2 additions & 0 deletions requirements-pkg.txt
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,5 @@ sphinx-book-theme
rst2pdf

build
twine
packaging
Loading