source: LMDZ6/branches/Amaury_dev/tools/fcm/doc/release_notes/2-2.html @ 5213

Last change on this file since 5213 was 5129, checked in by abarral, 4 months ago

Re-add removed by mistake fcm

File size: 20.1 KB
Line 
1<!DOCTYPE html>
2<html>
3<head>
4  <title>FCM 2-2 Release Notes</title>
5  <meta name="author" content="FCM team" />
6  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7  <link rel="icon" href="../etc/fcm-icon.png" type="image/png" />
8  <link rel="shortcut icon" href="../etc/fcm-icon.png" type="image/png" />
9  <link href="../etc/bootstrap/css/bootstrap.min.css" rel="stylesheet" media="screen" />
10  <link href="../etc/fcm.css" rel="stylesheet" media="screen" />
11</head>
12<body>
13  <div class="navbar navbar-inverse">
14    <div class="container-fluid">
15      <div class="navbar-header">
16        <a class="navbar-brand" href=".."><span class="fcm-version">FCM</span></a>
17      </div>
18      <div class="collapse navbar-collapse">
19        <ul class="nav navbar-nav">
20          <li><a href="../installation/">Installation</a></li>
21
22          <li><a href="../user_guide/">User Guide</a></li>
23        </ul>
24      </div>
25    </div>
26  </div>
27
28  <div class="page-header">
29    <div class="fcm-page-content pull-right well well-sm"></div>
30    <h1>FCM 2-2 Release Notes <small>15 June 2012</small></h1>
31  </div>
32
33  <div class="container">
34  <div class="row">
35  <div class="col-md-12">
36
37  <p>These are the release notes for FCM 2-2. You can use this release of FCM
38  freely under the terms of the FCM LICENSE, which you should receive with the
39  distribution of this release.</p>
40
41  <p>FCM is maintained by the FCM team at the Met Office. Please feedback any
42  bug reports or feature requests to us by <a href=
43  "mailto:fcm-team@metoffice.gov.uk">e-mail</a>.</p>
44
45  <h2>Contents</h2>
46
47  <div id="fcm-content"></div>
48
49  <h2 id="changes-highlight">Highlight Changes</h2>
50
51  <dl>
52    <dt><code>Subversion 1.6</code></dt>
53
54    <dd>
55      <p>Code management commands and extract system tested with Subversion
56      1.6. Note that Subversion 1.4 is no longer supported and Subversion 1.5
57      has not been tested.</p>
58
59      <p>We experienced some non-repeatable problems using Subversion 1.6 where
60      we got incorrect results from a merge. Running <code>svn cleanup</code>
61      appears to avoid the problem. Therefore this is now run prior to any
62      update, switch or merge command.</p>
63    </dd>
64
65    <dt><code>fcm branch-create</code></dt>
66
67    <dd>
68      <p><code>-rREV</code> option no longer supported - add a peg revision to
69      the source if necessary.</p>
70    </dd>
71
72    <dt><code>fcm branch-list</code></dt>
73
74    <dd>
75      <p>significant improvement to speed.</p>
76
77      <p>multiple projects can be specified as arguments.</p>
78
79      <p>more options for advanced listing.</p>
80
81      <p><code>-rREV</code> option no longer supported - can use peg revision
82      for each project in the argument list.</p>
83
84      <p>no longer returns 1 if 0 branch is found - non-zero value reserved for
85      fatal errors.</p>
86
87      <p>new <code>--quiet</code> option to print names of matched branches
88      only.</p>
89
90      <p><code>-v</code> option no longer supported - use new
91      <code>--url</code> option to print branch names as full URLs instead of
92      FCM location keywords.</p>
93
94      <p>minor change to output format.</p>
95    </dd>
96
97    <dt><code>fcm conflicts</code></dt>
98
99    <dd>
100      <p>handle resolution of common cases of tree conflicts.</p>
101    </dd>
102
103    <dt><code>fcm make</code></dt>
104
105    <dd>
106      <p>build: change in how the dependency tree is created. This fixes the
107      behaviour where the system incorrectly reports cyclic dependency. An
108      example situation is where a recursive <code>subroutine a</code> calls
109      <code>subroutine b</code> which calls <code>subroutine a</code>. The
110      object file target <samp>a.o</samp> has a dependency on
111      <samp>b.interface</samp> and the object file target <samp>b.o</samp> has a
112      dependency on <samp>a.interface</samp>. Previously,
113      <samp>b.interface</samp> would also depend on <samp>b.o</samp> which would
114      result in a cyclic dependency. This fix changes the internal data
115      structure for representing a build target. <strong>Use of <code>fcm
116      make</code> at release 2-2 to build incrementally or to inherit a build
117      created by <code>fcm make</code> at release 2-1 or before will result in an
118      incorrect behaviour or failure. Use the <code>--new</code> option to start
119      a new build if the build destination is known to contain an existing build
120      created by <code>fcm make</code> at release 2-1 or before.</strong></p>
121    </dd>
122
123    <dt>Flexible repository layout</dt>
124
125    <dd>
126      <p>FCM code management commands no longer insist on a rigid layout of its
127      Subversion repositories. Behaviours can now be configured per repository.
128      In its default setting, FCM code management commands no longer insist on
129      <samp>branches/</samp> and <samp>tags/</samp> being present in a
130      <em>project</em>.</p>
131    </dd>
132  </dl>
133
134  <h2 id="changes-minor">Minor Changes and Bug Fixes</h2>
135
136  <dl>
137    <dt><code>fcm branch-create</code></dt>
138
139    <dd>
140      <p>new <code>--switch</code> option to switch the current working copy to
141      point to the newly created branch.</p>
142    </dd>
143
144    <dt><code>fcm branch-delete</code></dt>
145
146    <dd>
147      <p>new <code>--switch</code> option to switch the current working copy to
148      point to the <em>trunk</em> after the branch deletion.</p>
149    </dd>
150
151    <dt><code>fcm branch-diff</code></dt>
152
153    <dd>
154      <p>fixed: the command will no longer fail when called with an unmodified
155      sub-tree of a branch.</p>
156    </dd>
157
158    <dt><code>fcm build/extract</code></dt>
159
160    <dd>
161      <p>fixed multi-level inheritance destination search path.</p>
162    </dd>
163
164    <dt><code>fcm commit</code></dt>
165
166    <dd>
167      <p>fixed incorrect behaviour on <code>svn commit</code> failure.</p>
168    </dd>
169
170    <dt><code>fcm make</code></dt>
171
172    <dd>
173      <p>build: fixed multi-level inheritance destination search path.</p>
174
175      <p>build: do not use relative path for inherited include paths and object
176      file paths in command lines.</p>
177
178      <p>build: fixed duplicated dependent targets being reported as missing
179      dependencies.</p>
180
181      <p>build: fixed incorrect behaviour with Fortran <samp>*.mod</samp>
182      target in incremental mode where only a build property (e.g. a compiler
183      flag) associated with the source file of the <samp>*.mod</samp> target is
184      modified.</p>
185
186      <p>extract: fixed handling of add/delete of files in file system
187      locations during incremental extract.</p>
188
189      <p>extract: fixed Perl warning when a file system location contains a
190      symbolic link with a non-existent target.</p>
191
192      <p>extract: fixed Perl warning when 2 diff locations both add a file of
193      the same name but with different contents.</p>
194
195      <p>extract: improved merge conflict diagnostics.</p>
196
197      <p>extract: allow unmodified location in the configuration to pass in an
198      inherited mode.</p>
199
200      <p>mirror: fixed: create configuration file in target even if there is no
201      source to mirror.</p>
202
203      <p>mirror: always expand a relative path in a mirror target to a full path
204      to allow it to be inherited. Some infrequently used modifiers in the
205      <code>mirror.prop</code> declarations are added/removed for this fix.</p>
206    </dd>
207
208    <dt><code>fcm merge</code></dt>
209
210    <dd>
211      <p>simplified prompts and diagnostic outputs.</p>
212
213      <p>new <code>--auto-log</code> option for automatic merge. If the option
214      is specified, the command will include the logs of the merged revisions in
215      the commit log message automatically.</p>
216    </dd>
217
218    <dt><code>fcm mkpatch</code></dt>
219
220    <dd>
221      <p>no longer uses patch files if they include a carrriage return in the
222      middle of a line.</p>
223    </dd>
224
225    <dt><code>fcm project-create</code></dt>
226
227    <dd>
228      <p>new command to create a new project and its trunk directory in a
229      repository.</p>
230    </dd>
231
232    <dt>code management command line</dt>
233
234    <dd>
235      <p>fixed logic for parsing <var>URL@REV</var> where <var>URL</var> is not
236      a location keyword but <var>REV</var> is a revision keyword.</p>
237    </dd>
238
239    <dt>revision keyword</dt>
240
241    <dd>
242      <p>fixed: <var>fcm:revision</var> property setting: trailing spaces in
243      each line will now be ignored.</p>
244    </dd>
245
246    <dt>user guide</dt>
247
248    <dd>
249      <p>tutorial: added section on tree conflict resolution.</p>
250
251      <p>tutorial: removed references to <code>fcm gui</code>.</p>
252
253      <p>added new annex: quick reference: tree conflict resolution.</p>
254    </dd>
255
256    <dt>Perl 5.12</dt>
257
258    <dd>
259      <p>fixed: <a href=
260      "http://search.cpan.org/~jesse/perl-5.12.0/pod/perl5120delta.pod#REGEXPs_are_now_first_class">
261      incompatibility problem</a>.</p>
262    </dd>
263  </dl>
264
265  <h2 id="issues">Known Issues</h2>
266
267  <dl>
268    <dt>Build inheritance limitation: handling of include files</dt>
269
270    <dd>See the <a href="../user_guide/make.html#build.inherit">User Guide &gt;
271    FCM Make &gt; Build &gt; Build Inheritance</a> for detail.</dd>
272  </dl>
273
274  <h2 id="requirements">System Requirements</h2>
275
276  <p>FCM is intended to run on a Unix/Linux system. It is currently used at the
277  Met Office on AIX-5.3 and RHEL-6.1.</p>
278
279  <dl>
280    <dt><a href="http://www.perl.org/">Perl</a></dt>
281
282    <dd>
283      <p><dfn>used by:</dfn> <code>fcm</code>.</p>
284
285      <p><dfn>versions at Met Office:</dfn> AIX-5.3: 5.8.2 (see remark),
286      RHEL-6.1: 5.10.1.</p>
287
288      <p><dfn>remark:</dfn> 5.8.2 on AIX-5.3: code management commands, the
289      extract system of <code>fcm make</code> and the deprecated <code>fcm
290      extract</code> are not used by Met Office users on this platform.</p>
291
292      <p><dfn>remark:</dfn> 5.8.2 on AIX-5.3: <code>Text::ParseWords</code>
293      (core Perl module) is upgraded to version 3.22.</p>
294    </dd>
295
296    <dt>Perl module <a href=
297    "http://search.cpan.org/~gaas/libwww-perl-5.834/lib/HTTP/Date.pm">HTTP::Date</a></dt>
298
299    <dd>
300      <p><dfn>used by:</dfn> the extract system in <code>fcm make</code> and
301      the deprecated <code>fcm extract</code>.</p>
302
303      <p><dfn>versions at Met Office:</dfn> RHEL-6.1: 5.833.</p>
304    </dd>
305
306    <dt>Perl module <a href=
307    "http://search.cpan.org/~msergeant/XML-Parser-2.36/">XML::Parser</a></dt>
308
309    <dd>
310      <p><dfn>used by:</dfn> the code management commands.</p>
311
312      <p><dfn>versions at Met Office:</dfn> RHEL-6.1: 2.36.</p>
313    </dd>
314
315    <dt>Perl module <a href=
316    "http://search.cpan.org/~srezic/Tk-804.028/">Tk</a></dt>
317
318    <dd>
319      <p><dfn>used by:</dfn> <code>fcm gui</code>.</p>
320
321      <p><dfn>versions at Met Office:</dfn> RHEL-6.1: 804.028.</p>
322    </dd>
323
324    <dt><a href="http://subversion.apache.org/">Subversion</a></dt>
325
326    <dd>
327      <p><dfn>used by:</dfn> the code management commands, the extract system
328      of <code>fcm make</code>, the deprecated <code>fcm extract</code>.</p>
329
330      <p><dfn>versions at Met Office:</dfn> RHEL-6.1: 1.6.17.</p>
331
332      <p><dfn>remark:</dfn> you can use the extract system to mirror code to a
333      remote platform for building. Therefore it is only necessary to have
334      Subversion installed on the platform where you do your code development.
335      If you use other platforms purely for building and running then you do
336      not need to have Subversion installed on these platforms.</p>
337    </dd>
338
339    <dt><a href="http://trac.edgewall.org/">Trac</a></dt>
340
341    <dd>
342      <p><dfn>used by:</dfn> (optional, but highly recommended as a companion
343      to Subversion)</p>
344
345      <p><dfn>versions at Met Office:</dfn> 0.11.7.</p>
346    </dd>
347
348    <dt><a href="http://furius.ca/xxdiff/">xxdiff</a></dt>
349
350    <dd>
351      <p><dfn>used by:</dfn> <code>fcm branch-diff --graphical</code>,
352      <code>fcm conflicts</code>, <code>fcm diff --graphical</code>.</p>
353
354      <p><dfn>versions at Met Office:</dfn> RHEL-6.1: 3.2.</p>
355
356      <p><dfn>remark:</dfn> The <code>fcm branch-diff --graphical</code> and
357      <code>fcm diff --graphical</code> commands use xxdiff by default but can
358      also use other graphical diff tools.</p>
359    </dd>
360
361    <dt><a href="http://www.gzip.org/">gzip</a></dt>
362
363    <dd>
364      <p><dfn>used by:</dfn> <code>fcm make</code>.</p>
365
366      <p><dfn>versions at Met Office:</dfn> AIX-5.3: 1.2.4, RHEL-6.1: 1.3.12.</p>
367    </dd>
368
369    <dt><a href="http://www.gnu.org/software/diffutils/">GNU diffutils</a>:
370    diff3</dt>
371
372    <dd>
373      <p><dfn>used by:</dfn> the extract system of <code>fcm make</code>, the
374      deprecated <code>fcm extract</code>.</p>
375
376      <p><dfn>versions at Met Office:</dfn> RHEL-6.1: 2.8.1.</p>
377
378      <p><dfn>remark:</dfn>: used to merge changes to source files modified by
379      2+ diff source trees (compared with the base).</p>
380    </dd>
381
382    <dt><a href="http://rsync.samba.org/">rsync</a></dt>
383
384    <dd>
385      <p><dfn>used by:</dfn> the mirror system of <code>fcm make</code>, the
386      deprecated <code>fcm extract</code>.</p>
387
388      <p><dfn>versions at Met Office:</dfn> AIX-5.3: 2.6.2, RHEL-6.1: 3.0.6.</p>
389
390      <p><dfn>remark:</dfn> used to mirror source file to another
391      <var>USER@HOST</var>.</p>
392    </dd>
393
394    <dt><a href="http://www.gnu.org/software/make/make.html">GNU make</a></dt>
395
396    <dd>
397      <p><dfn>used by:</dfn> the deprecated <code>fcm build</code>.</p>
398
399      <p><dfn>versions at Met Office:</dfn> AIX-5.3: 3.80, RHEL-6.1: 3.81.</p>
400    </dd>
401  </dl>
402
403  <h2 id="installation">Installation</h2>
404
405  <p>FCM is distributed in the form of a compressed tar file. Un-pack the tar
406  file into an appropriate location on your system. Add the <samp>bin/</samp>
407  directory into your <var>PATH</var> environment variable. Once you have done
408  this you should now have full access to the FCM system, assuming that you
409  have met the requirements described in the previous section.</p>
410
411  <p>You should find the following contents in the distribution:</p>
412
413  <dl>
414    <dt>README</dt>
415
416    <dd>The README file contains the internal revision number of the
417    release.</dd>
418
419    <dt>COPYRIGHT.txt<br />
420    LICENSE.html</dt>
421
422    <dd>The FCM license and other copyright information.</dd>
423
424    <dt>bin/</dt>
425
426    <dd>Contains the <code>fcm</code> command and other utilities.</dd>
427
428    <dt>doc/</dt>
429
430    <dd>System documentation.</dd>
431
432    <dt>doc/release_notes/</dt>
433
434    <dd>Contains these release notes. It also contains the release notes for
435    all previous versions which may be useful if you have skipped any
436    versions.</dd>
437
438    <dt>doc/user_guide/</dt>
439
440    <dd>Contains the <a href="../user_guide/">FCM User Guide</a>.</dd>
441
442    <dt>doc/standards/</dt>
443
444    <dd>Contains the FCM <a href="../standards/perl_standard.html">Perl</a> and
445    <a href="../standards/fortran_standard.html">Fortran</a> coding standards.
446    The Perl standard describes the standards followed by the FCM code. The
447    Fortran standard contains some <a href=
448    "../standards/fortran_standard.html#fcm">specific advice</a> on the best
449    way of writing Fortran code for use with FCM as well as more general advice
450    on good practice.</dd>
451
452    <dt>doc/collaboration/</dt>
453
454    <dd>Contains the <a href="../collaboration/index.html">External
455    Distribution &amp; Collaboration for FCM Projects</a> document which
456    discusses how projects configured under FCM can be distributed
457    externally.</dd>
458
459    <dt>etc/</dt>
460
461    <dd>Miscellaneous items, including the <samp>fcm/keyword.cfg.eg</samp>
462    file. If you wish to define keywords for your site you will need to create
463    the <samp>etc/fcm/keyword.cfg</samp> file. An example file,
464    <samp>fcm/keyword.cfg.eg</samp>, is provided which is a copy of the file
465    currently used at the Met Office. For further details please refer to the
466    section <a href="../user_guide/system_admin.html#fcm-keywords">FCM
467    keywords</a> in the System Admin chapter of the User Guide.</dd>
468
469    <dt>examples/</dt>
470
471    <dd>Contains various example scripts which you may find useful. Note that
472    these scripts are all specific to the Met Office and may contain hard coded
473    paths and email addresses. They are provided in the hope that you may find
474    them useful as examples for setting up similar scripts of your own.
475    However, they should only be used after careful review to adapt them to
476    your environment.</dd>
477
478    <dt>examples/etc/regular-update.eg</dt>
479
480    <dd>An example of how you might set up a cron job to make use of the
481    <samp>&lt;repos&gt;.latest</samp> file (see
482    <code>examples/svn-hooks/post-commit-background</code>).</dd>
483
484    <dt>examples/lib/</dt>
485
486    <dd>Contains the <code>FCM::Admin::*</code> Perl library, which implements
487    the functionalities of the FCM admin utility commands.</dd>
488
489    <dt>examples/sbin/</dt>
490
491    <dd>Contains a selection of useful admin utility commands.</dd>
492
493    <dt>examples/svn-hooks/pre-commit</dt>
494
495    <dd>
496      This script restricts write-access to the repository by checking the
497      following:
498
499      <ul>
500        <li>It executes the Subversion utility <code>svnperms.py</code> if it,
501        and the associated <samp>svnperms.conf</samp> file, exist. This utility
502        checks whether the author of the current transaction has enough
503        permission to write to particular paths in the repository.</li>
504
505        <li>It checks the disk space required by the current transaction. It
506        fails the commit if it requires more than 10MB of disk space (or
507        whatever is specified in the
508        <code>pre-commit-size-threshold.conf</code> file.</li>
509      </ul>
510    </dd>
511
512    <dt>examples/svn-hooks/post-commit</dt>
513
514    <dd>This script runs <code>post-commit-background</code> in the
515    background.</dd>
516
517    <dt>examples/svn-hooks/post-commit-background</dt>
518
519    <dd>
520      This script runs in the background after each commit.
521
522      <ul>
523        <li>It updates a <samp>&lt;repos&gt;.latest</samp> file with the latest
524        revision number.</li>
525
526        <li>It creates a dump of the new revision.</li>
527
528        <li>It calls <code>post-commit-background-custom</code> if it
529        exists.</li>
530      </ul>
531    </dd>
532
533    <dt>examples/svn-hooks/pre-revprop-change</dt>
534
535    <dd>This script only allows the modification of <var>svn:log</var>.</dd>
536
537    <dt>examples/svn-hooks/post-revprop-change</dt>
538
539    <dd>This script runs <code>post-revprop-change-background</code> in the
540    background.</dd>
541
542    <dt>examples/svn-hooks/post-revprop-change-background</dt>
543
544    <dd>This script invokes the <code>trac-admin</code> command to
545    <code>resync</code> the revision property cache stored in the corresponding
546    Trac environment. If a user modifies the log message of a changeset and
547    he/she is not the original author of the changeset, this script will e-mail
548    the original author. If the file
549    <code>post-revprop-change-background-cc.list</code> exits, the script will
550    also e-mail those in the list.</dd>
551
552    <dt>lib/</dt>
553
554    <dd>Contains the Perl library of FCM.</dd>
555
556    <dt>man/</dt>
557
558    <dd>Contains a basic manual page for <code>fcm</code>.</dd>
559
560    <dt>t/</dt>
561
562    <dd>Contains unit test for FCM.</dd>
563
564    <dt>test/</dt>
565
566    <dd>Contains regression tests for FCM.</dd>
567
568    <dt>test/test_include/</dt>
569
570    <dd>Contains simple test code to check how your chosen compilers handle
571    include files (see <a href="#issues">Known Issues</a>).</dd>
572
573    <dt>tutorial/</dt>
574
575    <dd>Contains the files necessary to set up a Subversion repository for the
576    FCM tutorial. This will allow you to follow the <a href=
577    "../user_guide/getting_started.html#tutorial">tutorial section</a> in the
578    User Guide. See <samp>tutorial/README</samp> on how to set it up.</dd>
579  </dl>
580
581  </div>
582  </div>
583  </div>
584
585  <hr/>
586  <div class="container-fluid text-center">
587    <div class="row"><div class="col-md-12">
588    <address><small>
589      Copyright &copy; 2006-2021 British Crown (Met Office) &amp; Contributors.
590      <a href="http://www.metoffice.gov.uk">Met Office</a>.
591      See <a href="../etc/fcm-terms-of-use.html">Terms of Use</a>.<br />
592      This document is released under the British <a href=
593      "http://www.nationalarchives.gov.uk/doc/open-government-licence/" rel=
594      "license">Open Government Licence</a>.<br />
595    </small></address>
596    </div></div>
597  </div>
598
599  <script type="text/javascript" src="../etc/jquery.min.js"></script>
600  <script type="text/javascript" src="../etc/bootstrap/js/bootstrap.min.js"></script>
601  <script type="text/javascript" src="../etc/fcm.js"></script>
602  <script type="text/javascript" src="../etc/fcm-version.js"></script>
603</body>
604</html>
Note: See TracBrowser for help on using the repository browser.