source: CMT/v1r18p20050901/doc/ReleaseNotes.html @ 668

Last change on this file since 668 was 85, checked in by arnault, 19 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.