Skip to content

Commit

Permalink
post release updates
Browse files Browse the repository at this point in the history
  • Loading branch information
bdbaddog committed Nov 20, 2023
1 parent 70bcde6 commit 0265b1a
Show file tree
Hide file tree
Showing 7 changed files with 42 additions and 152 deletions.
7 changes: 7 additions & 0 deletions CHANGES.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,13 @@
NOTE: The 4.0.0 Release of SCons dropped Python 2.7 Support
NOTE: 4.3.0 now requires Python 3.6.0 and above. Python 3.5.x is no longer supported

RELEASE VERSION/DATE TO BE FILLED IN LATER

From John Doe:

- Whatever John Doe did.


RELEASE 4.6.0 - Sun, 19 Nov 2023 17:22:20 -0700

From Max Bachmann:
Expand Down
171 changes: 27 additions & 144 deletions RELEASE.txt
Original file line number Diff line number Diff line change
@@ -1,182 +1,65 @@
A new SCons release, 4.6.0, is now available on the SCons download page:
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.6.1, is now available on the SCons download page:

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


Here is a summary of the changes since 4.5.2:
Here is a summary of the changes since 4.6.0:

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

- D compilers : added support for generation of .di interface files.
New variables DI_FILE_DIR, DI_FILE_DIR_PREFIX, DI_FILE_DIR_SUFFIX,
DI_FILE_SUFFIX.
- MSVC: If available, native arm64 tools will be used on arm64 hosts for VS2022.
- MSVC: If necessary, automatically define VSCMD_SKIP_SENDTELEMETRY for VS2019 and later
on arm64 hosts when using an arm (32-bit) build of python to prevent a powershell
error pop-up window (powershell dll not found).
- Add a LIBLITERALPREFIX variable which can be set to the linker's
prefix for considering a library argument unmodified (e.g. for the
GNU linker, the ':' in '-l:libfoo.a'). Fixes Github issue #3951.
- 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
---------------------------------------

- When debugging (--debug=pdb), the filenames SConstruct and SConscript
are now recognized when manipulating breakpoints. Previously,
only a full pathname to an sconscript file worked, as pdb requires
a .py extension to open a file that is not an absolute path.
- Three unused non-public methods of the Environment Base class
were dropped: get_src_sig_type, get_tgt_sig_type, _changed_source.
These were unused remnants of the previously removed SourceSignatures
and TargetSignatures features (dropped in 3.1.2).
- The --debug flag now has a 'json' option which will write information
generated by --debug={count, memory, time, action-timestamps} and about
the build.
- Obsoleted YACCVCGFILESUFFIX, it's being replaced by YACC_GRAPH_FILE_SUFFIX.
If YACC_GRAPH_FILE_SUFFIX is not set, it will respect YACCVCGFILESUFFIX.
- The yacc tool now understands the bison behavior of --header, --defines
and --graph being called without an option-argument as being synonyms
for -d (first two) and -g. -H also recognized as a synonym for -d.
Default value for $YACC_GRAPH_FILE_SUFFIX changed to '.gv' to match
current bison default (since bison 3.8). Set this variable to '.dot'
if using byacc. Fixes #4326 and #4327.
- MSVC: When trying to find a valid msvc batch file, the existence of the msvc compiler
executable is verified for VS6 to VS2015 to avoid executing the msvc batch file when
the host/target tool is known not to be present. Always check that the msvc compiler
executable is found on the msvc script environment path after running the msvc batch
file. This is predominately needed for recent versions of Visual Studio where the msvc
batch file exists but an individual msvc toolset may not support the host/target
architecture combination. For example, when using VS2022 on arm64, the arm64 native
tools are only installed for the 14.3x toolsets.
- MSVC: When the msvc compiler executable is not found during setup of the msvc
environment, the warning message issued takes into account whether or not a
possibly erroneous compiler executable was already present in the scons environment
path. See CHANGES.txt for details.
- Extend range of recognized Java versions to 20.
- Builder calls (like Program()) now accept pathlib objects in source lists.
- The Help() function now takes an additional keyword argument keep_local:
when starting to build a help message, you can now retain help from AddOption
calls (options added for the project_, but omit help for SCons' own cmdline
options with "Help(newtext, append=True, local_only=True)".
- Calling SConscript() with a nonexistent file is now an error.
Previously this succeeded - prior to SCons 3.0, silently; since 3.0, with
a warning. Developers can still instruct such an SConscript() call not
to fail by being explicit: pass keyword argument "must_exist=False".
The "--warn=missing-sconscript" commandline option is no longer available
as the warning was part of the transitional phase.
- Add missing directories to searched paths for mingw installs
- SCons.Util.types renamed to to SCons.Util.sctypes to avoid any possible
confusion with the Python stdlib "types" module. Note that it was briefly
(for 4.5.x only) possible to import directly from SCons.Util.types,
although the preferred usage remains to import from SCons.Util only.
Any code that did the direct import will have to change to import from
SCons.Util.sctypes.
- Add JDK 21 LTS support
- The newly added --debug=sconscript option (new) will output notices when
entering an exiting each SConscript as they are processed.
- List modifications to existing features, where the previous behavior
wouldn't actually be considered a bug

FIXES
-----

- Fixed: when using the mingw tool, if an msys2 Python is used (os.sep
is '/' rather than the Windows default '\'), certain Configure checks
could fail due to the construction of the path to run the compiled check.
- C scanner's dictifyCPPDEFINES routine did not understand the possible
combinations of CPPDEFINES - not aware of a "name=value" string either
embedded in a sequence, or by itself. The conditional C scanner thus
did not always properly apply the defines. The regular C scanner does
not use these, so was not affected. [fixes #4193]
- MSVC: The installed msvc list is calculated once and cached. There was an indirect
dependency on the target architecture when determining if each version of msvc
was installed based on the initial invocation. It was possible that an msvc instance
would not be considered installed due to the tools for the requested target
architecture not being installed. The initial call to construct the installed msvc
list now uses an undefined target architecture to evaluate all potential host/target
combinations when evaluating if the msvc tools are installed for a given Visual Studio
installation.
- MSVC: Erroneous construction of the installed msvc list (as described above) caused an
index error in the msvc support code. An explicit check was added to prevent indexing
into an empty list. Fixes #4312.
- MSVC: The search for the msvc compiler executable (cl.exe) no longer inspects the
OS system path in certain situations when setting up the msvc environment.
- MSCommon: Test SConfTests.py would fail when mscommon debugging was enabled via the
MSVC_MSCOMMON_DEBUG environment variable. The mscommon logging filter class registered
with the python logging module was refactored to prevent test failure.
- MSVS: Add arm64 to the MSVS supported architectures list for VS2017 and later to be
consistent with the current documentation of MSVS_ARCH.
- FORTRAN: Fix gfortran tool initialization. Defaults to using binary named gfortran
as would be expected, and properly set's SHFORTRAN flags to include -fPIC
where previously it was only doing so for the other fortran versions (F77,..)
- MSCommon: Added more error handling while reading msvc config cache.
(Enabled/specified by SCONS_CACHE_MSVC_CONFIG).
The existing cache will be discarded if there's a decode error reading it.
It's possible there's a race condition creating this issue it in certain CI builds.
- Fixed: race condition in `Mkdir` which can happen when two `SConscript`
are processed simultaneously by two separate build commands.
- List fixes of outright bugs

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

- Now tries to find mingw if it comes from Chocolatey install of msys2.
- MSVC: Module imports were changed from a relative import to a top-level
absolute import in the following Microsoft tools: midl, mslib, mslink, mssdk, msvc,
msvs. Moving any of these tools that used relative imports to the scons site tools
folder would fail on import (i.e., the relative import paths become invalid when
moved).
- 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
---------

- The build of scons now matches the help text displayed - the targets
listed there can all now be given as a target to build (except for
the two full source balls; the source tar.gz is currently generated directly
by the GitHub release process).
- List changes in the way SCons is packaged and/or released

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

- Aligned manpage signature for Alias function to match implementation -
if the previous *targets* parameter had been used as a keyword argument,
the results would be incorrect (does not apply to positional argument
usage, which had no problem).
- Changed the message about scons -H to clarify it shows built-in options only.
- Cachedir description updated.
- Updated the first two chapters on building with SCons in the User Guide.
- Clarify that exported variables are shared - if mutable, changes made in
an SConscript are visible everywhere that takes a refereence to that object.
- Update PCH builder docs with some usage notes.
- 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
-----------

- SCons test runner now uses pathlib to normalize and compare paths
to test files, which allows test lists, exclude lists, and tests on
the command line to "not care" about the OS convention for pathname
separators.
- Class ActionBase is now an abstract base class to more accurately
reflect its usage. Derived _ActionAction inherits the ABC, so it
now declares (actually raises NotImplementedError) two methods it
doesn't use so it can be instantiated by unittests and others.
- Added more type annotations to internal routines.
- Cleaned up dblite module (checker warnings, etc.).
- TeX tests: skip tests that use makeindex or epstopdf not installed, or
if `kpsewhich glossaries.sty` fails.
- 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.5.2..HEAD
97 Mats Wichmann
39 William Deegan
20 Joseph Brill
12 Alex Burton
4 StenGruener
2 Jonathon Reinhart
2 LiuYinCarl
2 Max Bachmann
1 Kenshin
1 Shohei YOSHIDA
1 Vitaly Cheptsov
git shortlog --no-merges -ns 4.0.1..HEAD
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,6,0)
version_tuple = (4, 7, 0, 'a', 0)

# 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.6.0"
__version__="4.6.1"
__copyright__="Copyright (c) 2001 - 2023 The SCons Foundation"
__developer__="bdbaddog"
__date__="Sun, 19 Nov 2023 17:22:20 -0700"
__date__="Sun, 19 Nov 2023 17:54:10 -0700"
__buildsys__="M1Dog2021"
__revision__="e5eef322a4a727b96358a436dca46e8085ac8692"
__build__="e5eef322a4a727b96358a436dca46e8085ac8692"
__revision__="70bcde6f38478a85a552ee624baaa2beb7b2bb92"
__build__="70bcde6f38478a85a552ee624baaa2beb7b2bb92"
# make sure compatibility is always in place
import SCons.compat # noqa
2 changes: 1 addition & 1 deletion SConstruct
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ copyright_years = strftime('2001 - %Y')
# This gets inserted into the man pages to reflect the month of release.
month_year = strftime('%B %Y')
project = 'scons'
default_version = '4.6.0'
default_version = '4.6.1'
copyright = f"Copyright (c) {copyright_years} The SCons Foundation"

# We let the presence or absence of various utilities determine whether
Expand Down
2 changes: 1 addition & 1 deletion doc/user/main.xml
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@

<corpauthor>The SCons Development Team</corpauthor>

<pubdate>Released: Mon, 21 Mar 2023 12:25:39 -0400</pubdate>
<pubdate>Released: Mon, 19 Nov 2023 17:52:53 -0700</pubdate>

<copyright>
<year>2004 - 2023</year>
Expand Down
2 changes: 1 addition & 1 deletion testing/framework/TestSCons.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@
# here provides some independent verification that what we packaged
# conforms to what we expect.

default_version = '4.5.3ayyyymmdd'
default_version = '4.7.0ayyyymmdd'

# TODO: these need to be hand-edited when there are changes
python_version_unsupported = (3, 6, 0)
Expand Down

0 comments on commit 0265b1a

Please sign in to comment.