[Scons-users] [Scons-dev] SCons 4.0.0 Released
bill at baddogconsulting.com
Sun Jul 5 00:47:56 EDT 2020
Try pip install SCons==4.0
Does that make a difference?
Packaging has been completely rewritten for 4.0.0 so I'm not surprised
there's an issue or two in the field.
(the previous code was written before there was a pip... ;) and then
duct-taped and bailing wired.. so it needed a rewrite)
Ahh. Interesting because windows is case insensitive..
Please file an Issue.
Hoping to take a break tomorrow and I'll look at it on monday.. unless
someone else feels like taking a wack at fixing that.. ;)
On Sat, Jul 4, 2020 at 7:41 PM Eric Fahlgren <ericfahlgren at gmail.com> wrote:
> First, Bill and Mats and everyone else, thanks for your continued
> development of SCons!
> I ran into a strange, probably Windows-specific issue upon installing
> 4.0.0. I simply did "pip install scons==4.0.0" without issue, but when I
> ran "scons some_target", I got this:
> Traceback (most recent call last):
> File "c:\program files\python38\lib\runpy.py", line 194, in
> return _run_code(code, main_globals, None,
> File "c:\program files\python38\lib\runpy.py", line 87, in _run_code
> exec(code, run_globals)
> File "C:\Program Files\Python38\Scripts\scons.exe\__main__.py", line 4,
> in <module>
> ModuleNotFoundError: No module named 'SCons'
> It turns out that pip didn't name the installation directory
> "site-packages/*SCons*", but rather all-lower-case "site-packages/*scons*"
> (as it was with 3.1.2), so none of the run commands, scripts or tools will
> load. I did "pip uninstall -y scons", made sure Lib/site-packages was
> clean, reinstalled 4.0.0 and everything was fine. It appears that pip is
> not removing the old installation completely and leaving the top-level
> directory there with improper character case, but only when it does an
> "install over old". I reproduced this a couple times, reinstalling 3.1 and
> then 4.0 over it to confirm.
> On Sat, Jul 4, 2020 at 3:57 PM Bill Deegan <bill at baddogconsulting.com>
>> A new SCons release, 4.0.0, is now available
>> on the SCons download page:
>> Here is a summary of the changes since 3.1.2:
>> NEW FUNCTIONALITY
>> - Added support for scanning multiple entries in an action string if
>> IMPLICIT_COMMAND_DEPENDENCIES is set to 2 or 'all'. This enables
>> more thorough
>> action scanning where every item in each command line is scanned to
>> if it is a non-source and non-target path and added to the list of
>> implicit dependencies
>> for the target.
>> - Added new module SCons.Scanner.Python to allow scanning .py files.
>> - Added support for explicitly passing a name when creating Value()
>> nodes. This may be useful
>> when the value can't be converted to a string or if having a name
>> is otherwise desirable.
>> - Added a new flag called "linedraw" for the command line argument
>> that instructs scons to use single line drawing characters to draw
>> the dependency tree.
>> - Add CompilationDatabase() builder in compilation_db tool.
>> Contributed by MongoDB.
>> Setting COMPILATIONDB_USE_ABSPATH to True|False controls whether
>> the files are absolute or relative
>> paths. Address Issue #3693 and #3694 found during development.
>> - Extended `Environment.Dump()` to select a format to serialize
>> construction variables (pretty, json).
>> - New conditional C Scanner (`SCons.Scanner.C.CConditionalScanner()`)
>> which interprets C/C Preprocessor conditional syntax (#ifdef, #if,
>> #elif, #define, etc.)
>> - Experimental New Feature: Enable caching MSVC configuration
>> If SCONS_CACHE_MSVC_CONFIG shell environment variable is set,
>> SCons will cache the results of past calls to vcvarsall.bat to
>> a file; integrates with existing memoizing of such vars.
>> - Preliminary Python 3.9 support.
>> DEPRECATED FUNCTIONALITY
>> - Drop support for Python 2.7. SCons will be Python 3.5+ going
>> - Remove deprecated SourceCode()
>> CHANGED/ENHANCED EXISTING FUNCTIONALITY
>> - Added check for SONAME in environment to setup symlinks correctly
>> (Github Issue #3246)
>> - Resolve Issue #3248 - Removing '-Wl,-Bsymbolic' from
>> NOTE: If your build depends on the above you must now add to your
>> - Microsoft Visual Studio - switch to using uuid module to generate
>> GUIDs rather than hand rolled
>> method using md5 directly.
>> NOTE: This change affects the following builders' output. If your
>> build depends on the output of these builders
>> you will likely see a rebuild.
>> * Package() (with PACKAGETYPE='msi')
>> * MSVSSolution()
>> * MSVSProject()
>> - Improve Visual Studio solution/project generation code to add
>> for a per-variant cppflags. Intellisense can be affected by
>> this is especially important when it comes to /std:c++* which
>> what C++ standard version to target. SCons will append
>> to the project's cppflags when a /std:c++* flag is found as this is
>> required for intellisense to use the C++ standard version from
>> - Allow user specified location for vswhere.exe specified by VSWHERE.
>> NOTE: This must be set at the time the 'msvc' 'msvs' and/or
>> 'mslink' tool(s) are initialized to have any effect.
>> - Fixed Github Issue 3628 - Hardcoding pickle protocol to 4 (supports
>> python 3.4+)
>> and skipping Python 3.8's new pickle protocol 5 whose main
>> advantage is for out-of-band data buffers.
>> NOTE: If you used Python 3.8 with SCons 3.0.0 or above, you may get
>> a a pickle protocol error. Remove your
>> .sconsign.dblite. You will end up with a full rebuild.
>> - MSVC updates: When there are multiple product installations (e.g,
>> Community and
>> Build Tools) of MSVC 2017 or MSVC 2019, an Enterprise, Professional,
>> or Community installation will be selected before a Build Tools
>> installation when
>> "14.1" or "14.2" is requested, respectively. (GH Issue #3699).
>> - MSVC updates: When there are multiple product installations of MSVC
>> 2017 (e.g.,
>> Community and Express), 2017 Express is no longer returned when
>> "14.1" is
>> requested. Only 2017 Express will be returned when "14.1Exp" is
>> (GH Issue #3699).
>> - MSVC updates: pass on VSCMD_DEBUG and VSCMD_SKIP_SENDTELEMETRY to
>> tool setup if set in environment. Add Powershell to default env
>> (used to call telemetry script).
>> - Renamed as.py to asm.py and left redirecting tool. 'as' is a
>> reserved word and so
>> changing the name was required as we wanted to import symbols for
>> use in compilation_db
>> - Add no_progress (-Q) option as a set-able option. However, setting
>> it in the
>> SConstruct/SConscript will still cause "scons: Reading SConscript
>> files ..." to be
>> printed, since the option is not set when the build scripts first
>> get read.
>> - Docbook builder provides a fallback if lxml fails to generate
>> a document with tostring().
>> - SubstitutionEnvironment and OverrideEnvironment now have keys()
>> and values() methods to better emulate a dict (already had items()).
>> - Cleanup dangling symlinks before running builders (Issue #3516)
>> - Fixed usage of abspath and path for RootDir objects on Windows.
>> env.fs.Dir("T:").abspath would return "T:\T:" and now it correctly
>> returns "T:".
>> - Fix Issue #3469 - Fixed improper reuse of temporary and compiled
>> files by Configure when changing
>> the order and/or number of tests. This is done by using the hash
>> of the generated temporary files
>> content and (For the target files) the hash of the action.
>> So where previously files would be named:
>> - config_1.c, config_1.o, config_1
>> The will now be named (For example)
>> - conftest_68b375d16e812c43e6d72d6e93401e7c_0.c,
>> (for executable)
>> - Updated documentation toolchain to work properly under Python3, also
>> removed libxslt support from the Docbook Tool. (issue #3580)
>> - Fix broken clang + MSVC 2019 combination by using MSVC
>> configuration logic to
>> propagate 'VCINSTALLDIR' and 'VCToolsInstallDir' which clang tools
>> use to locate
>> header files and libraries from MSVC install. (Fixes GH Issue #3480)
>> - Fix Github Issue #2904 - Provide useful error message when more
>> than one Configure Contexts are opened.
>> Only one open is allowed. You must call conf.Finish() to complete
>> the currently open one before creating another
>> - Improve performance of Subst by preventing unnecessary frame
>> allocations by no longer defining the *Subber classes inside of
>> respective function calls.
>> - Improve performance of Subst in some cases by preventing
>> unnecessary calls to eval when a token is surrounded in braces
>> but is not a function call.
>> - Improve performance of subst by removing unnecessary recursion.
>> - Resolve Issue #3451 and Issue #3450 - Rewrite SCons setup.py and
>> packaging. Move script logic to entry points so
>> package can create scripts which use the correct version of Python.
>> - Significant rework of documentation: API docs are now generated
>> using Sphinx; manpage and user guide now use more "standard"
>> markup elements (which could facilitate later conversion to a
>> different doc format, should that choice be made); significant
>> rewordings in manpage. Manpage Examples moved to an external
>> repository / website (scons-cookbook.readthedocs.io).
>> Thanks to the following contributors listed below for their
>> contributions to this release.
>> git shortlog --no-merges -ns 3.1.2..HEAD
>> 290 William Deegan
>> 184 Mats Wichmann
>> 46 Adam Gross
>> 22 Daniel Moody
>> 16 Joseph Brill
>> 15 Dirk Baechle
>> 12 Ivan Kravets
>> 9 Mathew Robinson
>> 6 Paul Tipei
>> 1 Rob Boehne
>> 1 Robert Boehne
>> 1 Daniel
>> 1 Andrew Morrow
>> 1 Iosif Daniel Kurazs
>> 1 James Benton
>> 1 Jeremy Elson
>> 1 Konstantin Gonchar
>> 1 Andrii Doroshenko (Xrayez)
>> Scons-users mailing list
>> Scons-users at scons.org
> Scons-dev mailing list
> Scons-dev at scons.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Scons-users