source: CMT/v1r18p20050501/doc/ReleaseNotes.html @ 634

Last change on this file since 634 was 46, checked in by arnault, 19 years ago

Prepare new release v1r18p20050501

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