Skip to content

Commit 93f887c

Browse files
committed
Merge branch 'master' into jbrill-msvc-detect
2 parents b920324 + 9f75371 commit 93f887c

21 files changed

+435
-350
lines changed

.github/workflows/experimental_tests.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ on:
1616
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
1717
jobs:
1818
# This workflow contains a single job called "build"
19-
build:
19+
experimental:
2020

2121
strategy:
2222
fail-fast: false
@@ -32,7 +32,7 @@ jobs:
3232
# Steps represent a sequence of tasks that will be executed as part of the job
3333
steps:
3434
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
35-
- uses: actions/[email protected].1
35+
- uses: actions/[email protected].6
3636

3737
# experiment: maybe don't need this?
3838
# update: looks like we do: with this commented out, the build hung
@@ -44,7 +44,7 @@ jobs:
4444
static: 0
4545

4646
- name: Set up Python 3.11 ${{ matrix.os }}
47-
uses: actions/setup-python@v5.0.0
47+
uses: actions/setup-python@v5.1.0
4848
with:
4949
python-version: '3.11'
5050

.github/workflows/framework_tests.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,10 @@ jobs:
2929

3030
steps:
3131
# Checkouut repository under $GITHUB_WORKSPACE
32-
- uses: actions/[email protected].1
32+
- uses: actions/[email protected].6
3333

3434
- name: Set up Python 3.11 ${{ matrix.os }}
35-
uses: actions/setup-python@v5.0.0
35+
uses: actions/setup-python@v5.1.0
3636
with:
3737
python-version: '3.11'
3838

.github/workflows/runtest-win.yml

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# This is a basic workflow to help you get started with Actions
2+
3+
name: Full Test Suite on Windows
4+
5+
# Controls when the workflow will run
6+
on:
7+
# Triggers the workflow on push or pull request events but only for the master branch
8+
push:
9+
branches: [ master ]
10+
pull_request:
11+
branches: [ master ]
12+
13+
# Allows you to run this workflow manually from the Actions tab
14+
workflow_dispatch:
15+
16+
jobs:
17+
runtest-win32:
18+
runs-on: windows-latest
19+
steps:
20+
- uses: actions/[email protected]
21+
22+
- name: Set up Python 3.12
23+
uses: actions/[email protected]
24+
with:
25+
python-version: '3.12'
26+
27+
- name: Install dependencies including ninja
28+
run: |
29+
python -m pip install --upgrade pip
30+
python -m pip install -r requirements-dev.txt
31+
32+
- name: runtest
33+
run: |
34+
python runtest.py --all --exclude-list=windows_ci_skip.txt --time --jobs=4
35+
36+
- name: Archive Failed tests
37+
uses: actions/[email protected]
38+
with:
39+
name: windows-failed-tests
40+
path: |
41+
failed_tests.log

.github/workflows/runtest.yml

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# This is a basic workflow to help you get started with Actions
22

3-
name: Linux Testing
3+
name: Full Test Suite on Linux
44

55
# Controls when the workflow will run
66
on:
@@ -15,25 +15,28 @@ on:
1515

1616
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
1717
jobs:
18-
# This workflow contains a single job called "build"
19-
build:
20-
18+
# This workflow contains a single job called "runtest"
19+
runtest:
2120
strategy:
21+
fail-fast: false
2222
matrix:
23-
os: ['ubuntu-22.04']
23+
os: ['ubuntu-22.04', 'ubuntu-24.04']
2424

25-
# The type of runner that the job will run on
2625
runs-on: ${{ matrix.os }}
2726

28-
# Steps represent a sequence of tasks that will be executed as part of the job
2927
steps:
3028
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
31-
- uses: actions/[email protected]
29+
- uses: actions/[email protected]
30+
31+
- name: Install Ubuntu packages $${matrix.os}}
32+
run: |
33+
sudo apt-get update
34+
sudo apt-get install libtirpc-dev
3235
33-
- name: Set up Python 3.10 ${{ matrix.os }}
34-
uses: actions/setup-python@v5.0.0
36+
- name: Set up Python 3.12 ${{ matrix.os }}
37+
uses: actions/setup-python@v5.1.0
3538
with:
36-
python-version: '3.10'
39+
python-version: '3.12'
3740

3841
- name: Install dependencies including ninja ${{ matrix.os }}
3942
run: |
@@ -43,10 +46,10 @@ jobs:
4346
4447
- name: runtest ${{ matrix.os }}
4548
run: |
46-
python runtest.py --all --time --jobs=2
49+
python runtest.py --all --time --jobs=4
4750
4851
- name: Archive Failed tests ${{ matrix.os }}
49-
uses: actions/upload-artifact@v3.1.3
52+
uses: actions/upload-artifact@v4.3.3
5053
with:
5154
name: ${{ matrix.os }}-failed-tests
5255
path: |

.github/workflows/scons-package.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,17 @@ on:
99
branches: [ master ]
1010

1111
jobs:
12-
build:
12+
package:
1313

14-
runs-on: ubuntu-20.04
14+
runs-on: ubuntu-24.04
1515

1616
steps:
17-
- uses: actions/[email protected].1
17+
- uses: actions/[email protected].6
1818

19-
- name: Set up Python 3.10
20-
uses: actions/setup-python@v5.0.0
19+
- name: Set up Python 3.12
20+
uses: actions/setup-python@v5.1.0
2121
with:
22-
python-version: '3.10'
22+
python-version: '3.12'
2323

2424
- name: Install dependencies
2525
run: |

CHANGES.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,7 @@ RELEASE VERSION/DATE TO BE FILLED IN LATER
125125
on a given page *before* the submodule docs, not after. Also
126126
tweaked the Util package doc build so it's structured more like the
127127
other packages (a missed part of the transition when it was split).
128+
- Updated manpage description of Command "builder" and function.
128129

129130

130131
RELEASE 4.7.0 - Sun, 17 Mar 2024 17:22:20 -0700

RELEASE.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,7 @@ DOCUMENTATION
123123
- Update manpage and user guide for Variables usage.
124124
- Restructured API Docs build so main package contents are listed
125125
before contents of package submodules.
126+
- Updated manpage description of Command "builder" and function.
126127

127128

128129

SCons/Builder.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -387,7 +387,7 @@ def __init__(self, action = None,
387387
target_scanner = None,
388388
source_scanner = None,
389389
emitter = None,
390-
multi: int = 0,
390+
multi: bool = False,
391391
env = None,
392392
single_source: bool = False,
393393
name = None,

SCons/Environment.py

Lines changed: 29 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -2208,52 +2208,44 @@ def Configure(self, *args, **kw):
22082208
return SCons.SConf.SConf(*nargs, **nkw)
22092209

22102210
def Command(self, target, source, action, **kw):
2211-
"""Builds the supplied target files from the supplied
2212-
source files using the supplied action. Action may
2213-
be any type that the Builder constructor will accept
2214-
for an action."""
2211+
"""Set up a one-off build command.
2212+
2213+
Builds *target* from *source* using *action*, which may be
2214+
be any type that the Builder factory will accept for an action.
2215+
Generates an anonymous builder and calls it, to add the details
2216+
to the build graph. The builder is not named, added to ``BUILDERS``,
2217+
or otherwise saved.
2218+
2219+
Recognizes the :func:`~SCons.Builder.Builder` keywords
2220+
``source_scanner``, ``target_scanner``, ``source_factory`` and
2221+
``target_factory``. All other arguments from *kw* are passed on
2222+
to the builder when it is called.
2223+
"""
2224+
# Build a kwarg dict for the builder construction
22152225
bkw = {
22162226
'action': action,
22172227
'target_factory': self.fs.Entry,
22182228
'source_factory': self.fs.Entry,
22192229
}
2220-
# source scanner
2221-
try:
2222-
bkw['source_scanner'] = kw['source_scanner']
2223-
except KeyError:
2224-
pass
2225-
else:
2226-
del kw['source_scanner']
2227-
2228-
# target scanner
2229-
try:
2230-
bkw['target_scanner'] = kw['target_scanner']
2231-
except KeyError:
2232-
pass
2233-
else:
2234-
del kw['target_scanner']
2235-
2236-
# source factory
2237-
try:
2238-
bkw['source_factory'] = kw['source_factory']
2239-
except KeyError:
2240-
pass
2241-
else:
2242-
del kw['source_factory']
22432230

2244-
# target factory
2245-
try:
2246-
bkw['target_factory'] = kw['target_factory']
2247-
except KeyError:
2248-
pass
2249-
else:
2250-
del kw['target_factory']
2231+
# Recognize these kwargs for the builder construction and take
2232+
# them out of the args for the subsequent builder call.
2233+
for arg in [
2234+
'source_scanner',
2235+
'target_scanner',
2236+
'source_factory',
2237+
'target_factory',
2238+
]:
2239+
try:
2240+
bkw[arg] = kw.pop(arg)
2241+
except KeyError:
2242+
pass
22512243

22522244
bld = SCons.Builder.Builder(**bkw)
22532245
return bld(self, target, source, **kw)
22542246

22552247
def Depends(self, target, dependency):
2256-
"""Explicity specify that 'target's depend on 'dependency'."""
2248+
"""Explicity specify that *target* depends on *dependency*."""
22572249
tlist = self.arg2nodes(target, self.fs.Entry)
22582250
dlist = self.arg2nodes(dependency, self.fs.Entry)
22592251
for t in tlist:
@@ -2281,7 +2273,7 @@ def PyPackageDir(self, modulename):
22812273
return self.fs.PyPackageDir(s)
22822274

22832275
def NoClean(self, *targets):
2284-
"""Tags a target so that it will not be cleaned by -c"""
2276+
"""Tag target(s) so that it will not be cleaned by -c."""
22852277
tlist = []
22862278
for t in targets:
22872279
tlist.extend(self.arg2nodes(t, self.fs.Entry))
@@ -2290,7 +2282,7 @@ def NoClean(self, *targets):
22902282
return tlist
22912283

22922284
def NoCache(self, *targets):
2293-
"""Tags a target so that it will not be cached"""
2285+
"""Tag target(s) so that it will not be cached."""
22942286
tlist = []
22952287
for t in targets:
22962288
tlist.extend(self.arg2nodes(t, self.fs.Entry))

0 commit comments

Comments
 (0)