Skip to content

Commit efe6879

Browse files
authored
Merge branch 'master' into doc/builder-methods
2 parents a256ab3 + 76ff88d commit efe6879

File tree

196 files changed

+1613
-1044
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

196 files changed

+1613
-1044
lines changed

.appveyor.yml

Lines changed: 17 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ image:
88
# linux builds done in Travis CI for now
99
- Visual Studio 2017
1010
- Visual Studio 2019
11-
#- Visual Studio 2022 # Temporary disable while failing on 14.40 build tools
11+
- Visual Studio 2022
1212

1313
cache:
1414
- downloads -> appveyor.yml
@@ -35,40 +35,37 @@ environment:
3535
SCONS_CACHE_MSVC_CONFIG: "true"
3636
matrix:
3737
# Test oldest and newest supported Pythons, and a subset in between.
38-
# Skipping 3.7 and 3.9 at this time
39-
- WINPYTHON: "Python312"
40-
- WINPYTHON: "Python310"
41-
- WINPYTHON: "Python38"
42-
- WINPYTHON: "Python36"
38+
# Skipping 3.8, 3.10, 3.12 at this time
39+
- WINPYTHON: "Python313"
40+
- WINPYTHON: "Python311"
41+
- WINPYTHON: "Python39"
42+
- WINPYTHON: "Python37"
4343

4444
# remove sets of build jobs based on criteria below
4545
# to fine tune the number and platforms tested
4646
matrix:
4747
exclude:
48-
# XXX test python 3.6 on Visual Studio 2017 image
49-
# test python 3.8 on Visual Studio 2017 image
48+
# test python 3.7 on Visual Studio 2017 image
5049
- image: Visual Studio 2017
51-
WINPYTHON: "Python312"
50+
WINPYTHON: "Python313"
5251
- image: Visual Studio 2017
53-
WINPYTHON: "Python310"
52+
WINPYTHON: "Python311"
5453
- image: Visual Studio 2017
55-
WINPYTHON: "Python36"
54+
WINPYTHON: "Python39"
5655

57-
# test python 3.10 on Visual Studio 2019 image
56+
# test python 3.9 on Visual Studio 2019 image
5857
- image: Visual Studio 2019
59-
WINPYTHON: "Python312"
58+
WINPYTHON: "Python313"
6059
- image: Visual Studio 2019
61-
WINPYTHON: "Python38"
60+
WINPYTHON: "Python311"
6261
- image: Visual Studio 2019
63-
WINPYTHON: "Python36"
62+
WINPYTHON: "Python37"
6463

65-
# test python 3.12 on Visual Studio 2022 image
64+
# test python 3.11, 3.13 on Visual Studio 2022 image
6665
- image: Visual Studio 2022
67-
WINPYTHON: "Python310"
66+
WINPYTHON: "Python39"
6867
- image: Visual Studio 2022
69-
WINPYTHON: "Python38"
70-
- image: Visual Studio 2022
71-
WINPYTHON: "Python36"
68+
WINPYTHON: "Python37"
7269

7370
# Remove some binaries we don't want to be found
7471
# Note this is no longer needed, git-windows bin/ is quite minimal now.

CHANGES.txt

Lines changed: 71 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,67 @@
77
NOTE: The 4.0.0 release of SCons dropped Python 2.7 support. Use 3.1.2 if
88
Python 2.7 support is required (but note old SCons releases are unsupported).
99
NOTE: Since SCons 4.3.0, Python 3.6.0 or above is required.
10-
NOTE: Python 3.6 support is deprecated and will be dropped in a future release.
11-
python.org no longer supports 3.6 or 3.7, and will drop 3.8 in Oct. 2024.
10+
NOTE: Since SCons 4.9.0, Python 3.7.0 or above is required.
11+
1212

1313
RELEASE VERSION/DATE TO BE FILLED IN LATER
1414

15+
From John Doe:
16+
- Whatever John Doe did.
17+
18+
From Bill Prendergast:
19+
- Fixed SCons.Variables.PackageVariable to correctly test the default
20+
setting against both enable & disable strings. (Fixes #4702)
21+
- Extended unittests (crudely) to test for correct/expected response
22+
when default setting is a boolean string.
23+
24+
From Mats Wichmann:
25+
- Clean up C and C++ FLAGS tests. Tests which use a real compiler
26+
are now more clearly distinguished (-live.py suffix and docstring).
27+
- runtest.py once again finds "external" tests, such as the tests for
28+
tools in scons-contrib. An earlier rework had broken this. Fixes #4699.
29+
- Clarify how pre/post actions on an alias work.
30+
- Improve the Builder Methods intro section in manpage, making sure
31+
all prose appears before the listing of methods.
32+
33+
34+
35+
RELEASE 4.9.1 - Thu, 27 Mar 2025 11:40:20 -0700
36+
37+
38+
From Adam Simpkins:
39+
- Fixed a hang in `wait_for_process_to_die()` on Windows, affecting
40+
clean-up of the SCons daemon used for Ninja builds.
41+
42+
From Thaddeus Crews:
43+
- Nodes are now treated as PathLike objects.
44+
45+
From Mats Wichmann:
46+
- Fix typos in CCFLAGS test. Didn't affect the test itself, but
47+
didn't correctly apply the DefaultEnvironment speedup.
48+
49+
- New CacheDir initialization code failed on Python 3.7 for unknown
50+
reason (worked on 3.8+). Adjusted the approach a bit. Fixes #4694.
51+
- Try to fix Windows fails on Docbook tests in case xsltproc is found.
52+
It's still not certain why this started failing. On both GitHub
53+
Actions and AppVeyor, it's found as part of StrawberryPerl, part of
54+
the default install - maybe this wasn't the case before? The xsltproc
55+
from choco install is considerably older and may have been more lenient?
56+
Anyway, intermittent fails seem caused by something network related,
57+
so propagate two xsltproc flags that avoid loading the dtd that were
58+
present in three of the 11 "live" tests, but not the other eight.
59+
Also, all 11 now pass the test-discovered xslt processor the same
60+
way, which was not the case previously.
61+
- Update progress printing on three tools for SCons developers -
62+
the test runner and two of the doc generators.
63+
64+
65+
RELEASE 4.9.0 - Sun, 02 Mar 2025 17:22:20 -0700
66+
67+
From Ruben Di Battista:
68+
- Expose `extra_libs` kwarg in Configure checks `CheckLibWithHeader`
69+
and 'CheckLib' and forward it downstream to `CheckLib`
70+
1571
From Joseph Brill:
1672
- Added error handling when creating MSVC detection debug log file specified by
1773
SCONS_MSCOMMON_DEBUG.
@@ -96,6 +152,8 @@ RELEASE VERSION/DATE TO BE FILLED IN LATER
96152
specified `local_only`, but the code and tests were using `keep_local`. The functionality
97153
more closely matches local only. NOTE: It doesn't seem like any code in the wild was using
98154
local_only as we'd not received any reports of such until PR #4606 from hedger.
155+
- Fix Issue #2281, AddPreAction() & AddPostAction() were being ignored if no action
156+
was specified when the Alias was initially created.
99157

100158
From Alex James:
101159
- On Darwin, PermissionErrors are now handled while trying to access
@@ -111,6 +169,11 @@ RELEASE VERSION/DATE TO BE FILLED IN LATER
111169
From Keith F Prussing:
112170
- Added support for tracking beamer themes in the LaTeX scanner.
113171

172+
From Adam Scott:
173+
- Changed Ninja's TEMPLATE rule pool to use `install_pool` instead of
174+
`local_pool`, hoping it will fix a race condition that can occurs when
175+
Ninja defers to SCons to build.
176+
114177
From Alex Thiessen:
115178
- Many grammatical and spelling fixes in the documentation.
116179

@@ -198,13 +261,12 @@ RELEASE VERSION/DATE TO BE FILLED IN LATER
198261
attribute and to explain what's being done in the example.
199262
- Test framework reformatted using settings from pyproject.toml.
200263
Includes code embedded in docstrings.
201-
- Improve the Builder Methods intro section in manpage, making sure
202-
all prose appears before the listing of methods.
203-
204-
From Adam Scott:
205-
- Changed Ninja's TEMPLATE rule pool to use `install_pool` instead of
206-
`local_pool`, hoping it will fix a race condition that can occurs when
207-
Ninja defers to SCons to build.
264+
- Handle case of "memoizer" as one member of a comma-separated
265+
--debug string - this was previously missed.
266+
- test YACC/live.py fixed - finally started failing on an "old-style"
267+
(K&R flavor) function declaration, updated.
268+
- Test framework - add recognizing list-of-path-components for
269+
the destination of fixtures too (matches docstrings now).
208270

209271

210272
RELEASE 4.8.1 - Tue, 03 Sep 2024 17:22:20 -0700

CONTRIBUTING.rst

Lines changed: 22 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,22 @@ Introduction
66

77
Thanks for taking the time to contribute to SCons!
88

9-
This will give a brief overview of the development process,
9+
This is a brief overview of the development process,
1010
and about the SCons tree (right here, if you're reading this
11-
in Github, or in a cloned repository).
11+
in Github, or in a repository clone).
1212

1313
There are lots of places we could use help - please don't
1414
think we're only interested in contributions to code.
1515

1616
If you're going to contribute, we'd love to get to know you
17-
a bit and understand and what problems you're looking to solve,
17+
a bit and understand what problems you're looking to solve,
1818
or what you are intending to improve, whether that's documentation,
1919
code, examples, tutorials, etc. A great way to introduce yourself is to
2020
to hop onto the `SCons Discord Server <https://discord.gg/bXVpWAy>`_
21-
to chat. You don't have to be a regular Discord user,
22-
there is a web interface.
21+
to chat. You don't have to use the Discord app,
22+
as there is a web interface (does require an account).
23+
You can also use the
24+
`SCons Users Mailing List <https://pairlist4.pair.net/mailman/listinfo/scons-users>`_.
2325

2426
Resources
2527
=========
@@ -38,15 +40,20 @@ Reporting Bugs
3840

3941
One of the easiest ways to contribute is by filing bugs.
4042
The SCons project welcomes bug reports and feature requests,
41-
but we *do* have a preference for having talked about them first -
42-
we request you send an email to the
43-
`SCons Users Mailing List <https://pairlist4.pair.net/mailman/listinfo/scons-users>`_
44-
or hop on the Discord channel (see link above), and if so
45-
instructed, then proceed to an issue report.
43+
but unless they're really trivial (like doc typos),
44+
we *do* have a preference for having talked about them first.
45+
This step helps identify possible collaborators and reviewers,
46+
and pre-screens issues that may already have solutions,
47+
be in progress, or perhaps are the result of a misunderstanding.
48+
You can either ask on the Discord channel (see link above),
49+
or send am email to the mailing list.
50+
You can also use
51+
`GitHub Discussions <https://github.com/SCons/scons/discussions>`_.
52+
If so instructed, please proceed to an issue report.
4653

4754
You can explore the list of existing bugs on GitHub.
4855
Sometimes there's work in progress which may include temporary
49-
workarounds for the problem you've run into::
56+
workarounds for the problem you are running into::
5057

5158
https://github.com/SCons/scons/issues
5259

@@ -58,12 +65,12 @@ This tree contains a lot more than just the SCons engine itself.
5865
Some of it has to do with packaging it in a couple
5966
of forms: a Python-installable package (source distribution
6067
and installable wheel file, which get uploaded to the Python
61-
Package Index), a portable zip (or tar) distribution
68+
Package Index, PyPI), a portable zip (or tar) distribution
6269
called "scons-local", and a full source bundle. You usually
6370
don't need to worry about the packaging parts when working
6471
on a source or doc contribution - unless you're adding an entirely
65-
new file, then the packaging bits may need to know about it. The
66-
project maintainers can usually help with that part.
72+
new file, then the packaging bits may need to know about it.
73+
The project maintainers can help with that part.
6774
There are also tests and tools in the tree.
6875

6976
The *full* development cycle is not just to test code changes directly,
@@ -111,7 +118,7 @@ on the documentation process at the Documentation Toolchain page:
111118
https://github.com/SCons/scons/blob/master/doc/overview.rst
112119

113120

114-
You can execute SCons directly from this repository. For Linux or UNIX::
121+
You can execute SCons directly from this repository. For Linux/UNIX/MacOS::
115122

116123
$ python scripts/scons.py [arguments]
117124

0 commit comments

Comments
 (0)