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

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

Improving documentation

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