Skip to content
Open
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
1 change: 0 additions & 1 deletion .appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -64,4 +64,3 @@ on_finish:
- ps: .\.appveyor\coverage_report.ps1
# running codecov in powershell causes an error so running in cmd
- cmd: .appveyor\codecov_upload.bat

2 changes: 1 addition & 1 deletion .appveyor/install.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ $toolPaths = @(
)

$env:PATH = ($pythonPaths + $toolPaths + @($env:PATH)) -join ';'
# Ensure we have the correct path to the python executable,
# Ensure we have the correct path to the python executable,
# explicitly avoiding MSYS/Cygwin versions.
$pythonExe = $null

Expand Down
4 changes: 2 additions & 2 deletions .codecov.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ coverage:
status:
project:
default:
# compare against the current coverage
# compare against the current coverage
# that PR is attempt to merge to
# don't consider a drop in coverage success
target: auto
Expand All @@ -38,7 +38,7 @@ coverage:

patch:
default:
# considering only the lines changed
# considering only the lines changed
# make sure all new lines in the PR are covered
# to consider a success
target: 100
Expand Down
2 changes: 2 additions & 0 deletions .git-blame-ignore-revs
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,5 @@ fbb026ef1145fe29e0ec3c1b66a3e99cac51e18d
c9d9fa58b796532320a2248ddc5be07b7280adf3
# Purge vim/emac variable bloat
ad7207090187a6cd2657cce00096cfc4bc9c3010
# Apply prek changes
c06d493e214482f31c69a1159850f50844bf1466
1 change: 0 additions & 1 deletion .github/FUNDING.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,3 @@

github: [bdbaddog, mwichmann]
patreon: bdbaddog

11 changes: 11 additions & 0 deletions .github/workflows/runtest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,17 @@ defaults:
shell: bash

jobs:
prek:
timeout-minutes: 10
runs-on: ubuntu-24.04

steps:
- name: Checkout
uses: actions/checkout@v6

- name: Style checks via prek
uses: j178/prek-action@v2

runtest:
strategy:
fail-fast: false
Expand Down
2 changes: 1 addition & 1 deletion .travis/verify_packages.sh
Original file line number Diff line number Diff line change
Expand Up @@ -29,4 +29,4 @@ if [[ $zip_man_files != $expected_man_file_count ]]; then
retval=3
fi

exit $retval
exit $retval
2 changes: 2 additions & 0 deletions CHANGES.txt
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@ RELEASE VERSION/DATE TO BE FILLED IN LATER
existing test environments into a single package. Adjusted AppVeyor to
only run for targets unsupported by GitHub runners.
- Split `SCons.Util.UtilTests.py` to individual packages where appropriate.
- Added `prek.toml` to support pre-commit hooks.
- Added prek job to `runtest.yml`, ensuring pre-commit hooks are enforced.

From William Deegan:
- Fix SCons Docbook schema to work with lxml > 5
Expand Down
1 change: 0 additions & 1 deletion NEWS.d/changes/4306.bugfix
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,3 @@
When debugging (--debug=pdb), the filenames SConstruct and SConscript
are now recognized when manipulating breakpoints. Previously, only a
full pathname worked, as otherwise pdb required a .py extension on files.

1 change: 0 additions & 1 deletion README-SF.rst
Original file line number Diff line number Diff line change
Expand Up @@ -613,4 +613,3 @@ many contributors, including but not at all limited to:
\... and many others.

Copyright (c) 2001 - 2026 The SCons Foundation

1 change: 0 additions & 1 deletion README-package.rst
Original file line number Diff line number Diff line change
Expand Up @@ -196,4 +196,3 @@ Check the SCons web site at https://scons.org


Copyright (c) 2001 - 2026 The SCons Foundation

3 changes: 3 additions & 0 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,9 @@ SCons - a Software Construction Tool
:target: https://github.com/SCons/scons/actions?query=workflow%3A%22SCons+Build%22
:alt: Github Actions

.. image:: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/j178/prek/master/docs/assets/badge-v0.json
:target: https://github.com/j178/prek
:alt: prek

What is SCons?
==============
Expand Down
3 changes: 3 additions & 0 deletions RELEASE.txt
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,9 @@ DEVELOPMENT

- Split `SCons.Util.UtilTests.py` to individual packages where appropriate.

- Added `prek.toml` to support pre-commit hooks.

- Added prek job to `runtest.yml`, ensuring pre-commit hooks are enforced.

Thanks to the following contributors listed below for their contributions to this release.
==========================================================================================
Expand Down
1 change: 0 additions & 1 deletion SCons/Node/FS.py
Original file line number Diff line number Diff line change
Expand Up @@ -3878,4 +3878,3 @@ def invalidate_node_memos(targets: str | Node | list[str | Node]) -> None:
EntryNode = Entry
DirNode = Dir
FileNode = File

1 change: 0 additions & 1 deletion SCons/Tool/GettextCommon.py
Original file line number Diff line number Diff line change
Expand Up @@ -428,4 +428,3 @@ def _msgfmt_exists(env):
def tool_list(platform, env):
""" List tools that shall be generated by top-level `gettext` tool """
return ['xgettext', 'msginit', 'msgmerge', 'msgfmt']

1 change: 0 additions & 1 deletion SCons/Tool/MSCommon/MSVC/Config.py
Original file line number Diff line number Diff line change
Expand Up @@ -393,4 +393,3 @@ def verify():
if vc_version not in MSVC_VERSION_INTERNAL:
err_msg = f'vc_version {vc_version!r} not in MSVC_VERSION_INTERNAL'
raise MSVCInternalError(err_msg)

1 change: 0 additions & 1 deletion SCons/Tool/MSCommon/MSVC/Exceptions.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,4 +53,3 @@ class MSVCSpectreLibsNotFound(MSVCUserError):

class MSVCArgumentError(MSVCUserError):
pass

1 change: 0 additions & 1 deletion SCons/Tool/MSCommon/MSVC/Policy.py
Original file line number Diff line number Diff line change
Expand Up @@ -327,4 +327,3 @@ def msvc_scripterror_policy_contextmanager(MSVC_SCRIPTERROR_POLICY=None):
prev_policy = msvc_set_scripterror_policy(MSVC_SCRIPTERROR_POLICY)
yield
msvc_set_scripterror_policy(prev_policy)

1 change: 0 additions & 1 deletion SCons/Tool/MSCommon/MSVC/PolicyTests.py
Original file line number Diff line number Diff line change
Expand Up @@ -166,4 +166,3 @@ def test_scripterror_handler_error(self) -> None:

if __name__ == "__main__":
unittest.main()

1 change: 0 additions & 1 deletion SCons/Tool/MSCommon/MSVC/Registry.py
Original file line number Diff line number Diff line change
Expand Up @@ -118,4 +118,3 @@ def vstudio_sxs_vc7(version):

def devdiv_vs_servicing_component(version, component):
return '\\'.join([r'DevDiv\VS\Servicing', version, component, 'Install'])

1 change: 0 additions & 1 deletion SCons/Tool/MSCommon/MSVC/RegistryTests.py
Original file line number Diff line number Diff line change
Expand Up @@ -80,4 +80,3 @@ def test_windows_kit_query_paths(self) -> None:

if __name__ == "__main__":
unittest.main()

1 change: 0 additions & 1 deletion SCons/Tool/MSCommon/MSVC/ScriptArguments.py
Original file line number Diff line number Diff line change
Expand Up @@ -1100,4 +1100,3 @@ def reset() -> None:
def verify() -> None:
debug('')
_verify_re_sdk_dispatch_map()

1 change: 0 additions & 1 deletion SCons/Tool/MSCommon/MSVC/ScriptArgumentsTests.py
Original file line number Diff line number Diff line change
Expand Up @@ -668,4 +668,3 @@ def test_reset(self) -> None:

if __name__ == "__main__":
unittest.main()

1 change: 0 additions & 1 deletion SCons/Tool/MSCommon/MSVC/SetupEnvDefault.py
Original file line number Diff line number Diff line change
Expand Up @@ -233,4 +233,3 @@ def register_iserror(env, tool, msvc_exists_func):
def reset() -> None:
debug('')
_Data.reset()

1 change: 0 additions & 1 deletion SCons/Tool/MSCommon/MSVC/Util.py
Original file line number Diff line number Diff line change
Expand Up @@ -491,4 +491,3 @@ def msvc_sdk_version_components(version):
)

return msvc_sdk_version_components_def

1 change: 0 additions & 1 deletion SCons/Tool/MSCommon/MSVC/UtilTests.py
Original file line number Diff line number Diff line change
Expand Up @@ -289,4 +289,3 @@ def test_msvc_sdk_version_components(self) -> None:

if __name__ == "__main__":
unittest.main()

1 change: 0 additions & 1 deletion SCons/Tool/MSCommon/MSVC/Warnings.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,4 +32,3 @@ class VisualCWarning(SCons.Warnings.WarningOnByDefault):

class MSVCScriptExecutionWarning(VisualCWarning):
pass

1 change: 0 additions & 1 deletion SCons/Tool/MSCommon/MSVC/WinSDK.py
Original file line number Diff line number Diff line change
Expand Up @@ -261,4 +261,3 @@ def reset() -> None:
def verify() -> None:
debug('')
_verify_sdk_dispatch_map()

1 change: 0 additions & 1 deletion SCons/Tool/MSCommon/MSVC/WinSDKTests.py
Original file line number Diff line number Diff line change
Expand Up @@ -129,4 +129,3 @@ def test_reset(self) -> None:

if __name__ == "__main__":
unittest.main()

1 change: 0 additions & 1 deletion SCons/Tool/MSCommon/MSVC/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,4 +53,3 @@ def _reset() -> None:

def _verify() -> None:
_Dispatcher.verify()

1 change: 0 additions & 1 deletion SCons/Tool/MSCommon/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -752,4 +752,3 @@ into the current document format as appropriate.
- Since msvc_exists chain of calls does not look at version, we
can proceed to compiler setup if *any* msvc was found, even if the
one requested wasn't found.

1 change: 0 additions & 1 deletion SCons/Tool/MSCommon/vc.py
Original file line number Diff line number Diff line change
Expand Up @@ -2883,4 +2883,3 @@ def msvc_query_version_toolset(version=None, prefer_newest: bool=True, vswhere_e

# internal consistency check (should be last)
MSVC._verify()

2 changes: 1 addition & 1 deletion SCons/Tool/clangCommon/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,4 @@ def get_clang_install_dirs(platform):
if platform == 'win32':
return clang_win32_dirs
else:
return []
return []
1 change: 0 additions & 1 deletion SCons/Tool/docbook/docs/html.xsl
Original file line number Diff line number Diff line change
Expand Up @@ -33,4 +33,3 @@ set toc,title
</xsl:param>

</xsl:stylesheet>

1 change: 0 additions & 1 deletion SCons/Tool/docbook/docs/pdf.xsl
Original file line number Diff line number Diff line change
Expand Up @@ -39,4 +39,3 @@ set toc,title
</xsl:template>

</xsl:stylesheet>

2 changes: 1 addition & 1 deletion SCons/Tool/javacTests.py
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ def test_default_unset(self) -> None:
['-foopath', '/foo'],
'/foo',
'')

def test_list_within_list(self) -> None:
self.assert_pathopt(['-foopath', os.pathsep.join(['/foo','/bar'])],
['/foo', ['/bar']])
Expand Down
7 changes: 3 additions & 4 deletions SCons/Tool/linkCommon/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,15 +40,15 @@ Which will have a soname baked into it as one of the
* `${SHLIBPREFIX}lib_name${major version only from SHLIBVERSION}${SHLIBSUFFIX}`
* `-Wl,-compatibility_version,%s`
* `-Wl,-current_version,%s`

For **applelink** the version has to follow these rules to verify that the version # is valid.

* For version # = X[.Y[.Z]]
* where X 0-65535
* where Y either not specified or 0-255
* where Z either not specified or 0-255


For most platforms this will lead to a series of symlinks eventually pointing to the actual shared library (or loadable module file).
1. `${SHLIBPREFIX}lib_name${SHLIBSUFFIX} -> ${SHLIBPREFIX}lib_name${SHLIBVERSION}${SHLIBSUFFIX}`
1. `${SHLIBPREFIX}lib_name${SOVERSION}${SHLIBSUFFIX} -> ${SHLIBPREFIX}lib_name${SHLIBVERSION}${SHLIBSUFFIX}`
Expand Down Expand Up @@ -84,6 +84,5 @@ Maybe we can force one at that point?
SOVERSION can be specified, if not, then defaults to major portion of SHLIBVERSION
SONAME can be specified, if not defaults to ${SHLIBPREFIX}lib_name${SOVERSION}

NOTE: mongodb uses Append(SHLIBEMITTER=.. ) for their libdeps stuff. (So test
NOTE: mongodb uses Append(SHLIBEMITTER=.. ) for their libdeps stuff. (So test
with that once you have new logic working)

2 changes: 1 addition & 1 deletion SCons/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,4 @@
__revision__="9573362eaf4dadc6368ad27a75bc2790a3e5e813"
__build__="9573362eaf4dadc6368ad27a75bc2790a3e5e813"
# make sure compatibility is always in place
import SCons.compat # noqa
import SCons.compat # noqa
1 change: 0 additions & 1 deletion bench/time_member.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,4 +46,3 @@ def test_no_find_method() -> bool:
print(f'.find() method time: {time_find:.6f} seconds')
print(f'"not in" operator time: {time_not_in:.6f} seconds')
print(f'.find() method time: {time_no_find:.6f} seconds')

22 changes: 11 additions & 11 deletions bin/check_new_contributors.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ def get_contributors_since(tag: str) -> Set[Tuple[str, str]]:
# Format: Name|Email
cmd = ['git', 'log', f'{tag}..HEAD', '--format=%aN|%aE']
output = get_git_output(cmd)

contributors = set()
if output:
for line in output.split('\n'):
Expand All @@ -72,7 +72,7 @@ def get_prior_emails(tag: str) -> Set[str]:
print("Gathering prior contributors (this may take a moment)...")
cmd = ['git', 'log', tag, '--format=%aE']
output = get_git_output(cmd)

prior_emails = set()
if output:
for line in output.split('\n'):
Expand Down Expand Up @@ -102,30 +102,30 @@ def main() -> None:

# Get all prior emails
prior_emails = get_prior_emails(args.tag)

# Prepare data for display with deduplication
# Map: display_name -> is_new (boolean)
contributor_status: Dict[str, bool] = {}

for name, email in recent_contributors:
display_name = name if name else email
is_new_email = email.lower() not in prior_emails

if display_name not in contributor_status:
contributor_status[display_name] = is_new_email
else:
# If the contributor was previously marked as new, but this email
# If the contributor was previously marked as new, but this email
# is NOT new, then the contributor is not new.
# If they were already marked as not new, they stay not new.
if contributor_status[display_name] and not is_new_email:
contributor_status[display_name] = False

# Convert to list for sorting and display
display_list = [(name, is_new) for name, is_new in contributor_status.items()]

# Sort by display name (case insensitive)
display_list.sort(key=lambda x: x[0].lower())

# Calculate max length for alignment
if display_list:
max_length = max(len(x[0]) for x in display_list)
Expand All @@ -134,7 +134,7 @@ def main() -> None:

print(f"\nContributors since {args.tag}:")
print("-" * 40)

for display_name, is_new in display_list:
# Align left with padding
if is_new:
Expand All @@ -143,4 +143,4 @@ def main() -> None:
print(f"{display_name}")

if __name__ == "__main__":
main()
main()
2 changes: 1 addition & 1 deletion bin/scp-sourceforge
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/bin/bash
set -x
set -x
set -e

if [ -z "$1" ]; then
Expand Down
2 changes: 1 addition & 1 deletion bin/xml_export
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,7 @@ in all copies or substantial portions of the Software.
2. Neither the names of VA Software Corporation, OSDN, SourceForge.net,
the SourceForge.net Site Documentation project, nor the names of its
contributors may be used to endorse or promote products derived from
the Software without specific prior written permission of OSDN.
the Software without specific prior written permission of OSDN.

3. The name and trademarks of copyright holders may NOT be used in
advertising or publicity pertaining to the Software without specific,
Expand Down
2 changes: 0 additions & 2 deletions bin/xml_export-README
Original file line number Diff line number Diff line change
Expand Up @@ -52,5 +52,3 @@ of the provided manual.

The authoritative source of this software is:
https://sourceforge.net/projects/sitedocs


Loading
Loading