source: CMT/HEAD/doc/ReleaseNotes.html @ 692

Last change on this file since 692 was 692, checked in by rybkin, 8 years ago

doc/ReleaseNotes.html: Update documentation

  • Property svn:eol-style set to native
File size: 59.9 KB
Line 
1<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
2<html><head>
3<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
4<!--
5//-----------------------------------------------------------
6// Copyright Christian Arnault LAL-Orsay CNRS
7// arnault@lal.in2p3.fr
8// See the complete license in cmt_license.txt "http://www.cecill.info".
9//-----------------------------------------------------------
10--><title>Release notes</title>
11
12
13
14 
15   
16
17    <style type="text/css">
18li.bug
19{
20  color:#FF0000;
21}
22li.new
23{
24  color:#0000FF;
25  font-weight:bold;
26}
27li.int
28{
29  color:#00FF00;
30}
31<!--  font-style:italic; -->
32    </style></head><body alink="#007777" bgcolor="#ffffff" link="#550088">
33    <h1>Release notes</h1>
34
35    <blockquote>
36      <center><i>Notation</i></center>
37      <ul>
38        <li class="new">New features</li>
39        <li class="bug">Bug fixes</li>
40        <li class="int">Internal management</li>
41      </ul>
42    </blockquote>
43
44    <ul>
45
46
47 <li>
48        <b>v1r26p20160527, v1r25p20160527</b>
49        <ul>   
50
51    <li class="new">For "cmt checkout" command, in case of trunk checkout, skip the check whether
52      trunk corresponds to a particular tag if CMTHEADVERSION environment variable is unset,
53      its value is empty, or starts with '!'
54</li>
55
56    <li class="bug">Do not produce error for "cmt show uses" command run in
57        "cmt_standalone" package context
58</li>
59
60        </ul>
61 </li>   
62
63 <li>
64        <b>v1r26p20140131, v1r25p20140131</b>
65        <ul>   
66
67    <li class="new">Implement enhanced cached requirements file generation, with "cmt setup -requirements" command, i.e., resolve sets for macros if possible, resolve paths fully if possible, so as to strip path of non-existent directories by default, explicitly controlled by options -(no)_strip_path
68</li>
69    <li class="new">Implement enhanced usage of cached requirements file by reading additional flags from requirements file, e.g., with "cmt run &lt;command&gt;"
70</li>
71    <li class="new">In "cmt show tags" command output, print uses in which apply_tag statement appears for tag
72</li>
73    <li class="new">Make -tag_remove=&lt;tag-list&gt; option functional on any tags (rather than only those specified on the command line or in CMTEXTRATAGS environment variable)
74</li>
75    <li class="new">For "cmt broadcast" command, implement enhanced handling of special CMTHOME, CMTUSERCONTEXT projects packages - visited if in current project only or with special depth values (0: CMTUSERCONTEXT project packages only, -1: CMTHOME project packages only)
76</li>
77    <li class="new">Make requirements file in special CMTHOME, CMTUSERCONTEXT projects non-mandatory
78</li>
79    <li class="new">Add support for devbranches directory - additional branches location - in Subversion repository
80</li>
81    <li class="new">Make -use=&lt;package&gt;:&lt;version&gt;:&lt;path&gt; option fully functional with standard use statement syntax, make -path=&lt;path&gt; option functional for relative &lt;path&gt; as with standard use statement syntax, e.g.,
82<pre>pattern find_pkg \
83  macro &lt;package&gt;_find_&lt;pkg&gt; "`cmt -q -use=&lt;pkg&gt;:&lt;ver&gt;:&lt;offset&gt; check configuration&&echo &lt;package&gt;_&lt;pkg&gt;_found||echo &lt;package&gt;_&lt;pkg&gt;_not_found`" ; \
84  apply_tag $(&lt;package&gt;_find_&lt;pkg&gt;)
85
86pattern use_pkg_if_found \
87  apply_pattern find_pkg pkg=&lt;pkg&gt; ver=&lt;ver&gt; offset=&lt;offset&gt; ; \
88  macro &lt;package&gt;_&lt;pkg&gt;_info "" &lt;package&gt;_&lt;pkg&gt;_found "&lt;pkg&gt; &lt;ver&gt; &lt;offset&gt;" ; \
89  use $(&lt;package&gt;_&lt;pkg&gt;_info)
90
91apply_pattern use_pkg_if_found pkg=MyExtraPatterns ver=*</pre>
92</li>
93
94    <li class="bug">Fully resolve set values in setup scripts for consistency
95</li>
96    <li class="bug">Make fixes/improvements to source files dependencies generator (reported by Joerg Stelzer)
97</li>
98    <li class="bug">Improve diagnostics messages for project file syntax errors
99</li>
100
101    <li class="int">Optimise and improve CMT shell setup and cleanup scripts
102</li>
103    <li class="int">Optimise and make cleaner initial configuration procedure
104</li>
105    <li class="int">General performance optimisation
106</li>
107    <li class="int">Optimise "cmt checkout" command performance (algorithm suggested by Wim Lavrijsen), introduce SVNDEBUG environment variable to facilitate debugging
108</li>
109    <li class="int">Work around Make errors if stamps files do not exist
110</li>
111
112        </ul>
113 </li>   
114
115 <li>
116        <b>v1r25p20130606</b>
117        <ul>   
118
119    <li class="new">Exclude aliases from the output of commands "cmt show set_names", "cmt show sets" (requested by David Quarrie)
120</li>
121    <li class="new">Allow for possibly multi-line output of commands in command substitution (introduced with backquotes, `COMMAND`)
122</li>
123    <li class="new">Detect clang compiler on Mac OS X platform
124</li>
125
126    <li class="bug">Parse includes acquired via include_dirs statement for imported uses
127</li>
128    <li class="bug">For applications belonging to "check" group, ensure that application is built before running check (reported by Andrei Kazarov and Andrei Salnikov)
129</li>
130    <li class="bug">Fix cleanup of libraries for Darwin platform
131</li>
132    <li class="bug">Ensure that *.in files are cleaned up in binary tag directory only (reported by Andrei Kazarov)
133</li>
134
135    <li class="int">Optimise makefile fragments so that implicit rule is not searched for
136</li>
137
138        </ul>
139 </li>   
140
141 <li>
142        <b>v1r26</b>
143        <ul>   
144
145    <li class="new">Compile dependent applications, libraries in parallel for build time optimisation
146</li>
147    <li class="new">For applications and libraries, introduce options -modules and -no_modules (default), to be used if they are built with files in languages with modules (like Fortran 90 and later). Necessary, in order to compile applications, libraries dependent upon application, library with -modules option after compiling latter
148</li>
149    <li class="new">Exclude aliases from the output of commands "cmt show set_names", "cmt show sets" (requested by David Quarrie)
150</li>
151    <li class="new">Allow for possibly multi-line output of commands in command substitution (introduced with backquotes, `COMMAND`)
152</li>
153    <li class="new">Detect clang compiler on Mac OS X platform
154</li>
155
156    <li class="bug">Parse includes acquired via include_dirs statement for imported uses
157</li>
158    <li class="bug">For applications belonging to "check" group, ensure that application is built before running check (reported by Andrei Kazarov and Andrei Salnikov)
159</li>
160    <li class="bug">Fix cleanup of libraries for Darwin platform
161</li>
162
163    <li class="int">Optimise makefile fragments so that implicit rule is not searched for
164</li>
165
166        </ul>
167 </li>   
168
169 <li>
170        <b>v1r25</b>
171        <ul>   
172
173    <li class="new">Implement commands "cmt show alias", "cmt show alias_names", "cmt show alias_value",        "cmt show aliases" (requested by David Quarrie)
174</li>
175    <li class="new">Implement enhanced mechanism of source files dependencies generation at
176compilation time making use of -MMD preprocessor option for C/C++ libraries/applications, to enable, tag c_native_dependencies/cpp_native_dependencies should be activated
177</li>
178
179    <li class="bug">In setup/cleanup scripts, unset set variables only to work around Z Shell unset builtin command being POSIX non-conformant (exit code of 1 on unset variables)
180</li>
181    <li class="bug">Fix/improve prototypes handling (reported by Andrei Kazarov and Franco Carbognani)
182</li>
183
184    <li class="int">Optimise internal source files dependencies generator, command "cmt build dependencies" (make more than 4 times faster)
185</li>
186    <li class="int">Optimise requirements files parsing (make ~ 2 times faster), optimise string manipulation functions
187</li>
188    <li class="int">Make use of system functions realpath (POSIX) and _fullpath (Windows)
189</li>
190    <li class="int">Introduce use member to hold canonicalized absolute realpath so as not to re-calculate it several times
191</li>
192    <li class="int">Optimise/improve paths handling
193</li>
194    <li class="int">Optimise CMT setup scripts by reducing the number of processes
195</li>
196    <li class="int">Improve error handling
197</li>
198
199        </ul>
200 </li>   
201
202 <li>
203        <b>v1r24</b>
204        <ul>   
205
206    <li class="new">Optimise and enhance "cmt build dependencies" command so that it makes use of files and include directories from CLI input, of input file dependencies[_CONSTITUENT].in, generate dependencies[_CONSTITUENT].in files
207</li>
208    <li class="new">Optimise and enhance "cmt build/remove library_links" commands so that they make use of input file library_links.in, generate library_links.in file
209</li>
210    <li class="new">Pass necessary for script $(make_shlib) macro values via environment, in cmt_make_shlib_common.sh script, take necessary macro values from environment, if available, rather than invoke CMT multiple times
211</li>
212    <li class="new">Introduce and implement BCAST mode (set CMTBCAST to non-empty string) to build all used packages of the current package with "(cmt) make". If run in the project container, builds the whole project. Using Make -j option (number of job slots, not available with NMake on Windows), this mode allows to parallelise independent packages builds and, depending on project structure and number of processors, may be significantly (several times) faster than "cmt broadcast make".
213</li>
214    <li class="new">By default, set MAKEFLAGS, if unset, to set number of job slots to number of processors, and enable CMT QUICK mode
215</li>
216    <li class="new">In QUICK mode, rebuild constituent(s) or broadcast (N)Makefile and corresponding macros files, if any requirements file changes only
217</li>
218    <li class="new">In QUICK mode, run "cmt build/remove library_links" commands with library_links input file, if any requirements file changes only
219</li>
220    <li class="new">In QUICK mode, files dependencies are always rebuilt, if a file or its dependency change
221</li>
222    <li class="new">Implement dynamic help messages on variables targets available for BCAST mode
223</li>
224    <li class="new">Add package selection criterion based on &lt;package&gt;_native_version (-native_version=VERSION option) in case of CMT structuring style without_version_directory (similarly to   style with_version_directory)
225</li>
226    <li class="new">Enhance/fix command completions for TCSH, ZSH, implement command completion for BASH
227</li>
228    <li class="new">Make "cmt check configuration" command exit with error, if non-constant cmtpath_pattern found for package outside CMTPATH - cannot be applied
229</li>
230    <li class="new">Do not keep .DEFAULT target in constituents Makefile, if PEDANTIC is defined
231</li>
232
233    <li class="bug">Ensure document source files dependencies get rebuilt whenever source file or its dependencies change
234</li>
235    <li class="bug">Make uninstall target (rather than clean target) dependent on remove_library_links target to ensure library links uninstallation
236</li>
237    <li class="bug">Implement error handling for "cmt create" command
238</li>
239    <li class="bug">Make "cmt build dependencies" command exit with error, if path specified for dependencies calculation is not found
240</li>
241    <li class="bug">In class CmtSystem functions, check return value of system functions and propagate it via return value, or via setting error, and/or by printing error message
242</li>
243    <li class="bug">Enhance error handling for input files generation, if fragment is not found
244</li>
245    <li class="bug">In (un)install_action.sh(.bat) scripts, exit with error on file command or reference file command error
246</li>
247    <li class="bug">Print help info on stdout (rather than stderr)
248</li>
249
250    <li class="int">In class cmt_regexp, introduce and implement clear function, use it in classes Use, Project
251</li>
252    <li class="int">In class CmtGenerator, remove prepare_use_context function, m_deps_builder member
253</li>
254    <li class="int">Do not assign target_&lt;name&gt; tag to document corresponding to action by default but only if this tag is used in tag or symbol expression
255</li>
256    <li class="int">For all constituents with -target_tag option, assign associated tag target_&lt;name&gt; only if this tag is used in tag or symbol expression
257</li>
258    <li class="int">Incorporate call to do_check_configuration into function do_build_constituents_config
259</li>
260    <li class="int">Print warning message if package requested for import cannot be imported for constituent without target tag during cmt build constituents_config, otherwise during cmt build constituent_config
261</li>
262    <li class="int">Make constituent name optional for "cmt build dependencies" command
263</li>
264    <li class="int">In (N)Makefile fragments, specify explicit empty command in (un)install, check target rules (for optimisation, to avoid implicit rule search)
265</li>
266    <li class="int">In class CmtError, introduce system_error code
267</li>
268    <li class="int">On Windows, use _unlink, _chmod, _putenv instead of deprecated - beginning in Visual C++ 2005 - POSIX names functions
269</li>
270        </ul>
271 </li>   
272
273 <li>
274        <b>v1r23</b>
275        <ul>   
276
277    <li class="new">Ensure that all sub-uses of packages imported with -import=&lt;package&gt; constituent option are also imported recursively if not imported yet and not specified with -no_auto_imports option
278</li>
279    <li class="new">Provide tag activation context in "cmt show tags" command output, if does not duplicate already printed information
280</li>
281    <li class="new">In "cmt check configuration" command, if current use is outside CMTPATH, issue warning or set error, provided [CMT]PEDANTIC environment variable is set
282</li>
283    <li class="new">Ensure head version (matching CMTHEADVERSION environment variable, or HEAD or head) satisfies any use request and takes precedence
284</li>
285    <li class="new">When generating setup/cleanup scripts, ensure sets, paths names are converted into valid shell variable names (issuing corresponding message if replacement happens)
286</li>
287    <li class="new">Rename cmt/version.cmt and issue warning if under version control and checked out with CMT structuring style with_version_directory
288</li>
289    <li class="new">Optimise fragment search, issue warning, if not found
290</li>
291    <li class="new">Improve error handling, diagnostic and help messages for some commands
292</li>
293    <li class="bug">Improve handling of -no_auto_imports option of use statement, ensure "cmt show uses" command shows where auto_imports state gets set
294</li>
295    <li class="bug">Improve handling of -f=&lt;file&gt; option
296</li>
297    <li class="bug">Make option -e=&lt;extra-statement(s)&gt; functional
298</li>
299    <li class="int">Reduce the number of reads of requirements files tree by generating input requirements file for constituent(s) without associated tag in one CMT invocation. Then from it, generate constituent Makefile
300</li>
301    <li class="int">When building CMT with GNU Make, allow for user overrides/extra flags via CXXFLAGS, LDFLAGS, TARGET_ARCH variables
302</li>
303    <li class="int">Reduce the number of pwd function invocations
304</li>
305        </ul>
306 </li>   
307
308 <li>
309        <b>v1r22</b>
310        <ul>   
311
312    <li class="new">Introduce option -requirements for command "cmt setup" to generate standalone requirements file from which generate setup script
313</li>
314    <li class="new">Introduce option -xml to produce output in XML format (with document type definition), currently for commands "cmt setup", "cmt show projects", "cmt show uses" (requested by Marco Clemencic)
315</li>
316    <li class="new">Ensure QUICK mode can be used for from scratch build (requested by RD Schaffer)
317</li>
318    <li class="new">Introduce command "cmt build        constituents_config" to generate constituents Makefile, tag specific Makefile, and setup definitions file, and "cmt build constituent_config" to generate constituent Makefile fragment, tag specific Makefile, and setup definitions file at the same time (rather than use 3 commands) for build time optimisation
319</li>
320    <li class="bug">Ensure CMTSTRUCTURINGSTYLE environment variable setting be functional with "cmt co" command
321</li>
322    <li class="bug">Enhance cleanup of setup temporary files
323</li>
324    <li class="bug">Make "cmt show tags" commands more informative, i.e. show list of packages which imply tags for particular tag (rather than last package from list)
325</li>
326    <li class="bug">When several alternative values are specified through several tag-value pairs, select the first matching condition (rather than based on conditions priorities)
327</li>
328    <li class="bug">For -no_static mode, generate &lt;library&gt;.stamp in addition to &lt;library&gt;.shstamp
329</li>
330    <li class="int">Projects (other than current project) coming from CMTPATH entries are not ignored in case current project does not have parents
331</li>   
332    <li class="int">Enhance error handling in NMakefiles
333</li>   
334    <li class="int">To generate setup/cleanup scripts for standalone package, use same functions as for standard packages
335</li>
336    <li class="int">In case of project requested with conflicting releases, issue warning, do not set CmtError
337</li>   
338    <li class="int">Add optional argument of type ostream for several functions
339</li>   
340    <li class="int">Do not use Makefile common_target to have one process fewer
341</li>   
342
343        </ul>
344 </li>   
345
346 <li>
347        <b>v1r21</b>
348        <ul>   
349    <li class="new">Introduce and implement "cmt show container [&lt;path&gt;]..." command. Apply tag container_package if current package is container package of project (requested by Marco Clemencic)
350</li>
351    <li class="new">Introduce new setup strategy with values scripts and no_scripts. Do not generate (or remove existing) cleanup and setup scripts if setup_strategy includes no_scripts (requested by David Rousseau and RD)
352</li>
353    <li class="new">Implement new options -C (for context), -i (for info) of "cmt co|checkout" command
354</li>
355    <li class="new">Make options -R (recursive checkout) and -requirements (checkout from requirements file) functional with Subversion
356</li>
357    <li class="new">Introduce the CMTHEADVERSION environment variable to hold the string that is written into the       version.cmt file on "cmt checkout" of the package's trunk when it is different from any existing tag. The value may contain the templates &lt;package&gt;, &lt;PACKAGE&gt;, &lt;revision&gt;, where &lt;revision&gt; is replaced with last_changed_rev of the trunk
358</li>
359    <li class="new">Introduce cmt_parallel_bins tag to enable locking mechanism which allows for simultaneous/parallel builds for multiple binary tags (not activated by default)
360</li>
361    <li class="new">Use command specified by macro "devenv_command" to retrieve version of Microsoft (R) Visual Studio and define a corresponding tag (vs&lt;digit(s)&gt;). Set macro devenv_command to "devenv /?" if VS (for Visual Studio) tag is activated (not activated by default)
362</li>
363    <li class="new">Use system dependent size PATH_MAX for path name arrays instead of 256 (requested by Francesco Prelz)
364</li>
365    <li class="new">Print warning in current package, when package applies an undefined pattern. When building constituents makefile, print a warning message if a package requested for import for a constituent cannot be imported (requested by Sebastien Binet)
366</li>
367    <li class="bug">Make behaviour wrt package versions matching consistent for both package structuring styles (with_version_directory and without_version_directory). In version specification, v* matches any version as well as *
368</li>
369    <li class="bug">Allow for doing setup with setup scripts generated by "cmt config" from any place (with a correct CMTPROJECTPATH), resolving ticket #57
370</li>
371    <li class="bug">Enhance/Improve error handling in general, diagnostic and help messages
372</li>
373    <li class="bug">Exit with an error on file (including stdout) write errors
374</li>
375    <li class="bug">Upon execution of setup.[c]sh, cleanup.[c]sh scripts, exit with a non-zero status on failure, taking into account failures of user provided setup, cleanup scripts
376</li>
377    <li class="bug">Improve projects ordering
378</li>
379    <li class="int">Optimise retrieval of Mac OS version
380</li>   
381    <li class="int">Introduce diagnostic function for CMTVERBOSE level
382</li>   
383    <li class="int">Do not use "no_version_style"
384</li>   
385
386        </ul>
387      </li>
388
389 <li>
390        <b>v1r20p20090520</b>
391        <ul>   
392    <li class="new">Implement the generation of dependencies Makefiles (one per source file) making use of the language compiler (preprocessor)
393<pre>
394The corresponding compiler options should be passed via the -dependencies_options=OPTIONS option of the language
395
396Define the cppdepflags, cdepflags macros that hold the compiler options to generate dependencies for Linux,
397Darwin, VisualC when the tags cpp_native_dependencies, c_native_dependencies are activated
398
399Pass cppdepflags, cdepflags to the c++, c languages as defined by CMT
400
401Introduce mgr/cmt_format_deps.sh(.bat) scripts to be used for the generation of one dependencies (N)Makefile
402per source file, define the format_dependencies macro via the introduced scripts
403
404NOTE: To use the feature, the tags cpp_native_dependencies, c_native_dependencies need to be activated
405(not activated by default)
406</pre></li>
407
408    <li class="new">Implement the generation of dependencies depending on the files
409modifications rather than every time NMake is run for Windows
410<pre>
411Same as for Unix-like systems
412</pre></li>
413
414    <li class="new">Complete the message of the "cmt make help" command
415</li>
416
417    <li class="new">If the Verbose level is activated (the CMTVERBOSE environment variable is set to a non-empty string), check whether the names of different packages in upper case coincide and issue a warning appropriately, print a warning message when an undefined pattern is referenced
418</li>
419
420    <li class="new">For Darwin, build statically linked (archive) libraries     with "libtool", the recommended way
421</li>
422
423    <li class="new">Add the possibility to do checkout of CMT packages from Subversion repository via the "cmt checkout" command
424<pre>
425The choice between CVS and Subversion is made based on which environment variable - CVSROOT or SVNROOT - is set
426
427For checkout from Subversion repository, the command specified via macro svn_checkout_command (set by CMT to
428mgr/cmt_svn_checkout.py, based on Subversion Python bindings) is used
429
430CVS checkout is done via the CVS command line client
431</pre></li>
432
433    <li class="bug">Ensure that the &lt;constituent&gt;_use_linkopts macro is set in case the
434constituent -import=&lt;package&gt; options effectively import nothing
435</li>   
436    <li class="bug">Ensure that the use_stamps macro is set taking into account the -no_auto_imports options
437</li>   
438
439    <li class="bug">Ensure that command "cmt show groups" is functional
440</li>   
441
442    <li class="bug">Use POSIX conformant syntax for shell utilities
443</li>   
444
445    <li class="bug">Ensure that dangling symbolic links can be uninstalled
446</li>   
447
448    <li class="bug">Ensure "cmt checkout" command exit status is set to a nonzero value on error
449</li>   
450
451    <li class="int">Optimise the retrieval of the Mac OS version
452</li>   
453
454    <li class="int">In the QUICK mode, generate $(cmt_local_tagfile) if non-existent
455</li>   
456
457    <li class="int">Ensure that uninstallation (make uninstall) be done in reverse build order (for Unix-like systems for now)
458</li>   
459
460    <li class="int">Remove the connection between clean and uninstall targets for Windows - same as for Unix-like systems
461</li>   
462
463    <li class="int">Add .make .stamp .cxx to the list of known suffixes and a rule with an empty command for $(use_requirements) for optimisation
464</li>   
465
466    <li class="int">Change the names of the files recording the setup to $(bin)setup.(n)make and $(bin)setup_${CONSTITUENT}.(n)make
467</li>   
468
469    <li class="int">Make the READONLY mode obsolete (the relocation     of the binary build directory provides this functionality as well)
470</li>   
471
472    </ul>
473</li>   
474
475 <li>
476        <b>v1r20p20081118</b>
477        <ul>   
478       
479    <li class="new">Implement the -no_static option for libraries
480    <pre>by default both static and shared library are built
481</pre></li>
482    <li class="new">Introduce diagnostic messages levels: Debug, Info, Warning, Error, Fatal
483<pre>Default value: Info, the level to use can be configured using the environment variables
484CMTDEBUG, CMTINFO, CMTWARNING, CMTERROR, CMTFATAL (in order of precedence) if set to a non-empty string
485and/or the existing command line options -warnings (Warning), -disable_warnings (Error), -quiet (Fatal)
486</pre></li>
487    <li class="new">Use diagnostic messages prefix consistently
488<pre>default value: #CMT---&gt;, can be configured using the environment variable CMTMSGPREFIX
489</pre></li>
490<li class="new">Retrieve the package version when structuring style used is `without_version_directory' from:
491<pre>
4921) cmt/version.cmt file if available (and readable)
4932) version statement in the package requirements file
494</pre></li>
495<li class="new">Allow for the relocation of the binary build directory
496<pre>
497via redefinition of the bin macro. E.g., macro bin "$(TMPDIR)/$(package)" in ${CMTUSERCONTEXT}/requirements, then
498$ cmt make
499</pre></li>
500<li class="new">Add the -rs suffix option to the cmt checkout command
501<pre>
502E.g.,
503$ cmt co packagename -rs -00-01-02
504same as
505$ cmt co packagename -r packagename-00-01-02
506(proposed by David Rousseau)
507</pre></li>
508    <li class="bug">Correct CMTPATH entries ordering and the application of cmtpath_pattern's in case of diamond project hierarchy</li>
509    <li class="bug">Correct the setting of macros in case the -import option of constituents is used so as to import what is requested only</li>
510    <li class="bug">Correct handling of the requirements file in ${CMTHOME} and/or ${CMTUSERCONTEXT} if specified and exist</li>
511    <li class="bug">Correct cmt broadcast in case of symlinks in the paths</li>
512    <li class="bug">Correct the handling of the -with_version_directory and -without_version_directory command line options with cmt checkout</li>
513    <li class="int">Introduce the CMTFLAGS environment variable (set up automatically) in order to contain command line options (currently, to configure the diagnostic messages level and the structuring style) so as to pass the flags to recursive cmt invocations. If CMTFLAGS exists in the environment, the flags from it are processed before the command line options</li>
514    <li class="int">Do not set macro ${CONSTITUENT}linkopts, use $(cmt_installarea_linkopts) with $(${CONSTITUENT}_use_linkopts) instead of $(use_linkopts) for applications</li>
515    <li class="int">Generate the BIN macro to hold an absolute path for the path specified by the bin macro</li>
516
517    </ul>
518</li>   
519
520 <li>
521        <b>v1r20p20080222</b>
522        <ul>   
523       
524    <li class="new">Control the verbosity of Make
525    <pre>by setting the following Make variables (in order of precedence):
526VERBOSE - print CMT messages and echo Make commands
527QUIET - print CMT messages (default)
528ECHO - echo Make commands
529SILENT - no CMT messages or Make commands echoing
530NOTE: In order to have user provided CMT documents (makefile fragments) controlled
531by these switches, the CMT document author
532- will prefix command lines with macro $(silent) (rather than @)
533- will print messages (if any) starting a separate command line with macro $(echo)
534(see, e. g., mgr/fragments/tex)</pre></li>
535    <li class="new">Control the prefix of the CMT messages
536    <pre>via the Make variable CMTMSGPREFIX (default value: #CMT---&gt;)</pre></li>
537    <li class="bug">Correct the passing of (N)Make options for recursive (N)Make invocations</li>
538    <li class="new">Ensure CVS operations are retried in case of failure</li>
539    <li class="int">Optimise a number of internally used scripts by reducing the number of processes (used a patch from KELEMEN Peter)</li>
540    <li class="bug">Correct the handling of the -with_version_directory
541        and -without_version_directory command line options</li>
542    <li class="bug">Ensure the dependencies are re-calculated
543        whenever the included files are changed (the problem pointed out by Marco)</li>
544    <li class="bug">Improve the handling of symlinks in the paths</li>
545    <li class="new">Do not rebuild any *.make files when Make variable QUICK is defined
546    <pre>This may be used to save time when developing a package code without changing configuration or source files dependencies </pre></li>
547    <li class="int">Make use of the structuring style, when
548        configuring a package without a version.cmt file, to allow the use
549        of digits in package names of such packages structured without
550        a version directory. Improve diagnostic messages for this case</li>
551
552    <li class="new">Allow simultaneous/parallel builds for multiple binary tags
553    (used suggestions from Pere, Stefan, and Andrea):
554    <pre>- build all the makefiles in the binary tag directory
555- implement a locking mechanism
556The mechanism is in effect for CMT documents if
557macros lock_command, unlock_command are set to non-empty strings (default).
558Then, command ${lock_command} ${CONSTITUENT}${lock_suffix} is run by CMT to create the lock file in the package cmt directory
559before the document ${CONSTITUENT} is built,
560and command ${unlock_command} ${CONSTITUENT}${lock_suffix} is run by CMT to remove the lock file
561after the document ${CONSTITUENT} is built.
562The assumption is that while CMT applications, and libraries for different binary tags deal with different files,
563documents for different binary tags may deal with (e. g., build, install)
564the same files (e. g., header files). The locking mechanism is to ensure the documents are done one at a time</pre></li>
565    <li class="new">Implement an optional header file filter mechanism to replace
566        header files matching a pattern with a stamp file when calculating files dependencies
567    <pre>The mechanism is in effect if there is a package which
568- sets macro &lt;package&gt;_header_file_filter (to a regular expression)
569- sets macro &lt;package&gt;_header_file_stamp to a path of an existing file
570or file $(PACKAGE_ROOT)/cmt/cmt_header_file.stamp exists.
571Then, each header file whose path matches one of the regular expressions (if several packages activate the mechanism)
572is replaced with the corresponding stamp file in the dependency calculation and
573its dependencies are not examined. This may reduce the dependencies calculation time significantly.
574Example:
575macro Boost_header_file_filter $(Boost_home)/include/boost-$(Boost_file_version)
576macro Boost_header_file_stamp $(Boost_home)/include/boost-$(Boost_file_version)/boost/any.hpp
577The dependencies of the source files including Boost header files will only include the any.hpp file path.
578    </pre>
579    </li>
580
581    </ul>
582</li>   
583
584 <li>
585        <b>v1r20p20070720</b>
586        <ul>   
587       
588    <li class="bug">Fix the generation of source files dependencies</li>
589    <li class="bug">Fix the `cmt show version' command</li>   
590
591    </ul>
592</li>   
593
594 <li>
595        <b>v1r20p20070524</b>
596        <ul>   
597       
598        <li class="new">activate the support to PWD env. var.</li>     
599    <li class="bug">Send error &amp; warning messages to stderr instead of stdout.</li>
600    <li class="bug">Fix cvs interface.</li>   
601    <li class="int">Make use of the $(jar) macro</li>
602   
603
604    </ul>
605</li>   
606
607
608 <li>
609        <b>v1r20p20070208</b>
610        <ul>   
611       
612    <li class="bug">Disable the creation of <tt>&lt;project&gt;_ROOT/CONFIG</tt> 
613     variables for the PACKAGE_POLICY_FOR_<tt>&lt;project&gt;</tt> virtual package</li>
614    </ul>
615</li>   
616
617 <li>
618        <b>v1r20</b>
619        <ul>   
620    <li class="new">Add support for the -import=PkgA,PkgB,... syntax:
621    <pre>library Lalib   *.cpp -import=A,C</pre>
622    </li>
623
624   
625    <li class="new">Extend the project syntax to support macros/tags. E.g.:
626    <pre>        project Project
627
628        author garonne
629
630        use P1 v1.*
631
632        container container v1
633
634        # Policy definitions used by all packages belonging to this project
635        tag ATLAS
636
637        macro use_build_strategy "without_installarea" \
638                   ATLAS "with_installarea"
639
640        macro use_setup_strategy "no_root" \
641                       ATLAS "root"
642
643        macro use_structure_strategy "with_version_directory" \
644                       ATLAS "without_version_directory"
645                                             
646        build_strategy     $(use_build_strategy)
647        setup_strategy     $(use_setup_strategy)
648        structure_strategy $(use_structure_strategy)
649        ...</pre>
650    </li>       
651    <li class="new">Extend the strategy syntax for supporting variable, e.g.:
652    <pre>        macro use_strategy "without_installarea" \
653                   ATLAS "with_installarea"
654
655        build_strategy $(use_strategy)</pre>
656    </li>
657
658    <li class="new">Enable the package selection by native_version requirements:<pre>use foo -native_version=2.0</pre>
659    To activate this feature, it is necessary to execute the <tt>cmt config</tt> in all packages to
660    create for each eligible package a <tt>cmt/native_version.cmt</tt> file generated from the
661    <tt>&lt;package&gt;_native_version macro</tt> and used for the package selection.   
662    </li>
663   
664               
665        <li class="new">
666         Add macros $(${GROUP}_pre_constituents),  $(${GROUP}_post_constituents) for
667         ordering targets executed by default during make execution.
668    </li>
669
670        <li class="bug">Correct problems with the cxx pre-compiler parser for dealing with continuation
671        character, space, etc. This problem created in some case the missing dependencies problem with
672        previous releases (Thanks to Scott Snyder,
673        see <a href="http://savannah.cern.ch/bugs/?23384">bug report</a>).
674    </li> 
675   
676    <li class="bug">Fix bugs with <tt>-no_auto_imports</tt>.</li>
677   
678    <li class="bug">Return status code when executing make by the <tt>"cmt make"</tt> action
679    name.</li>
680     
681        <li class="bug">Correct the fact that a <tt>"apply_tag"</tt> protected by a private section is exported in
682        all the client packages.</li>
683
684
685        </ul>
686 </li>
687
688
689
690 <li>
691        <b>v1r19</b>
692        <ul>   
693    <li class="new">Add support for wildcarded project dependencies which Allow CMTPROJECTPATH overrides, e.g.: use project v*.</li>
694    <li class="new">Support for the author keyword at the project level and the corresponding command is <tt>cmt show project_author</tt>
695    to obtain it from command line.</li>
696    <li class="new">Extend the strategy syntax for supporting variable, e.g.:
697    <pre>        macro use_strategy "without_installarea" \
698                   ATLAS "with_installarea"
699
700        build_strategy $(use_strategy)
701    </pre>
702    </li>
703    <li class="new">Add a option to bypass the <tt>cmt config</tt> step after the cvs checkout: <tt>cmt co -no_config ...</tt>.</li>
704        <li class="new">Add a new traversal mode for the cmtpath_pattern: <tt>cmtpath_pattern_revert</tt>. This is for constructing macro from current
705        project to projects used (Atlas's request).</li>       
706        <li class="bug">Disable warning about tags,e.g. CMTSITE. To re-enable them you should use cmt with the <tt>-warnings</tt> option.</li> 
707        <li class="int">Introduce the pre-compiler __APPLE__ macro for removing compilation warnings.</li>
708 
709        </ul>
710 </li>
711 
712<li>
713        <b>v1r18p20061003</b>
714        <ul>
715        <li class="bug">Correct problem with long word during compilation which reach make limit(Atlas's request).</li>
716        </ul>
717 </li>
718       
719 <li>
720        <b>v1r18p20060606</b>
721        <ul>
722
723          <!--
724          <li class="new"></li>
725          <li class="bug"></li>
726          <li class="int"></li>
727          -->
728
729          <li class="new">
730          Add a touch functionnality, e.g. <tt>cvs co -t package</tt>,
731during cvs checkout, this is mainly due that cvs keeps the file
732timestamps so that build tools, i.d. make, can not recognize it as
733"new". The "best" default behaviour is for it to set the filestamp to
734the checkout time.</li>
735
736      <li class="new"> Add the support
737on Linux/make for creating separate directory for
738libraries/constituents. To be Atlas compliant, this strategy is not
739built by default you should called explicitely the STRUCTURED_OUTPUT
740option, e.g. <tt>make STRUCTURED_OUTPUT=1</tt>. For more informations see the following <a href="http://trac.lal.in2p3.fr/CMT/ticket/10">Bug
741      report</a>.</li>
742
743          <li class="new"> Supress the n repeated entries in the CMTPATH after the first found occurence.</li>
744
745          <li class="int"> Add the cvs <tt>"-f"</tt> option which force cvs to ignore the user .cvsrc file during cvs
746          command execution. It appears to create problem with the cmtcvs plugin and empty directories
747          within cvs.</li>
748
749      <li class="int">Translate symlinks for the <tt>cmt show packages</tt> command.</li><li>
750
751          </li><li class="bug"> Bring a better support for the cmt checkout operation to bypass cvs weird behaviours, e.g. chekout
752          localy a directory whithout any files inside creates nothing.</li>
753
754      <li class="bug"> Correct problems when checkouting successively the same package with a different tag in the
755       <tt>without version directory</tt>mode.</li>
756
757      <li class="bug">Compute the project of the package when expanding the <project> template to fix packages with offset .</project></li>
758                         
759        </ul>
760
761 </li>
762
763      <li>
764        <b>v1r18p20051101</b>
765
766        <ul>
767
768          <!--
769          <li class="new"></li>
770          <li class="bug"></li>
771          <li class="int"></li>
772          -->
773
774          <li class="new">Add a new standard macro definition
775          <tt>$(q)</tt> to hold a double quote. This is useful to
776          define symbol values that contin doublequotes so as they are
777          not filtered out by CMT. Typical usage is to cope with paths
778          containing spaces on Windows. Various fixes have been done
779          to improve the support of spaces in paths</li>
780
781          <li class="new">The <tt>pacman</tt> source file for CMT now
782          includes a constraint on the version of Pacman.</li>
783
784          <li class="bug">Added a mechanism to filter out bad items in
785          a PATH symbol. This was causing troubles at <tt>source
786          setup</tt> time</li>
787
788          <li class="bug">Added a protection against old protocols in
789          the CVS pluggin</li>
790
791          <li class="bug">Better support of release-less projects on
792          Windows</li>
793
794          <li class="bug">Added a protection against single level
795          directories in CMTPATH</li>
796
797          <li class="bug">Added a protection against unexisting
798          makefile fragments when running the <tt>clean</tt> target.</li>
799
800          <li class="bug">The definition of standard macros was not
801          properly set when using the <tt>cmt broadcast</tt>
802          command. Thus environment variables where badly preset.</li>
803
804          <li class="int">Improve the automatic preparation of CMT releases</li>
805
806          <li class="int">The internal <tt>Makefile</tt> structure has
807          been cleaned up to remove obsolete internal targets (leading
808          to confusing behavours in some cases)</li>
809
810        </ul>
811
812      </li>
813
814      <li>
815        <b>v1r18p20050901</b>
816
817        <ul>
818
819          <!--
820          <li class="new"></li>
821          <li class="bug"></li>
822          <li class="int"></li>
823          -->
824
825          <li class="new">Package creation (either from the <tt>cmt
826          create</tt> or the <tt>cmt co</tt> commands is affected by
827          the specification of the structuring style or of the
828          structuring strategy.</li>
829
830          <li class="new">Introduce a new strategy structure_strategy
831          with only one value with/out_version_directory. This is
832          mostly useful when installed in a project file to condition
833          the behaviour of package creation afterwards</li>
834
835          <li class="new">Support dependency building using external
836          tools such as cpp -M. Fix the cmt_build_des.sh wrapper
837          script to properly format the command output.</li>
838
839          <li class="new">Perform the cmt checkout onto a project even
840          if the basic directory structure of the project is already
841          in place.</li>
842
843          <li class="new">When no current project is defined the
844          strategies are taken from the top project (eg obtained from
845          the CMTPATH)</li>
846
847          <li class="new">The include_dirs statement can now be hidden
848          in a private section.</li>
849
850          <li class="new">The include_dirs statement now accepts a
851          macro reference as its value</li>
852
853
854
855          <li class="bug">Fix incorrect generation of XXXROOT and
856          XXXCONFIG environment variables according to strategies</li>
857
858          <li class="bug">Protect against missing un/install targets</li>
859
860          <li class="bug">Fix a typo in cmt_uninstall_action.bat
861          resulting in bad management of make cleanup on Windows</li>
862
863          <li class="bug">When creating a parent-less project, link it
864          to exisiting top project(s) and upgrade strategies
865          accordingly. Avoid confusions when mixing explicit CMTPATH,
866          CMTPROJECTPATH and project files </li>
867
868          <li class="bug">Don't apply include_dirs when their expanded
869          value is empty (avoid killing -I"")</li>
870
871          <li class="bug">Reset CMTPATH to empty when filling in
872          CMTPATH from projects (avoid confusions and
873          dupplications)</li>
874
875          <li class="bug">Fix a bug in dependency builder that missed
876          some statements after a single line C++ comment</li>
877
878          <li class="bug">Cleanup unneeded duplicate path
879          separators</li>
880
881          <li class="bug">Fix a bug in standard macro generation for
882          projects</li>
883
884        </ul>
885
886      </li>
887
888      <li>
889        <b>v1r18p20050501</b>
890
891        <ul>
892
893          <!--
894          <li class="new"></li>
895          <li class="bug"></li>
896          <li class="int"></li>
897          -->
898
899          <li class="new">Fill in a pacman cache for CMT using pacman3
900          syntax. The Pacman package name is CMT.</li>
901
902          <li class="new">Extend the recursive checkout mechanism to
903          projects. The recursivity covers the use relationships
904          between projects and propagates to packges of a project when
905          the container package is specified in the project file.</li>
906
907          <li class="new">Add the cvssubprojects query command to
908          retrieve subprojects at a CVS repository level</li>
909
910          <li class="new">Add a container statement in project
911          file. The syntax is like use statements. It indicates that a
912          container-like package exists in the project. This is useful
913          for recursive checkout operations.</li>
914
915          <li class="int">Migrate to a new version of the CVS
916          pluggin. Now the protocol level is explicitly referenced
917          when sending CVS requests via the pluggin. The new protocol
918          gives the nature of the CVS module: is it a project or a
919          package. The protocol level is specified in a dedicated
920          macro in the CMT requirements file.</li>
921
922          <li class="bug">Fix the production of shared libraries on CYGWIN</li>
923
924          <li class="bug">Fix ambiguities between physical paths and
925          logical paths in PATH variables management</li>
926
927          <li class="bug">Fix arg counting bugs in cvstags and cvssubpackages commands</li>
928
929        </ul>
930
931      </li>
932
933      <li>
934        <b>v1r18p20050401</b>
935
936        <ul>
937
938          <!--
939          <li class="new"></li>
940          <li class="bug"></li>
941          <li class="int"></li>
942          -->
943
944          <li class="new">Introduce a new bug reporting system: Trac</li>
945
946          <li class="new">Accept HEAD or head as a valid version tag for packages</li>
947
948          <li class="new">The path of CMT is removed from
949          CMTPATH. Packages aside CMT are no longer reachable by
950          default</li>
951
952          <li class="new">Major restructuring of the project
953          management and package localisation. The most important
954          parameter becomes the search path CMTPROJECTPATH for
955          projects. Then CMTPATH is deduced from the effective list of
956          used projects. Project files and the dependency graph
957          described by the project use statement becomes a central
958          mechanism.</li>
959
960          <li class="new">Introduce the management of releases for
961          projects. Release must exactly match</li>
962
963          <li class="new">Install a mechanism to detect unused tags
964          from arguments or CMTSITE. This is performed during the
965          setup generation</li>
966
967          <li class="int">Source code management tansfered to SVN</li>
968
969          <li class="int">Restructure the strategy management to make
970          it fully generic.</li>
971
972          <li class="bug">Fix poor management of unknown commands </li>
973
974          <li class="bug">Suppress the export action for alias in setup.sh</li>
975
976          <li class="bug">Fix a problem in TMPDIR management with
977          multi directory level</li>
978
979          <li class="bug">Fix a problem in cmt show packages</li>
980
981          <li class="bug">Fix bad parsing of various cmt commands</li>
982
983          <li class="bug">Fix an internal bug causing misfunction in
984          the -import parameter of constituents.</li>
985
986          <li class="bug">Fix fragment for action to improve argument transmission</li>
987
988          <li class="bug">Fix pdb files for Visual about debug mode</li>
989
990        </ul>
991
992      </li>
993
994      <li>
995        <b>v1r18p20041201</b>
996
997        <ul>
998
999          <!--
1000          <li class="new"></li>
1001          <li class="bug"></li>
1002          <li class="int"></li>
1003          -->
1004
1005          <li class="int">Suppress the completely unused makefile strategy</li>
1006
1007          <li class="bug">Really apply the project specific setup
1008          strategy to control the generation of ROOT or CONFIG
1009          env. variables.</li>
1010
1011          <li class="new">Change default build strategy to <tt>without_installarea</tt></li>
1012
1013          <li class="new">${CMTROOT} is no longer an automatic part of
1014          the CMTPATH. Nor the current package automatically defines
1015          an entry in the CMTPATH search list. However a feature
1016          partly compensates this evolution: the current project
1017          (i.e. the current package area, where the developer stands)
1018          is autmatically detected when its project file exists
1019          (i.e. when its cmt/project.cmt file exists). For instance,
1020          this suppresses the need to set CMTPATH when working in one
1021          single project.</li>
1022
1023          <li class="new">The general cmt command parsing mechanism
1024          has been revisited and now "actions" are considered as
1025          extended cmt commands and no longer need the "cmt do
1026          &lt;action&gt;" syntax. One can directly use "cmt
1027          &lt;action&gt;" when the action does not conflict with
1028          internal cmt commands.</li>
1029
1030          <li class="new">Command line arguments are transmitted to
1031          "actions" now through the new standard "cmt_args" macro</li>
1032
1033          <li class="bug">Really force the settings of all
1034          Env. variables before running internal cmmands through
1035          broadcast, run or do commands.</li>
1036
1037          <li class="new">The "cmt run" command transmits all its
1038          arguments to the launched action</li>
1039
1040          <li class="new">Revisit the production of dependency files,
1041          to consider the changes made to the configuration in general
1042          in addition to the usual source changes. This consists in
1043          generating one stamp file per source, touched when its
1044          contents change rather than when recomputing the
1045          dependencies.</li>
1046
1047          <li class="bug">Better protections for CMTPATH entries</li>
1048
1049          <li class="int">Major internal restructuring of the CMT
1050          package. Internal sources are now in ../source, ../src only
1051          contains publicly exported configuration files, fragments
1052          are in ../mgr/fragments. This is for constructing a really
1053          autonomous binary kit for CMT (eg for Fink) (without needing
1054          to export two kits)</li>
1055
1056          <li class="bug">Now produce the last revision date of the
1057          CMT documentation. Insert the complete version tag rather
1058          than just the base version tag.</li>
1059
1060          <li class="new">Suppress the systematic production of
1061          bundles on Darwin machines. This must now be done
1062          explicitly.</li>
1063
1064          <li class="bug">The algorithm for commpressing paths with
1065          ../ patterns now takes into account the presence of ${xxx}
1066          expressions that cannot be reduced. It also better handle
1067          various patterns that used to produce failures.</li>
1068
1069          <li class="bug">A global checking of the configuration is
1070          performed first when running Make</li>
1071
1072          <li class="new">Incompatible major ids in the version
1073          numbers are now managed like the minor id, ie. the decision
1074          is taken in a similar way. The usual error message is
1075          displayed but this is no longer fatal, and a decision is
1076          taken</li>
1077
1078        </ul>
1079
1080      </li>
1081
1082      <li>
1083        <b>v1r16p20040901</b>
1084
1085        <ul>
1086
1087          <!--
1088          <li class="new"></li>
1089          <li class="bug"></li>
1090          <li class="int"></li>
1091          -->
1092
1093          <li class="new">Introduce the support of SLC3 (Scientific
1094          Linux) platforms</li>
1095
1096          <li class="new">Trigger the reconstruction of the dependency
1097          makefile fragment from a change in the
1098          &lt;package&gt;_setup.make, ie from any change in tags, uses
1099          or CMTPATHs</li>
1100
1101          <li class="new"><tt>CMTBIN</tt> now follows a new convention
1102          on Unix `uname`-`uname -m` to differentiate among Linux
1103          platforms.</li>
1104
1105          <li class="new">Introduce a new -strict option to the cmt
1106          expand model to support model files freely formatted. This
1107          implied securing the user defined model elements by the
1108          <tt>cmts</tt> or <tt>cmtv</tt> name space
1109          keywords. <tt>cmts:xxx</tt> indicates a scalar modelling
1110          element <tt>xxx</tt> meant to be expanded only
1111          once. <tt>cmtv:yyy</tt> indicates a vector modelling element
1112          <tt>yyy</tt> meant to be expanded once per item in the
1113          vector of values.</li>
1114
1115          <li class="new">Better management of temporary file
1116          generation. Now support the standard TMPDIR environment
1117          variable to redirect temporary locations.</li>
1118
1119          <li class="int">Apply the new GPL-like licence officially
1120          provided by CNRS-CEA-INRIA</li>
1121
1122          <li class="int">Use stderr instead of stdout to display
1123          error and warning messages. Mainly to better expose messages in
1124          the source setup operations</li>
1125
1126          <li class="bug">Protect against source files not found (avoid infinite loops in make)</li>
1127
1128          <li class="bug">Better management of the build strategy on
1129          installation area to generate various automatic macros or
1130          sets (installarea_linkopts, PATH, LD_LIBRARY_PATH,
1131          etc...)</li>
1132
1133          <li class="bug">Revisit the package scan algorithm to
1134          improve the detection of directory structure of packages as
1135          well as their version tags.</li>
1136
1137          <li class="bug">Compress the path definitions (ie compress
1138          the ../xxx patterns) and use the compressed paths
1139          everywhere</li>
1140
1141        </ul>
1142
1143      </li>
1144
1145      <li>
1146        <b>v1r16p20040701</b>
1147
1148        <ul>
1149
1150          <!--
1151          <li class="new"></li>
1152          <li class="bug"></li>
1153          <li class="int"></li>
1154          -->
1155
1156          <li class="bug">Better generation of .def files for DATA</li>
1157
1158          <li class="bug">fix a bug that impacted on the order of
1159          compatible use requests with different wilcarded specifications</li>
1160
1161        </ul>
1162
1163      </li>
1164
1165      <li>
1166        <b>v1r16p20040527</b>
1167
1168        <ul>
1169
1170          <!--
1171          <li class="new"></li>
1172          <li class="bug"></li>
1173          <li class="int"></li>
1174          -->
1175
1176          <li class="new">Generate the <tt>target_${CONSTITUENT}</tt>
1177          tag to trigger configuration control per target. This
1178          feature is only activated when the new <tt>-target_tag</tt>
1179          option is specified to a constituent. Specific tag makefiles
1180          are then generated for those targets. This tag is activated
1181          either when <tt>make &lt;target&gt;</tt> or <tt>cmt do
1182          &lt;action&gt;</tt> is run.</li>
1183
1184          <li class="new">Add a section on package semantics in the documentation</li>
1185
1186          <li class="new">The <tt>apply_tag</tt> keyword now accepts macro expansion for its argument.</li>
1187
1188          <li class="new">Add the support for Enterprise Linux</li>
1189
1190          <li class="new">Create automatic tags from
1191          <tt>cmt_hardware</tt> <tt>cmt_system_version</tt> and
1192          <tt>cmt_compiler_version</tt></li>
1193
1194          <li class="new">Add a filtering script to keep 3 digits instead of 2</li>
1195
1196          <li class="int">Start the implementation of a centralized log message facility</li>
1197
1198          <li class="int">Implement a <tt>READONLY</tt> mode to
1199          Makefiles to generate all intermediate files in
1200          <tt>/tmp/CMT_*</tt> rather than in <tt>../cmt</tt></li>
1201
1202          <li class="int">Associate a dedicated project with CMTHOME and CMTUSERCONTEXT to manage strategies</li>
1203
1204          <li class="bug">Set the macro <tt>shlibsuffix</tt> for Win32</li>
1205          <li class="bug">Use /bin/pwd instead of the raw pwd in various CMT scripts for Unix</li>
1206          <li class="bug">Fix misunderstanding of of version specification of the form v1r2p (ie without a trailing number)</li>
1207          <li class="bug">Explicitly close the scope sections at the end of requirements files</li>
1208
1209        </ul>
1210
1211      </li>
1212
1213      <li>
1214        <b>v1r16</b>
1215
1216        <ul>
1217
1218          <!--
1219          <li class="new"></li>
1220          <li class="bug"></li>
1221          <li class="int"></li>
1222          -->
1223
1224          <li class="new">Offer an [x]emacs mode for editing requirements files</li>
1225
1226          <li class="new">Permit macro expressions in the <tt>tag</tt> statement</li>
1227
1228          <li class="new">Possibility to specify additional
1229          <tt>mount_filters</tt> in <tt>.cmtrc</tt></li>
1230
1231          <li class="new">Introduce new regexp-based remove operations
1232          for symbols <tt>macro_remove_regexp</tt>,
1233          <tt>set_remove_regexp</tt> and
1234          <tt>path_remove_regexp</tt></li>
1235
1236          <li class="new">Add <tt>-n</tt> and <tt>-v</tt> options to
1237          <tt>cmt cvs</tt> commands to support simulation and verbose
1238          modes</li>
1239
1240          <li class="new">Ensure that the <tt>constituents</tt> macro is always private</li>
1241
1242          <li class="new">Introduce support for <i>projects</i>
1243          associated with package areas, i.e. one project per item in
1244          <tt>CMTPATH</tt>. Possibility to setup strategies per
1245          project. Project definitions stored in a new
1246          <tt>cmt/project.cmt</tt> top level file. New
1247          <tt>&lt;package&gt;_project</tt> standard macro. And
1248          associated pattern templates.</li>
1249
1250          <li class="new">Make <tt>CMTINSTALLAREA</tt> a macro instead of a set</li>
1251
1252          <li class="new">Suppress dependency computation when the
1253          <tt>make QUICK=1</tt> option is used</li>
1254
1255          <li class="new">New <i>action</i> concept to support
1256          simplified shell action definition. Action is an extension
1257          of the generic symbol mechanism (like macros), thus defining
1258          an action uses the same syntax as macros. Actions are
1259          triggered with <tt>make</tt> or <tt>cmt do</tt></li>
1260
1261          <li class="new"><i>public</i> and <i>private</i> section can be ended by a
1262          new keyword <tt>end_public</tt> <tt>end_private</tt>. Ending
1263          keywords switch back to the previous scope active before the
1264          most recent opening keyword</li>
1265
1266          <li class="new">Can use a pattern name as a plain CMT
1267          keyword. I.e. the <tt>apply_pattern</tt> keyword is optional
1268          except to resolve ambiguities</li>
1269
1270          <li class="int">Generate part of the standard macros before
1271          reading the requirements file</li>
1272
1273          <li class="int">Lots of internal optimisations checked with
1274          <tt>valgrind</tt> and <tt>gprof</tt></li>
1275
1276          <li class="bug">Only set non empty environment variables</li>
1277
1278          <li class="bug">Fix bad definition of <tt>&lt;PACKAGE&gt;VERSION</tt></li>
1279
1280          <li class="bug">Add dependency to all stamps file to trigger rebuild of shared libraries</li>
1281
1282          <li class="bug">Add dependency to all requirements file to trigger rebuild of applications</li>
1283
1284          <li class="bug">Suppress install area cleanup action from
1285          cmt config and cmt setup</li>
1286
1287          <li class="bug">Improved syntax checking on constituents</li>
1288
1289          <li class="bug">Fix construction of paths when symlinks
1290          exist along pwd</li>
1291
1292          <li class="bug">Added various protections for bad pattern
1293          syntaxes</li>
1294
1295        </ul>
1296
1297      </li>
1298      <li>
1299        <b>v1r14p20031120</b>
1300        <ul>
1301          <li class="new">Add a new standard macro $(&lt;group&gt;_dependencies)to specify global dependencies for a group</li>
1302          <li class="new">Add support for bundles on Darwin platforms</li>
1303          <li class="bug">Consider symlinked paths in CMTPATH entries</li>
1304          <li class="bug">Always setup cmtpath patterns even if the current installation area is undefined</li>
1305
1306          <li class="new">Provide a generic pacman manifest file for
1307            CMT. All instances of the "&lt;version&gt;" pattern need to be
1308            substituted by the effective version of CMT to make it a
1309            real pacman file as follows:
1310            <pre>sed -e 's#[&lt;]version[&gt;]#'`cmt -quiet version`'#g' $CMTROOT/mgr/CMT.pacman</pre>
1311          </li>
1312
1313        </ul>
1314      </li>
1315
1316      <li>
1317        <b>v1r14p20031027</b>
1318        <ul>
1319          <li class="bug">Fix a bug in the bootstrap mechanism to define CMTINSTALLAREA</li>
1320        </ul>
1321      </li>
1322
1323      <li>
1324        <b>v1r14p20031022</b>
1325        <ul>
1326          <li class="new">Add the possibility to specify exclusion files when installing directories in Installation Area (on windows only)</li>
1327          <li class="bug">Fix a bug : CMTINSTALLAREA symbol has to be defined before all other symbols in set_standard_macros</li>
1328          <li class="bug">Few fixes on nmake flavour of install area mechanisms</li>
1329          <li class="new">Generate &lt;package&gt;_cmtpath and &lt;package&gt;_offset also for current package</li>
1330          <li class="bug">Fix warning messages that confuse csh when environment variables are not defined</li>
1331        </ul>
1332      </li>
1333
1334      <li>
1335        <b>v1r14p20031014</b>
1336        <ul>
1337          <li class="bug">Fix a problem in broadcast operation for handling return status 2 (caused to unexpectedly break the loop in some cases)</li>
1338          <li class="bug">Force auto_imports to On when context is unspecified (internal)</li>
1339          <li class="bug">Stop trying to make use of PWD</li>
1340          <li class="bug">Fix a bug in internal incomplete expansion of macros</li>
1341          <li class="bug">Fix a bug in consistency checks of PWD vs CMTINSTALLAREA</li>
1342          <li class="new">Convert $(cmtpath) and $(offset) macros to $(package_cmtpath) and $(package_offset)</li>
1343          <li class="new">Add dependency list for constituent makefile similar to the constituent target (force the same build order)</li>
1344          <li class="bug">Fix a bug in use graph internal management</li>
1345          <li class="bug">Fix setup script calling mechanism in no_version style</li>
1346          <li class="new">Add a -k=&lt;regexp&gt; argument for selection patterns of constituent sources.</li>
1347          <li class="new">Support wildcarded suffixes (*.*) in constituent sources</li>
1348          <li class="new">Standardize the output format of show uses (make it reliable for user scripts)</li>
1349        </ul>
1350      </li>
1351
1352      <li>
1353        <b>v1r14p20030811</b>
1354        <ul>
1355          <li class="bug">Trailing slashes on offset specification in use statement were causing troubles. Now they are properly handled.</li>
1356          <li class="new">The
1357broadcast pattern as well as the standard macro &lt;cmtpath&gt; is now
1358renamed &lt;package_cmtpath&gt; to avoid confusion with the CMTPATH
1359variable on Windows.</li>
1360          <li class="int">Make use of ${PWD} when available to acquire the value for "cmt show pwd"</li>
1361          <li class="bug">Add or refresh tuning for CYGWIN and for LynxOS</li>
1362          <li class="bug">Work around a limitation of some old version of the C++ compiler on LynxOS</li>
1363          <li class="new">Improve the display of incompatible use specifications.</li>
1364          <li class="int">Dynamically
1365create the CMTDownload.html web page to really reflect what is
1366available when installing the CMT release on the primary CMT web site.</li>
1367          <li class="bug">Setup.bat scripts on DOS are now relocatable wrt heterogeneous file systems (AFS, DFS, etc...)</li>
1368        </ul>
1369      </li>
1370
1371      <li>
1372        <b>v1r14p20030620</b>
1373        <ul>
1374          <li class="new">introduce a generic "Unix" tag for all Unix platforms. Both Linux, HP-UX, LynxOS, alpha, ... do validate Unix</li>
1375          <li class="new">hide
1376the make_fragments declaration in private sections. This was not true
1377previously. A make_fragment declaration installed in a private section
1378will now be hidden to clients.</li>
1379          <li class="bug">convert ${} into
1380$() syntax for tag makefiles on Windows. This actually reverts to a
1381feature of an old CMT version which had disappeared. This was causing a
1382problem since the ${} syntax is not understood by nmake</li>
1383          <li class="new">add
1384a command "cmt show use_paths &lt;target&gt;" to display all possible
1385paths to the target package. This is useful to understand how a given
1386package is reached, for instance when it is desired to cut the use
1387relationship and make it private somewhere in the graph.</li>
1388          <li class="new">add a command "cmt show cycles" to display circular dependencies in the use graph.</li>
1389          <li class="new">provide
1390a binary RPM for CMT itself (only for redhat 7.2 distribution). It is
1391downloadable from the usual Download page and provide a complete
1392installation of CMT (including make fragments, binary, etc..). It is a
1393relocatable RPM (install it using the --relocate option). (See the
1394install WEB page for complete notice)</li>
1395          <li class="new">Add an
1396extended script to retrieve information about Linux version
1397(cmt_linux_version.sh). It supports Redhat, Debian, Suse. It is used to
1398compute the cmt_system_version macro (contributions from Clark McGrew
1399and Wim Lavrijsen)</li>
1400          <li class="bug">The setup scripts for
1401Windows now use %TEMP% instead of %HOMEDRIVE%%HOMEPATH% to store
1402temporary files (contributions from Pere Mato and Florence Ranjard)</li>
1403          <li class="new">Add
1404the --public and --private global options for cmt commands, to control
1405whether the use graph traverses or not the private sections:
1406<pre>&gt; cmt --public ...
1407</pre> only sees public uses (default behavior for most commands but
1408not for cmt broadcast and cmt show uses which traverse the private sub
1409graphs)
1410<pre>&gt; cmt --private ...
1411</pre> forces the traversal of private subgraphs. This is already the
1412default behavior for cmt show uses and for cmt broadcast, but can now
1413be applied to any CMT command.</li>
1414          <li class="bug">A global pattern specifying private sections did not really generate private definitions</li>
1415        </ul>
1416      </li>
1417
1418<!--
1419      <li>
1420        <b></b>
1421        <ul>
1422          <li class=""></li>
1423        </ul>
1424      </li>
1425-->
1426
1427    </ul>
1428
1429
1430    <hr>
1431    <address><a href="mailto:CMT-L@IN2P3.FR">Christian Arnault</a></address>
1432    <address><a href="mailto:CMT-L@IN2P3.FR">Grigory Rybkin</a></address>
1433 
1434</body></html>
Note: See TracBrowser for help on using the repository browser.