|
1 | | - A new SCons release, 4.0.0, is now available |
| 1 | + A new SCons checkpoint release, 2.0.0.beta.yyyymmdd, is now available |
2 | 2 | on the SCons download page: |
3 | 3 |
|
4 | 4 | https://scons.org/pages/download.html |
5 | 5 |
|
6 | | - Here is a summary of the changes since 3.1.2: |
| 6 | + XXX The primary purpose of this release ... XXX |
| 7 | + |
| 8 | + A SCons "checkpoint release" is intended to provide early access to |
| 9 | + new features so they can be tested in the field before being released |
| 10 | + for adoption by other software distributions. |
| 11 | + |
| 12 | + Note that a checkpoint release is developed using the same test-driven |
| 13 | + development methodology as all SCons releases. Existing SCons |
| 14 | + functionality should all work as it does in previous releases (except |
| 15 | + for any changes identified in the release notes) and early adopters |
| 16 | + should be able to use a checkpoint release safely for production work |
| 17 | + with existing SConscript files. If not, it represents not only a bug |
| 18 | + in SCons but also a hole in the regression test suite, and we want to |
| 19 | + hear about it. |
| 20 | + |
| 21 | + New features may be more lightly tested than in past releases, |
| 22 | + especially as concerns their interaction with all of the other |
| 23 | + functionality in SCons. We are especially interested in hearing bug |
| 24 | + reports about new functionality. |
| 25 | + |
| 26 | + We do not recommend that downstream distributions (Debian, Fedora, |
| 27 | + etc.) package a checkpoint release, mainly to avoid confusing the |
| 28 | + "public" release numbering with the long checkpoint release names. |
| 29 | + |
| 30 | + Here is a summary of the changes since 1.3.0: |
7 | 31 |
|
8 | 32 | NEW FUNCTIONALITY |
9 | 33 |
|
10 | | - - Added support for scanning multiple entries in an action string if |
11 | | - IMPLICIT_COMMAND_DEPENDENCIES is set to 2 or 'all'. This enables more thorough |
12 | | - action scanning where every item in each command line is scanned to determine |
13 | | - if it is a non-source and non-target path and added to the list of implicit dependencies |
14 | | - for the target. |
15 | | - - Added new module SCons.Scanner.Python to allow scanning .py files. |
16 | | - - Added support for explicitly passing a name when creating Value() nodes. This may be useful |
17 | | - when the value can't be converted to a string or if having a name is otherwise desirable. |
18 | | - - Added a new flag called "linedraw" for the command line argument "--tree" |
19 | | - that instructs scons to use single line drawing characters to draw the dependency tree. |
20 | | - - Add CompilationDatabase() builder in compilation_db tool. Contributed by MongoDB. |
21 | | - Setting COMPILATIONDB_USE_ABSPATH to True|False controls whether the files are absolute or relative |
22 | | - paths. Address Issue #3693 and #3694 found during development. |
23 | | - - Extended `Environment.Dump()` to select a format to serialize construction variables (pretty, json). |
24 | | - - New conditional C Scanner (`SCons.Scanner.C.CConditionalScanner()`) |
25 | | - which interprets C/C Preprocessor conditional syntax (#ifdef, #if, #else, |
26 | | - #elif, #define, etc.) |
27 | | - - Experimental New Feature: Enable caching MSVC configuration |
28 | | - If SCONS_CACHE_MSVC_CONFIG shell environment variable is set, |
29 | | - SCons will cache the results of past calls to vcvarsall.bat to |
30 | | - a file; integrates with existing memoizing of such vars. |
31 | | - - Preliminary Python 3.9 support. |
| 34 | + - List new features (presumably why a checkpoint is being released) |
32 | 35 |
|
33 | 36 | DEPRECATED FUNCTIONALITY |
34 | 37 |
|
35 | | - - Drop support for Python 2.7. SCons will be Python 3.5+ going forward. |
36 | | - - Remove deprecated SourceCode() |
| 38 | + - List anything that's been deprecated since the last release |
37 | 39 |
|
38 | 40 | CHANGED/ENHANCED EXISTING FUNCTIONALITY |
39 | 41 |
|
40 | | - - Added check for SONAME in environment to setup symlinks correctly (Github Issue #3246) |
41 | | - - Resolve Issue #3248 - Removing '-Wl,-Bsymbolic' from SHLIBVERSIONFLAGS |
42 | | - NOTE: If your build depends on the above you must now add to your SHLIBVERSIONFLAGS |
43 | | - - Microsoft Visual Studio - switch to using uuid module to generate GUIDs rather than hand rolled |
44 | | - method using md5 directly. |
45 | | - NOTE: This change affects the following builders' output. If your build depends on the output of these builders |
46 | | - you will likely see a rebuild. |
47 | | - * Package() (with PACKAGETYPE='msi') |
48 | | - * MSVSSolution() |
49 | | - * MSVSProject() |
50 | | - - Improve Visual Studio solution/project generation code to add support |
51 | | - for a per-variant cppflags. Intellisense can be affected by cppflags, |
52 | | - this is especially important when it comes to /std:c++* which specifies |
53 | | - what C++ standard version to target. SCons will append /Zc:__cplusplus |
54 | | - to the project's cppflags when a /std:c++* flag is found as this is |
55 | | - required for intellisense to use the C++ standard version from cppflags. |
56 | | - - Allow user specified location for vswhere.exe specified by VSWHERE. |
57 | | - NOTE: This must be set at the time the 'msvc' 'msvs' and/or 'mslink' tool(s) are initialized to have any effect. |
58 | | - - Fixed Github Issue 3628 - Hardcoding pickle protocol to 4 (supports python 3.4+) |
59 | | - and skipping Python 3.8's new pickle protocol 5 whose main advantage is for out-of-band data buffers. |
60 | | - NOTE: If you used Python 3.8 with SCons 3.0.0 or above, you may get a a pickle protocol error. Remove your |
61 | | - .sconsign.dblite. You will end up with a full rebuild. |
62 | | - - MSVC updates: When there are multiple product installations (e.g, Community and |
63 | | - Build Tools) of MSVC 2017 or MSVC 2019, an Enterprise, Professional, |
64 | | - or Community installation will be selected before a Build Tools installation when |
65 | | - "14.1" or "14.2" is requested, respectively. (GH Issue #3699). |
66 | | - - MSVC updates: When there are multiple product installations of MSVC 2017 (e.g., |
67 | | - Community and Express), 2017 Express is no longer returned when "14.1" is |
68 | | - requested. Only 2017 Express will be returned when "14.1Exp" is requested. |
69 | | - (GH Issue #3699). |
70 | | - - MSVC updates: pass on VSCMD_DEBUG and VSCMD_SKIP_SENDTELEMETRY to msvc |
71 | | - tool setup if set in environment. Add Powershell to default env |
72 | | - (used to call telemetry script). |
73 | | - - Renamed as.py to asm.py and left redirecting tool. 'as' is a reserved word and so |
74 | | - changing the name was required as we wanted to import symbols for use in compilation_db |
75 | | - tool. |
76 | | - - Add no_progress (-Q) option as a set-able option. However, setting it in the |
77 | | - SConstruct/SConscript will still cause "scons: Reading SConscript files ..." to be |
78 | | - printed, since the option is not set when the build scripts first get read. |
79 | | - - Docbook builder provides a fallback if lxml fails to generate |
80 | | - a document with tostring(). |
81 | | - - SubstitutionEnvironment and OverrideEnvironment now have keys() |
82 | | - and values() methods to better emulate a dict (already had items()). |
| 42 | + - List modifications to existing features, where the previous behavior |
| 43 | + wouldn't actually be considered a bug |
83 | 44 |
|
84 | 45 | FIXES |
85 | 46 |
|
86 | | - - Cleanup dangling symlinks before running builders (Issue #3516) |
87 | | - - Fixed usage of abspath and path for RootDir objects on Windows. Previously |
88 | | - env.fs.Dir("T:").abspath would return "T:\T:" and now it correctly returns "T:". |
89 | | - - Fix Issue #3469 - Fixed improper reuse of temporary and compiled files by Configure when changing |
90 | | - the order and/or number of tests. This is done by using the hash of the generated temporary files |
91 | | - content and (For the target files) the hash of the action. |
92 | | - So where previously files would be named: |
93 | | - - config_1.c, config_1.o, config_1 |
94 | | - The will now be named (For example) |
95 | | - - conftest_68b375d16e812c43e6d72d6e93401e7c_0.c, |
96 | | - conftest_68b375d16e812c43e6d72d6e93401e7c_0_5713f09fc605f46b2ab2f7950455f187.o |
97 | | - or |
98 | | - conftest_68b375d16e812c43e6d72d6e93401e7c_0.o |
99 | | - conftest_68b375d16e812c43e6d72d6e93401e7c_0_5713f09fc605f46b2ab2f7950455f187 (for executable) |
100 | | - - Updated documentation toolchain to work properly under Python3, also |
101 | | - removed libxslt support from the Docbook Tool. (issue #3580) |
102 | | - - Fix broken clang + MSVC 2019 combination by using MSVC configuration logic to |
103 | | - propagate 'VCINSTALLDIR' and 'VCToolsInstallDir' which clang tools use to locate |
104 | | - header files and libraries from MSVC install. (Fixes GH Issue #3480) |
105 | | - - Fix Github Issue #2904 - Provide useful error message when more than one Configure Contexts are opened. |
106 | | - Only one open is allowed. You must call conf.Finish() to complete the currently open one before creating another |
| 47 | + - List fixes of outright bugs |
107 | 48 |
|
108 | 49 | IMPROVEMENTS |
109 | 50 |
|
110 | | - - Improve performance of Subst by preventing unnecessary frame |
111 | | - allocations by no longer defining the *Subber classes inside of their |
112 | | - respective function calls. |
113 | | - - Improve performance of Subst in some cases by preventing |
114 | | - unnecessary calls to eval when a token is surrounded in braces |
115 | | - but is not a function call. |
116 | | - - Improve performance of subst by removing unnecessary recursion. |
| 51 | + - List improvements that wouldn't be visible to the user in the |
| 52 | + documentation: performance improvements (describe the circumstances |
| 53 | + under which they would be observed), or major code cleanups |
117 | 54 |
|
118 | 55 | PACKAGING |
119 | 56 |
|
120 | | - - Resolve Issue #3451 and Issue #3450 - Rewrite SCons setup.py and packaging. Move script logic to entry points so |
121 | | - package can create scripts which use the correct version of Python. |
| 57 | + - List changes in the way SCons is packaged and/or released |
122 | 58 |
|
123 | 59 | DOCUMENTATION |
124 | 60 |
|
125 | | - - Significant rework of documentation: API docs are now generated |
126 | | - using Sphinx; manpage and user guide now use more "standard" |
127 | | - markup elements (which could facilitate later conversion to a |
128 | | - different doc format, should that choice be made); significant |
129 | | - rewordings in manpage. Manpage Examples moved to an external |
130 | | - repository / website (scons-cookbook.readthedocs.io). |
131 | | - |
132 | | - Thanks to the following contributors listed below for their contributions to this release. |
133 | | - |
134 | | -git shortlog --no-merges -ns 3.1.2..HEAD |
135 | | - 290 William Deegan |
136 | | - 184 Mats Wichmann |
137 | | - 46 Adam Gross |
138 | | - 22 Daniel Moody |
139 | | - 16 Joseph Brill |
140 | | - 15 Dirk Baechle |
141 | | - 12 Ivan Kravets |
142 | | - 9 Mathew Robinson |
143 | | - 6 Paul Tipei |
144 | | - 1 Rob Boehne |
145 | | - 1 Robert Boehne |
146 | | - 1 Daniel |
147 | | - 1 Andrew Morrow |
148 | | - 1 Iosif Daniel Kurazs |
149 | | - 1 James Benton |
150 | | - 1 Jeremy Elson |
151 | | - 1 Konstantin Gonchar |
152 | | - 1 Andrii Doroshenko (Xrayez) |
| 61 | + - List any significant changes to the documentation (not individual |
| 62 | + typo fixes, even if they're mentioned in src/CHANGES.txt to give |
| 63 | + the contributor credit) |
| 64 | + |
| 65 | + DEVELOPMENT |
| 66 | + |
| 67 | + - List visible changes in the way SCons is developed |
| 68 | + |
| 69 | + Thanks to CURLY, LARRY, and MOE for their contributions to this release. |
| 70 | + Contributors are listed alphabetically by their last name. |
| 71 | + |
| 72 | +__COPYRIGHT__ |
| 73 | +__FILE__ __REVISION__ __DATE__ __DEVELOPER__ |
0 commit comments