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

Last change on this file since 83 was 83, checked in by arnault, 20 years ago

Add structure_strategy - see CL#278

  • Property svn:eol-style set to native
File size: 22.4 KB
RevLine 
[2]1<!--
2//-----------------------------------------------------------
3// Copyright Christian Arnault LAL-Orsay CNRS
4// arnault@lal.in2p3.fr
5// See the complete license in cmt_license.txt "http://www.cecill.info".
6//-----------------------------------------------------------
7-->
8
9<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
10<html>
11 <head>
12 <title>Release notes</title>
13
14 <style type='text/css'>
15li.bug
16{
17 color:#FF0000;
18}
19li.new
20{
21 color:#0000FF;
22 font-weight:bold;
23}
24li.int
25{
26 color:#00FF00;
27}
28<!-- font-style:italic; -->
29 </style>
30 </head>
31
32 <body BGCOLOR="#FFFFFF" link="#550088" alink="#007777" alink="#007777">
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
45 <ul>
46
47 <ul>
48
49 <li>
[83]50 <b>v1r18p20050901</b>
51
52 <ul>
53
54 <!--
55 <li class="new"></li>
56 <li class="bug"></li>
57 <li class="int"></li>
58 -->
59
60 <li class="new">Support dependency building using external
61 tools such as cpp -M. Fix the cmt_build_des.sh wrapper
62 script to properly format the command output.</li>
63
64 <li class="new">Perform the cmt checkout onto a project even
65 if the basic directory structure of the project is already
66 in place.</li>
67
68 <li class="new">When no current project is defined the
69 strategies are taken from the top project (eg obtained from
70 the CMTPATH)</li>
71
72 <li class="new">The include_dirs statement can now be hidden
73 in a private section.</li>
74
75 <li class="new">The include_dirs statement now accepts a
76 macro reference as its value</li>
77
78
79
80 <li class="bug">Fix incorrect generation of XXXROOT and
81 XXXCONFIG environment variables according to strategies</li>
82
83 <li class="bug">Protect against missing un/install targets</li>
84
85 <li class="bug">Fix a typo in cmt_uninstall_action.bat
86 resulting in bad management of make cleanup on Windows</li>
87
88 <li class="bug">When creating a parent-less project, link it
89 to exisiting top project(s) and upgrade strategies
90 accordingly. Avoid confusions when mixing explicit CMTPATH,
91 CMTPROJECTPATH and project files </li>
92
93 <li class="bug">Don't apply include_dirs when their expanded
94 value is empty (avoid killing -I"")</li>
95
96 <li class="bug">Reset CMTPATH to empty when filling in
97 CMTPATH from projects (avoid confusions and
98 dupplications)</li>
99
100 <li class="bug">Fix a bug in dependency builder that missed
101 some statements after a single line C++ comment</li>
102
103 <li class="bug">Cleanup unneeded duplicate path
104 separators</li>
105
106 <li class="bug">Fix a bug in standard macro generation for
107 projects</li>
108
109 </ul>
110
111 </li>
112
113 <li>
[46]114 <b>v1r18p20050501</b>
115
116 <ul>
117
118 <!--
119 <li class="new"></li>
120 <li class="bug"></li>
121 <li class="int"></li>
122 -->
123
124 <li class="new">Fill in a pacman cache for CMT using pacman3
125 syntax. The Pacman package name is CMT.</li>
126
127 <li class="new">Extend the recursive checkout mechanism to
128 projects. The recursivity covers the use relationships
129 between projects and propagates to packges of a project when
130 the container package is specified in the project file.</li>
131
132 <li class="new">Add the cvssubprojects query command to
133 retrieve subprojects at a CVS repository level</li>
134
135 <li class="new">Add a container statement in project
136 file. The syntax is like use statements. It indicates that a
137 container-like package exists in the project. This is useful
138 for recursive checkout operations.</li>
139
140 <li class="int">Migrate to a new version of the CVS
141 pluggin. Now the protocol level is explicitly referenced
142 when sending CVS requests via the pluggin. The new protocol
143 gives the nature of the CVS module: is it a project or a
144 package. The protocol level is specified in a dedicated
145 macro in the CMT requirements file.</li>
146
147 <li class="bug">Fix the production of shared libraries on CYGWIN</li>
148
149 <li class="bug">Fix ambiguities between physical paths and
150 logical paths in PATH variables management</li>
151
152 <li class="bug">Fix arg counting bugs in cvstags and cvssubpackages commands</li>
153
154 </ul>
155
156 </li>
157
158 <li>
[32]159 <b>v1r18p20050401</b>
[2]160
161 <ul>
162
163 <!--
164 <li class="new"></li>
165 <li class="bug"></li>
166 <li class="int"></li>
167 -->
168
[32]169 <li class="new">Introduce a new bug reporting system: Trac</li>
170
171 <li class="new">Accept HEAD or head as a valid version tag for packages</li>
172
173 <li class="new">The path of CMT is removed from
174 CMTPATH. Packages aside CMT are no longer reachable by
175 default</li>
176
177 <li class="new">Major restructuring of the project
178 management and package localisation. The most important
179 parameter becomes the search path CMTPROJECTPATH for
180 projects. Then CMTPATH is deduced from the effective list of
181 used projects. Project files and the dependency graph
182 described by the project use statement becomes a central
183 mechanism.</li>
184
185 <li class="new">Introduce the management of releases for
186 projects. Release must exactly match</li>
187
188 <li class="new">Install a mechanism to detect unused tags
189 from arguments or CMTSITE. This is performed during the
190 setup generation</li>
191
192 <li class="int">Source code management tansfered to SVN</li>
193
194 <li class="int">Restructure the strategy management to make
195 it fully generic.</li>
196
197 <li class="bug">Fix poor management of unknown commands </li>
198
199 <li class="bug">Suppress the export action for alias in setup.sh</li>
200
201 <li class="bug">Fix a problem in TMPDIR management with
202 multi directory level</li>
203
204 <li class="bug">Fix a problem in cmt show packages</li>
205
206 <li class="bug">Fix bad parsing of various cmt commands</li>
207
208 <li class="bug">Fix an internal bug causing misfunction in
209 the -import parameter of constituents.</li>
210
211 <li class="bug">Fix fragment for action to improve argument transmission</li>
212
213 <li class="bug">Fix pdb files for Visual about debug mode</li>
214
215 </ul>
216
217 </li>
218
219 <li>
220 <b>v1r18p20041201</b>
221
222 <ul>
223
224 <!--
225 <li class="new"></li>
226 <li class="bug"></li>
227 <li class="int"></li>
228 -->
229
[2]230 <li class="int">Suppress the completely unused makefile strategy</li>
231
232 <li class="bug">Really apply the project specific setup
233 strategy to control the generation of ROOT or CONFIG
234 env. variables.</li>
235
236 <li class="new">Change default build strategy to <tt>without_installarea</tt></li>
237
238 <li class="new">${CMTROOT} is no longer an automatic part of
239 the CMTPATH. Nor the current package automatically defines
240 an entry in the CMTPATH search list. However a feature
241 partly compensates this evolution: the current project
242 (i.e. the current package area, where the developer stands)
243 is autmatically detected when its project file exists
244 (i.e. when its cmt/project.cmt file exists). For instance,
245 this suppresses the need to set CMTPATH when working in one
246 single project.</li>
247
248 <li class="new">The general cmt command parsing mechanism
249 has been revisited and now "actions" are considered as
250 extended cmt commands and no longer need the "cmt do
251 &lt;action&gt;" syntax. One can directly use "cmt
252 &lt;action&gt;" when the action does not conflict with
253 internal cmt commands.</li>
254
255 <li class="new">Command line arguments are transmitted to
256 "actions" now through the new standard "cmt_args" macro</li>
257
258 <li class="bug">Really force the settings of all
259 Env. variables before running internal cmmands through
260 broadcast, run or do commands.</li>
261
262 <li class="new">The "cmt run" command transmits all its
263 arguments to the launched action</li>
264
265 <li class="new">Revisit the production of dependency files,
266 to consider the changes made to the configuration in general
267 in addition to the usual source changes. This consists in
268 generating one stamp file per source, touched when its
269 contents change rather than when recomputing the
270 dependencies.</li>
271
272 <li class="bug">Better protections for CMTPATH entries</li>
273
274 <li class="int">Major internal restructuring of the CMT
275 package. Internal sources are now in ../source, ../src only
276 contains publicly exported configuration files, fragments
277 are in ../mgr/fragments. This is for constructing a really
278 autonomous binary kit for CMT (eg for Fink) (without needing
279 to export two kits)</li>
280
281 <li class="bug">Now produce the last revision date of the
282 CMT documentation. Insert the complete version tag rather
283 than just the base version tag.</li>
284
285 <li class="new">Suppress the systematic production of
286 bundles on Darwin machines. This must now be done
287 explicitly.</li>
288
289 <li class="bug">The algorithm for commpressing paths with
290 ../ patterns now takes into account the presence of ${xxx}
291 expressions that cannot be reduced. It also better handle
292 various patterns that used to produce failures.</li>
293
294 <li class="bug">A global checking of the configuration is
295 performed first when running Make</li>
296
297 <li class="new">Incompatible major ids in the version
298 numbers are now managed like the minor id, ie. the decision
299 is taken in a similar way. The usual error message is
300 displayed but this is no longer fatal, and a decision is
301 taken</li>
302
303 </ul>
304
305 </li>
306
307 <li>
308 <b>v1r16p20040901</b>
309
310 <ul>
311
312 <!--
313 <li class="new"></li>
314 <li class="bug"></li>
315 <li class="int"></li>
316 -->
317
318 <li class="new">Introduce the support of SLC3 (Scientific
319 Linux) platforms</li>
320
321 <li class="new">Trigger the reconstruction of the dependency
322 makefile fragment from a change in the
323 &lt;package&gt;_setup.make, ie from any change in tags, uses
324 or CMTPATHs</li>
325
326 <li class="new"><tt>CMTBIN</tt> now follows a new convention
327 on Unix `uname`-`uname -m` to differentiate among Linux
328 platforms.</li>
329
330 <li class="new">Introduce a new -strict option to the cmt
331 expand model to support model files freely formatted. This
332 implied securing the user defined model elements by the
333 <tt>cmts</tt> or <tt>cmtv</tt> name space
334 keywords. <tt>cmts:xxx</tt> indicates a scalar modelling
335 element <tt>xxx</tt> meant to be expanded only
336 once. <tt>cmtv:yyy</tt> indicates a vector modelling element
337 <tt>yyy</tt> meant to be expanded once per item in the
338 vector of values.</li>
339
340 <li class="new">Better management of temporary file
341 generation. Now support the standard TMPDIR environment
342 variable to redirect temporary locations.</li>
343
344 <li class="int">Apply the new GPL-like licence officially
345 provided by CNRS-CEA-INRIA</li>
346
347 <li class="int">Use stderr instead of stdout to display
348 error and warning messages. Mainly to better expose messages in
349 the source setup operations</li>
350
351 <li class="bug">Protect against source files not found (avoid infinite loops in make)</li>
352
353 <li class="bug">Better management of the build strategy on
354 installation area to generate various automatic macros or
355 sets (installarea_linkopts, PATH, LD_LIBRARY_PATH,
356 etc...)</li>
357
358 <li class="bug">Revisit the package scan algorithm to
359 improve the detection of directory structure of packages as
360 well as their version tags.</li>
361
362 <li class="bug">Compress the path definitions (ie compress
363 the ../xxx patterns) and use the compressed paths
364 everywhere</li>
365
366 </ul>
367
368 </li>
369
370 <li>
371 <b>v1r16p20040701</b>
372
373 <ul>
374
375 <!--
376 <li class="new"></li>
377 <li class="bug"></li>
378 <li class="int"></li>
379 -->
380
381 <li class="bug">Better generation of .def files for DATA</li>
382
383 <li class="bug">fix a bug that impacted on the order of
384 compatible use requests with different wilcarded specifications</li>
385
386 </ul>
387
388 </li>
389
390 <li>
391 <b>v1r16p20040527</b>
392
393 <ul>
394
395 <!--
396 <li class="new"></li>
397 <li class="bug"></li>
398 <li class="int"></li>
399 -->
400
401 <li class="new">Generate the <tt>target_${CONSTITUENT}</tt>
402 tag to trigger configuration control per target. This
403 feature is only activated when the new <tt>-target_tag</tt>
404 option is specified to a constituent. Specific tag makefiles
405 are then generated for those targets. This tag is activated
406 either when <tt>make &lt;target&gt;</tt> or <tt>cmt do
407 &lt;action&gt;</tt> is run.</li>
408
409 <li class="new">Add a section on package semantics in the documentation</li>
410
411 <li class="new">The <tt>apply_tag</tt> keyword now accepts macro expansion for its argument.</li>
412
413 <li class="new">Add the support for Enterprise Linux</li>
414
415 <li class="new">Create automatic tags from
416 <tt>cmt_hardware</tt> <tt>cmt_system_version</tt> and
417 <tt>cmt_compiler_version</tt></li>
418
419 <li class="new">Add a filtering script to keep 3 digits instead of 2</li>
420
421 <li class="int">Start the implementation of a centralized log message facility</li>
422
423 <li class="int">Implement a <tt>READONLY</tt> mode to
424 Makefiles to generate all intermediate files in
425 <tt>/tmp/CMT_*</tt> rather than in <tt>../cmt</tt></li>
426
427 <li class="int">Associate a dedicated project with CMTHOME and CMTUSERCONTEXT to manage strategies</li>
428
429 <li class="bug">Set the macro <tt>shlibsuffix</tt> for Win32</li>
430 <li class="bug">Use /bin/pwd instead of the raw pwd in various CMT scripts for Unix</li>
431 <li class="bug">Fix misunderstanding of of version specification of the form v1r2p (ie without a trailing number)</li>
432 <li class="bug">Explicitly close the scope sections at the end of requirements files</li>
433
434 </ul>
435
436 </li>
437
438 <li>
439 <b>v1r16</b>
440
441 <ul>
442
443 <!--
444 <li class="new"></li>
445 <li class="bug"></li>
446 <li class="int"></li>
447 -->
448
449 <li class="new">Offer an [x]emacs mode for editing requirements files</li>
450
451 <li class="new">Permit macro expressions in the <tt>tag</tt> statement</li>
452
453 <li class="new">Possibility to specify additional
454 <tt>mount_filters</tt> in <tt>.cmtrc</tt></li>
455
456 <li class="new">Introduce new regexp-based remove operations
457 for symbols <tt>macro_remove_regexp</tt>,
458 <tt>set_remove_regexp</tt> and
459 <tt>path_remove_regexp</tt></li>
460
461 <li class="new">Add <tt>-n</tt> and <tt>-v</tt> options to
462 <tt>cmt cvs</tt> commands to support simulation and verbose
463 modes</li>
464
465 <li class="new">Ensure that the <tt>constituents</tt> macro is always private</li>
466
467 <li class="new">Introduce support for <i>projects</i>
468 associated with package areas, i.e. one project per item in
469 <tt>CMTPATH</tt>. Possibility to setup strategies per
470 project. Project definitions stored in a new
471 <tt>cmt/project.cmt</tt> top level file. New
472 <tt>&lt;package&gt;_project</tt> standard macro. And
473 associated pattern templates.</li>
474
475 <li class="new">Make <tt>CMTINSTALLAREA</tt> a macro instead of a set</li>
476
477 <li class="new">Suppress dependency computation when the
478 <tt>make QUICK=1</tt> option is used</li>
479
480 <li class="new">New <i>action</i> concept to support
481 simplified shell action definition. Action is an extension
482 of the generic symbol mechanism (like macros), thus defining
483 an action uses the same syntax as macros. Actions are
484 triggered with <tt>make</tt> or <tt>cmt do</tt></li>
485
486 <li class="new"><i>public</i> and <i>private</i> section can be ended by a
487 new keyword <tt>end_public</tt> <tt>end_private</tt>. Ending
488 keywords switch back to the previous scope active before the
489 most recent opening keyword</li>
490
491 <li class="new">Can use a pattern name as a plain CMT
492 keyword. I.e. the <tt>apply_pattern</tt> keyword is optional
493 except to resolve ambiguities</li>
494
495 <li class="int">Generate part of the standard macros before
496 reading the requirements file</li>
497
498 <li class="int">Lots of internal optimisations checked with
499 <tt>valgrind</tt> and <tt>gprof</tt></li>
500
501 <li class="bug">Only set non empty environment variables</li>
502
503 <li class="bug">Fix bad definition of <tt>&lt;PACKAGE&gt;VERSION</tt></li>
504
505 <li class="bug">Add dependency to all stamps file to trigger rebuild of shared libraries</li>
506
507 <li class="bug">Add dependency to all requirements file to trigger rebuild of applications</li>
508
509 <li class="bug">Suppress install area cleanup action from
510 cmt config and cmt setup</li>
511
512 <li class="bug">Improved syntax checking on constituents</li>
513
514 <li class="bug">Fix construction of paths when symlinks
515 exist along pwd</li>
516
517 <li class="bug">Added various protections for bad pattern
518 syntaxes</li>
519
520 </ul>
521
522 </li>
523 <li>
524 <b>v1r14p20031120</b>
525 <ul>
526 <li class="new">Add a new standard macro $(&lt;group&gt;_dependencies)to specify global dependencies for a group</li>
527 <li class="new">Add support for bundles on Darwin platforms</li>
528 <li class="bug">Consider symlinked paths in CMTPATH entries</li>
529 <li class="bug">Always setup cmtpath patterns even if the current installation area is undefined</li>
530
531 <li class="new">Provide a generic pacman manifest file for
532 CMT. All instances of the "&lt;version&gt;" pattern need to be
533 substituted by the effective version of CMT to make it a
534 real pacman file as follows:
535 <pre>sed -e 's#[&lt;]version[&gt;]#'`cmt -quiet version`'#g' $CMTROOT/mgr/CMT.pacman</pre>
536 </li>
537
538 </ul>
539 </li>
540
541 <li>
542 <b>v1r14p20031027</b>
543 <ul>
544 <li class="bug">Fix a bug in the bootstrap mechanism to define CMTINSTALLAREA</li>
545 </ul>
546 </li>
547
548 <li>
549 <b>v1r14p20031022</b>
550 <ul>
551 <li class="new">Add the possibility to specify exclusion files when installing directories in Installation Area (on windows only)</li>
552 <li class="bug">Fix a bug : CMTINSTALLAREA symbol has to be defined before all other symbols in set_standard_macros</li>
553 <li class="bug">Few fixes on nmake flavour of install area mechanisms</li>
554 <li class="new">Generate &lt;package&gt;_cmtpath and &lt;package&gt;_offset also for current package</li>
555 <li class="bug">Fix warning messages that confuse csh when environment variables are not defined</li>
556 </ul>
557 </li>
558
559 <li>
560 <b>v1r14p20031014</b>
561 <ul>
562 <li class="bug">Fix a problem in broadcast operation for handling return status 2 (caused to unexpectedly break the loop in some cases)</li>
563 <li class="bug">Force auto_imports to On when context is unspecified (internal)</li>
564 <li class="bug">Stop trying to make use of PWD</li>
565 <li class="bug">Fix a bug in internal incomplete expansion of macros</li>
566 <li class="bug">Fix a bug in consistency checks of PWD vs CMTINSTALLAREA</li>
567 <li class="new">Convert $(cmtpath) and $(offset) macros to $(package_cmtpath) and $(package_offset)</li>
568 <li class="new">Add dependency list for constituent makefile similar to the constituent target (force the same build order)</li>
569 <li class="bug">Fix a bug in use graph internal management</li>
570 <li class="bug">Fix setup script calling mechanism in no_version style</li>
571 <li class="new">Add a -k=&lt;regexp&gt; argument for selection patterns of constituent sources.</li>
572 <li class="new">Support wildcarded suffixes (*.*) in constituent sources</li>
573 <li class="new">Standardize the output format of show uses (make it reliable for user scripts)</li>
574 </ul>
575 </li>
576
577 <li>
578 <b>v1r14p20030811</b>
579 <ul>
580 <li class="bug">Trailing slashes on offset specification in use statement were causing troubles. Now they are properly handled.</li>
581 <li class="new">The broadcast pattern as well as the standard macro &lt;cmtpath&gt; is now renamed &lt;package_cmtpath&gt; to avoid confusion with the CMTPATH variable on Windows.</li>
582 <li class="int">Make use of ${PWD} when available to acquire the value for "cmt show pwd"</li>
583 <li class="bug">Add or refresh tuning for CYGWIN and for LynxOS</li>
584 <li class="bug">Work around a limitation of some old version of the C++ compiler on LynxOS</li>
585 <li class="new">Improve the display of incompatible use specifications.</li>
586 <li class="int">Dynamically create the CMTDownload.html web page to really reflect what is available when installing the CMT release on the primary CMT web site.</li>
587 <li class="bug">Setup.bat scripts on DOS are now relocatable wrt heterogeneous file systems (AFS, DFS, etc...)</li>
588 </ul>
589 </li>
590
591 <li>
592 <b>v1r14p20030620</b>
593 <ul>
594 <li class="new">introduce a generic "Unix" tag for all Unix platforms. Both Linux, HP-UX, LynxOS, alpha, ... do validate Unix</li>
595 <li class="new">hide the make_fragments declaration in private sections. This was not true previously. A make_fragment declaration installed in a private section will now be hidden to clients.</li>
596 <li class="bug">convert ${} into $() syntax for tag makefiles on Windows. This actually reverts to a feature of an old CMT version which had disappeared. This was causing a problem since the ${} syntax is not understood by nmake</li>
597 <li class="new">add a command "cmt show use_paths &lt;target&gt;" to display all possible paths to the target package. This is useful to understand how a given package is reached, for instance when it is desired to cut the use relationship and make it private somewhere in the graph.</li>
598 <li class="new">add a command "cmt show cycles" to display circular dependencies in the use graph.</li>
599 <li class="new">provide a binary RPM for CMT itself (only for redhat 7.2 distribution). It is downloadable from the usual Download page and provide a complete installation of CMT (including make fragments, binary, etc..). It is a relocatable RPM (install it using the --relocate option). (See the install WEB page for complete notice)</li>
600 <li class="new">Add an extended script to retrieve information about Linux version (cmt_linux_version.sh). It supports Redhat, Debian, Suse. It is used to compute the cmt_system_version macro (contributions from Clark McGrew and Wim Lavrijsen)</li>
601 <li class="bug">The setup scripts for Windows now use %TEMP% instead of %HOMEDRIVE%%HOMEPATH% to store temporary files (contributions from Pere Mato and Florence Ranjard)</li>
602 <li class="new">Add the --public and --private global options for cmt commands, to control whether the use graph traverses or not the private sections:
603<pre>
604&gt; cmt --public ...
605</pre>
606 only sees public uses (default behavior for most commands but not for cmt broadcast and cmt show uses which traverse the private sub graphs)
607<pre>
608&gt; cmt --private ...
609</pre>
610 forces the traversal of private subgraphs. This is already the default behavior for cmt show uses and for cmt broadcast, but can now be applied to any CMT command.</li>
611 <li class="bug">A global pattern specifying private sections did not really generate private definitions</li>
612 </ul>
613 </li>
614
615<!--
616 <li>
617 <b></b>
618 <ul>
619 <li class=""></li>
620 </ul>
621 </li>
622-->
623
624 </ul>
625
626
627 <hr>
628 <address><a href="mailto:arnault@lal.in2p3.fr">Christian Arnault</a></address>
629 </body>
630</html>
Note: See TracBrowser for help on using the repository browser.