source: LMDZ6/branches/Amaury_dev/tools/fcm/doc/release_notes/1-5.html

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

Re-add removed by mistake fcm

File size: 17.6 KB
Line 
1<!DOCTYPE html>
2<html>
3<head>
4  <title>FCM 1.5 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 1.5 Release Notes <small>22 January 2010</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 release 1.5. You can use this release
38  of FCM freely under the terms of the FCM LICENSE, which you should receive
39  with the 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 id="new">What's New?</h2>
46
47  <dl>
48    <dt><code>fcm branch --list --show-all</code></dt>
49
50    <dd>New option to list all branches in a project.</dd>
51
52    <dt><code>fcm keyword-print</code>: new command</dt>
53
54    <dd>A command to print registered FCM keywords.</dd>
55
56    <dt>New method to manage revision keywords and other keywords related
57    settings.</dt>
58
59    <dd>See <a href="../user_guide/system_admin.html#fcm-keywords">FCM User
60    Guide &gt; System Administration &gt; FCM keywords</a> for detail. Note:
61    the <code>SET::TRAC</code> declaration is no longer supported.</dd>
62
63    <dt><code>fcm update</code>: improvement</dt>
64
65    <dd>The <code>fcm update</code> command applies to a whole working copy. If
66    the working copy contains local changes, the command will prompt the user
67    for confirmation.</dd>
68  </dl>
69
70  <h2 id="fix">Minor Enhancements &amp; Bug Fixes</h2>
71
72  <dl>
73    <dt><code>fcm build</code>: new <code>NO_DEP</code> declaration to switch
74    off dependency checking</dt>
75
76    <dd>A new declaration to switch off dependency checking for a given
77    name-space. See the <a href=
78    "../user_guide/build.html#advanced_dependency">FCM User Guide &gt; The
79    Build System &gt; Further dependency features</a> for details.</dd>
80
81    <dt><code>fcm build</code>: incorrect behaviour when dealing with the
82    removal of TOOL declarations in incremental mode</dt>
83
84    <dd><code>fcm build</code> did not always handle the removal of TOOL
85    declarations from the build configuration correctly in incremental mode.
86    This has been fixed.</dd>
87
88    <dt><code>fcm build</code>: new <code>TOOL::FC_MODSEARCH</code>
89    declaration</dt>
90
91    <dd>While most Fortran compilers search for the compiled module definition
92    files (i.e. <samp>*.mod</samp> files) using the same option as the include
93    search path (i.e. <samp>-I</samp>), some require a special option such as
94    <samp>-M</samp>. The new <code>TOOL::FC_MODSEARCH</code> declaration allows
95    such an option to be specified in the build configuration file.</dd>
96
97    <dt><code>fcm build</code>: incorrect logic for handling
98    <code>INHERIT::SRC</code> declarations</dt>
99
100    <dd>The logic for handling this declaration was incorrect. This led to
101    deleted files being incorrectly inherited. This has been fixed.</dd>
102
103    <dt><code>fcm build</code>: incorrect logic for generating exclude
104    dependency files for directory-based libraries</dt>
105
106    <dd>These files were not being generated corectly. This has been fixed.</dd>
107
108    <dt><code>fcm build</code>: incorrect logic for handling
109    <code>SRC_TYPE</code></dt>
110
111    <dd>The system was unable to search for an include file whose type was
112    declared via a <code>SRC_TYPE</code> declaration. This has been fixed.</dd>
113
114    <dt><code>fcm build</code>: improvement to the Fortran interface file
115    generator</dt>
116
117    <dd>The logic to extract the calling interfaces of top level subroutines
118    and functions from Fortran source files has been rewritten, based on the
119    original logic developed by the <a href="http://www.ecmwf.int">European
120    Centre for Medium-Range Weather Forecasts (ECMWF)</a>. In particular, the
121    new logic will correctly handle 1) pre-processor directives with
122    continuation lines, 2) continuation and comment markers in quotes, 3)
123    BLOCKDATA program units in the source file, 4) TYPE components in variable
124    identifiers, and 5) multiple program units in the source file. There are
125    also improvements in the new logic to reduce the number of useless
126    declarations and module imports in the generated interface block.</dd>
127
128    <dt><code>fcm commit</code>: improvement to the commit message
129    delimiter</dt>
130
131    <dd>Some users found the old delimiter line confusing. This has been
132    improved.</dd>
133
134    <dt><code>fcm commit</code>: <code>svn:special</code> and
135    <code>svn:executable</code></dt>
136
137    <dd>A symbolic link pointing to an executable target can cause a subsequent
138    <code>svn checkout</code> to fail if the target is removed. To avoid the
139    potential problem, <code>fcm commit</code> has been altered to remove the
140    <code>svn:executable</code> property if a path is a symbolic link.</dd>
141
142    <dt><code>fcm extract</code>: handling of file permission changes in
143    incremental mode</dt>
144
145    <dd><code>fcm extract</code> did not handle file permission changes in
146    incremental mode. This has been fixed.</dd>
147
148    <dt><code>fcm extract</code>: handling of symbolic links</dt>
149
150    <dd>Symbolic links cannot be handled safely by <code>fcm extract</code>.
151    They are now removed from the extract.</dd>
152
153    <dt><code>fcm extract</code> and <code>fcm build</code>: machine
154    hostname</dt>
155
156    <dd>The machine hostname will now be printed with the destination in the
157    diagnostic output of these commands.</dd>
158
159    <dt><code>fcm extract</code>: missing <code>RDEST</code> in the on-success
160    configuration file</dt>
161
162    <dd>Some <code>RDEST</code> declarations were missing from the on-success
163    generated configuration file. This has been fixed.</dd>
164
165    <dt><code>fcm extract</code>: improved options for the mirror
166    sub-system</dt>
167
168    <dd>It is now possible to specify the options of the <code>rsync</code>
169    command in the extract configuration file. In addition, <code>ssh</code> is
170    now the default remote shell command.</dd>
171
172    <dt><code>fcm cmp-ext-cfg</code>: changed verbose option</dt>
173
174    <dd>The <code>--verbose</code> option now requires an argument.</dd>
175  </dl>
176
177  <h2 id="issues">Known Issues</h2>
178
179  <dl>
180    <dt>Build inheritance limitation: handling of include files</dt>
181
182    <dd>See the <a href="../user_guide/build.html#advanced_inherit">FCM User
183    Guide &gt; The Build System &gt; Inherit from a previous build</a> for
184    detail.</dd>
185  </dl>
186
187  <h2 id="req">System Requirements</h2>
188
189  <h3 id="req_perl">Perl</h3>
190
191  <p>The core part of FCM is a set of Perl scripts and modules. The following
192  core/CPAN Perl modules are required to invoke the <code>fcm</code>
193  command:</p>
194  <pre>
195Carp
196Cwd
197File::Basename
198File::Compare
199File::Copy
200File::Find
201File::Path
202File::Spec
203File::Spec::Functions
204File::Temp
205FindBin
206Getopt::Long
207HTTP::Date
208IO::File
209List::Util
210POSIX
211Pod::Usage
212Scalar::Util
213Sys::Hostname
214Text::ParseWords
215URI
216XML::DOM
217</pre>
218
219  <p>The following Perl modules are also required if you want to use the
220  <code>fcm gui</code> command:</p>
221  <pre>
222Tk
223Tk::ROText
224</pre>
225
226  <p>At the Met Office we are currently using FCM with Perl 5.8.2 on AIX 5.3
227  and Perl 5.8.5 on RHEL 4.</p>
228
229  <h3 id="req_svn">Subversion</h3>
230
231  <p>To use the code management commands (and relevant parts of the extract
232  system) you need to have <a href=
233  "http://subversion.tigris.org/">Subversion</a> installed.</p>
234
235  <p>At the Met Office we are currently using Subversion 1.4.3. Note: FCM 1.5
236  requires Subversion 1.4.x (but it has not been tested on Subversion 1.5.x or
237  above).</p>
238
239  <p>Note: you can use the extract system to mirror code to a remote platform
240  for building. Therefore it is only necessary to have Subversion installed on
241  the platform where you do your code development. If you use other platforms
242  purely for building and running then you do not need to have Subversion
243  installed on these platforms.</p>
244
245  <h3 id="req_trac">Trac</h3>
246
247  <p>The use of <a href="http://trac.edgewall.org/">Trac</a> is entirely
248  optional (although highly recommended if you are using Subversion).</p>
249
250  <p>At the Met Office we are currently using Trac 0.11.2.1. Note:</p>
251
252  <ul>
253    <li>The <code>--trac</code> and <code>--wiki</code> options to the
254    <code>fcm diff --branch</code> command allow you to view branch differences
255    using Trac. This requires Trac 0.10 or above.</li>
256
257    <li>Some of the example scripts in the <samp>examples/</samp> directory
258    require Trac 0.11.</li>
259  </ul>
260
261  <h3 id="req_other">Other Requirements</h3>
262
263  <p>The <code>fcm conflicts</code> command requires <a href=
264  "http://furius.ca/xxdiff/">xxdiff</a>. At the Met Office we are currently
265  using version 3.1. The <code>fcm diff --graphical</code> command also uses
266  xxdiff by default although other graphical diff tools can also be used.</p>
267
268  <p>The extract system uses <code>diff3</code>, (which is part of <a href=
269  "http://www.gnu.org/software/diffutils/">GNU diffutils</a>), to merge
270  together changes where the same file is modified by two different branches
271  (compared with the base branch). At the Met Office we are currently using
272  version 2.8.1.</p>
273
274  <p>The extract system uses <a href="http://rsync.samba.org/">rsync</a> to
275  mirror source file to another machine. At the Met Office we are currently
276  using version 2.6.3</p>
277
278  <p>The build system requires <a href=
279  "http://www.gnu.org/software/make/make.html">GNU make</a>. At the Met Office
280  we are currently using version 3.80.</p>
281
282  <p>FCM is intended to run on a Unix/Linux system. It is currently used at the
283  Met Office on Linux (RHEL 4.8) and AIX 5.3.</p>
284
285  <h2 id="ins">Installation</h2>
286
287  <p>FCM is distributed in the form of a compressed tar file. Un-pack the tar
288  file into an appropriate location on your system. Add the <samp>bin/</samp>
289  directory into your <var>PATH</var> environment variable. Once you have done
290  this you should now have full access to the FCM system, assuming that you
291  have met the requirements described in the previous section.</p>
292
293  <p>You should find the following contents in the distribution:</p>
294
295  <dl>
296    <dt>README</dt>
297
298    <dd>The README file contains the internal revision number of the release.</dd>
299
300    <dt>COPYRIGHT.txt<br />
301    LICENSE.html</dt>
302
303    <dd>The FCM license and other copyright information.</dd>
304
305    <dt>bin/</dt>
306
307    <dd>Contains the <code>fcm</code> command and other utilities.</dd>
308
309    <dt>doc/</dt>
310
311    <dd>System documentation.</dd>
312
313    <dt>doc/release_notes/</dt>
314
315    <dd>Contains these release notes. It also contains the release notes for
316    all previous versions which may be useful if you have skipped any
317    versions.</dd>
318
319    <dt>doc/user_guide/</dt>
320
321    <dd>Contains the <a href="../user_guide/">FCM User Guide</a>.</dd>
322
323    <dt>doc/standards/</dt>
324
325    <dd>Contains the FCM <a href="../standards/perl_standard.html">Perl</a> and
326    <a href="../standards/fortran_standard.html">Fortran</a> coding standards.
327    The Perl standard describes the standards followed by the FCM code. The
328    Fortran standard contains some <a href=
329    "../standards/fortran_standard.html#fcm">specific advice</a> on the best
330    way of writing Fortran code for use with FCM as well as more general advice
331    on good practise.</dd>
332
333    <dt>doc/collaboration/</dt>
334
335    <dd>Contains the <a href="../collaboration/index.html">External
336    Distribution &amp; Collaboration for FCM Projects</a> document which
337    discusses how projects configured under FCM can be distributed
338    externally.</dd>
339
340    <dt>etc/</dt>
341
342    <dd>Miscellaneous items, including the <samp>fcm.cfg.eg</samp> file. If you
343    wish to define keywords for your systems you will need to create the
344    <samp>etc/fcm.cfg</samp> file. An example file, <samp>fcm.cfg.eg</samp>, is
345    provided which is a copy of the file currently used at the Met Office. For
346    further details please refer to the section <a href=
347    "../user_guide/system_admin.html#fcm-keywords">FCM keywords</a> in the
348    System Admin chapter of the User Guide.</dd>
349
350    <dt>examples/</dt>
351
352    <dd>Contains various example scripts which you may find useful. Note that
353    these scripts are all specific to the Met Office and may contain hard coded
354    paths and email addresses. They are provided in the hope that you may find
355    them useful as examples for setting up similar scripts of your own.
356    However, they should only be used after careful review to adapt them to
357    your environment.</dd>
358
359    <dt>examples/etc/regular-update.eg</dt>
360
361    <dd>An example of how you might set up a cron job to make use of the
362    <samp>&lt;repos&gt;.latest</samp> file (see
363    <code>examples/svn-hooks/post-commit-background</code>).</dd>
364
365    <dt>examples/lib/</dt>
366
367    <dd>Contains the <code>FCM::Admin::*</code> Perl library, which implements
368    the functionalities of the FCM admin utility commands.</dd>
369
370    <dt>examples/sbin/</dt>
371
372    <dd>Contains a selection of useful admin utility commands.</dd>
373
374    <dt>examples/svn-hooks/pre-commit</dt>
375
376    <dd>
377      This script restricts write-access to the repository by checking the
378      following:
379
380      <ul>
381        <li>It executes the Subversion utility <code>svnperms.py</code> if it,
382        and the associated <samp>svnperms.conf</samp> file, exist. This utility
383        checks whether the author of the current transaction has enough
384        permission to write to particular paths in the repository.</li>
385
386        <li>It checks the disk space required by the current transaction. It
387        fails the commit if it requires more than 5Mb of disk space.</li>
388      </ul>
389    </dd>
390
391    <dt>examples/svn-hooks/post-commit</dt>
392
393    <dd>A simple post-commit hook script which runs the script
394    <code>post-commit-background</code> in the background.</dd>
395
396    <dt>examples/svn-hooks/post-commit-background</dt>
397
398    <dd>
399      This script runs in the background after each commit
400
401      <ul>
402        <li>It updates a <samp>&lt;repos&gt;.latest</samp> file with the latest
403        revision number.</li>
404
405        <li>It creates a dump of the new revision.</li>
406
407        <li>It calls the script <code>background_updates.pl</code> if it
408        exists.</li>
409      </ul>This script is installed as standard in all our repositories.
410    </dd>
411
412    <dt>examples/svn-hooks/background_updates.pl</dt>
413
414    <dd>An example of how you may want to set up a
415    <code>background_updates.pl</code> script to perform post-commit tasks for
416    a specific repository. This script uses a lock file to prevent multiple
417    commits in quick succession from causing problems.</dd>
418
419    <dt>examples/svn-hooks/pre-revprop-change</dt>
420
421    <dd>A simple pre-revprop-change hook script which runs the script
422    <code>pre-revprop-change.pl</code>.</dd>
423
424    <dt>examples/svn-hooks/pre-revprop-change.pl</dt>
425
426    <dd>If a user attempts to modify the log message of a changeset and he/she
427    is not the original author of the changeset, this script will e-mail the
428    original author. You can also set up a watch facility to monitor changes of
429    log messages that affect particular paths in the repository. For further
430    details please refer to the section <a href=
431    "../user_guide/system_admin.html#svn_watch">Watching changes in log
432    messages</a> in the System Admin chapter of the User Guide.</dd>
433
434    <dt>examples/svn-hooks/post-revprop-change</dt>
435
436    <dd>A simple post-revprop-change hook script which invokes the
437    <code>trac-admin</code> command to <code>resync</code> the revision
438    property cache stored in the corresponding Trac environment.</dd>
439
440    <dt>lib/</dt>
441
442    <dd>Contains the Perl library of FCM.</dd>
443
444    <dt>man/</dt>
445
446    <dd>Contains a basic manual page for <code>fcm</code>.</dd>
447
448    <dt>t/</dt>
449
450    <dd>Contains unit test for FCM.</dd>
451
452    <dt>test/</dt>
453
454    <dd>Contains regression tests for FCM.</dd>
455
456    <dt>tutorial/</dt>
457
458    <dd>Contains the files necessary to set up a Subversion repository for the
459    FCM tutorial. This will allow you to follow the <a href=
460    "../user_guide/getting_started.html#tutorial">tutorial section</a> in the
461    User Guide. See <samp>tutorial/README</samp> on how to set it up.</dd>
462  </dl>
463
464  </div>
465  </div>
466  </div>
467
468  <hr/>
469  <div class="container-fluid text-center">
470    <div class="row"><div class="col-md-12">
471    <address><small>
472      Copyright &copy; 2006-2021 British Crown (Met Office) &amp; Contributors.
473      <a href="http://www.metoffice.gov.uk">Met Office</a>.
474      See <a href="../etc/fcm-terms-of-use.html">Terms of Use</a>.<br />
475      This document is released under the British <a href=
476      "http://www.nationalarchives.gov.uk/doc/open-government-licence/" rel=
477      "license">Open Government Licence</a>.<br />
478    </small></address>
479    </div></div>
480  </div>
481
482  <script type="text/javascript" src="../etc/jquery.min.js"></script>
483  <script type="text/javascript" src="../etc/bootstrap/js/bootstrap.min.js"></script>
484  <script type="text/javascript" src="../etc/fcm.js"></script>
485  <script type="text/javascript" src="../etc/fcm-version.js"></script>
486</body>
487</html>
Note: See TracBrowser for help on using the repository browser.