source: XIOS/tools/FCM/doc/release_notes/1-5.html @ 1385

Last change on this file since 1385 was 81, checked in by ymipsl, 12 years ago

ajout FCM 1.5

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