[Scons-dev] [Scons-users] SCons 4.0.0 Released
Bill Deegan
bill at baddogconsulting.com
Sun Jul 5 11:54:52 EDT 2020
Thanks!
Well at least there's an easy work around for now.
On Sun, Jul 5, 2020 at 7:30 AM Eric Fahlgren <ericfahlgren at gmail.com> wrote:
> Bill,
>
> Issue filed along with some further experiments.
> https://github.com/SCons/scons/issues/3736
>
> I vaguely remember playing with the case-sensitivity options in Windows on
> this machine years ago, so I tested everything on another machine where
> Windows is pristine, but no joy, same issue presented in the same manner
> there, too.
>
> Eric
>
> On Sat, Jul 4, 2020 at 9:48 PM Bill Deegan <bill at baddogconsulting.com>
> wrote:
>
>> Eric,
>>
>> 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.. ;)
>>
>> -Bill
>>
>> 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
>>> _run_module_as_main
>>> 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>
>>> SCons.Script.main()
>>> 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>
>>> wrote:
>>>
>>>> A new SCons release, 4.0.0, is now available
>>>> on the SCons download page:
>>>>
>>>> https://scons.org/pages/download.html
>>>>
>>>> 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 determine
>>>> 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
>>>> "--tree"
>>>> 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, #else,
>>>> #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
>>>> forward.
>>>> - 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
>>>> SHLIBVERSIONFLAGS
>>>> NOTE: If your build depends on the above you must now add to your
>>>> SHLIBVERSIONFLAGS
>>>> - 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
>>>> support
>>>> for a per-variant cppflags. Intellisense can be affected by
>>>> cppflags,
>>>> this is especially important when it comes to /std:c++* which
>>>> specifies
>>>> what C++ standard version to target. SCons will append
>>>> /Zc:__cplusplus
>>>> 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
>>>> cppflags.
>>>> - 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
>>>> requested.
>>>> (GH Issue #3699).
>>>> - MSVC updates: pass on VSCMD_DEBUG and VSCMD_SKIP_SENDTELEMETRY to
>>>> msvc
>>>> 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
>>>> tool.
>>>> - 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()).
>>>>
>>>> FIXES
>>>>
>>>> - Cleanup dangling symlinks before running builders (Issue #3516)
>>>> - Fixed usage of abspath and path for RootDir objects on Windows.
>>>> Previously
>>>> 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,
>>>>
>>>> conftest_68b375d16e812c43e6d72d6e93401e7c_0_5713f09fc605f46b2ab2f7950455f187.o
>>>> or
>>>> conftest_68b375d16e812c43e6d72d6e93401e7c_0.o
>>>>
>>>> conftest_68b375d16e812c43e6d72d6e93401e7c_0_5713f09fc605f46b2ab2f7950455f187
>>>> (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
>>>>
>>>> IMPROVEMENTS
>>>>
>>>> - Improve performance of Subst by preventing unnecessary frame
>>>> allocations by no longer defining the *Subber classes inside of
>>>> their
>>>> 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.
>>>>
>>>> PACKAGING
>>>>
>>>> - 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.
>>>>
>>>> DOCUMENTATION
>>>>
>>>> - 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
>>>> https://pairlist4.pair.net/mailman/listinfo/scons-users
>>>>
>>> _______________________________________________
>>> Scons-dev mailing list
>>> Scons-dev at scons.org
>>> https://pairlist2.pair.net/mailman/listinfo/scons-dev
>>>
>> _______________________________________________
>> Scons-users mailing list
>> Scons-users at scons.org
>> https://pairlist4.pair.net/mailman/listinfo/scons-users
>>
> _______________________________________________
> Scons-dev mailing list
> Scons-dev at scons.org
> https://pairlist2.pair.net/mailman/listinfo/scons-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist2.pair.net/pipermail/scons-dev/attachments/20200705/a2766d92/attachment-0001.html>
More information about the Scons-dev
mailing list