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

Last change on this file since 5099 was 5094, checked in by abarral, 4 months ago

Fix r5093: ship new fcm source

File size: 17.2 KB
Line 
1<!DOCTYPE html>
2<html>
3<head>
4  <title>FCM 1.1 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.1 Release Notes <small>06 November 2006</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.1. 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. Release 1.1 is the first external
40  release of FCM.  (Release 1.0, 30 November 2005, was an internal Met Office
41  release which marked the start of the main migration of systems into FCM.)</p>
42
43  <p>FCM is maintained by the FCM team at the Met Office. Please feedback any
44  bug reports or feature requests to us by <a href=
45  "mailto:fcm-team@metoffice.gov.uk">e-mail</a>.</p>
46
47  <h2 id="new">What's New?</h2>
48
49  <p>Build system:</p>
50
51  <ul>
52    <li>Support building of Fortran <code>BLOCKDATA</code> program units.</li>
53
54    <li>Option to generate Fortran interface files in lower case names after
55    their program units.</li>
56
57    <li>Allow renaming of main program targets using the build configuration
58    file.</li>
59
60    <li>The <samp>fcm_env.ksh</samp> file now provides an environment variable
61    for the <samp>etc/</samp> sub-directory of the build which can be used if
62    you are <em>building</em> data files.</li>
63
64    <li>The build root directory is now locked while a build is running. This
65    prevents multiple instances of build running in the same directory.
66    However, you can bypass the lock if you specify the new
67    <code>--ignore-lock</code> option with <code>fcm build</code>.</li>
68  </ul>
69
70  <p>Extract system:</p>
71
72  <ul>
73    <li>The destination root directory is now locked while an extract is
74    running. This prevents multiple instances of extract running in the same
75    directory. However, you can bypass the lock if you specify the new
76    <code>--ignore-lock</code> option with <code>fcm extract</code>.</li>
77  </ul>
78
79  <p>Code management commands:</p>
80
81  <ul>
82    <li><code>fcm merge</code> now supports custom and reverse modes.</li>
83
84    <li><code>fcm merge</code> now allows automatic merges in sub-trees if it
85    is safe.</li>
86
87    <li><code>fcm merge</code> now handles automatic merges from sibling
88    branches that are created at different revisions of the parent.</li>
89
90    <li><code>fcm branch, fcm diff --branch</code> and <code>fcm merge</code>
91    can now handle creation, diff and automatic merge of a branch of a
92    branch.</li>
93
94    <li><code>fcm switch</code> is improved to allow safer switches of your
95    working copy to point to different branches in your project.</li>
96
97    <li><code>fcm commit</code> now displays your location in the branch, and
98    extra warning when you are committing to the trunk of a project.</li>
99
100    <li>New <code>fcm mkpatch</code> command.</li>
101  </ul>
102
103  <p>General:</p>
104
105  <ul>
106    <li>Error handling is improved.</li>
107
108    <li>The User Guide is now complete, with a much improved tutorial.</li>
109
110    <li>New document: Fortran coding standard for FCM.</li>
111  </ul>
112
113  <h2 id="fix">Minor Enhancements &amp; Bug Fixes</h2>
114
115  <p>Build system:</p>
116
117  <ul>
118    <li>Ignore empty Fortran source files, so that alternate sections can be
119    handled correctly.</li>
120
121    <li>Handle recursive header file dependency correctly in pre-processing
122    stage.</li>
123
124    <li>Identify changes in pre-processed source file, the pre-processor
125    options and keys correctly in incremental builds.</li>
126
127    <li>Improve speed of pre-processing in incremental builds by not performing
128    any unnecessary null-action pre-processing.</li>
129
130    <li>Load archiver no longer includes main program objects.</li>
131
132    <li>It is now possible for a sub-package to exclude particular types of
133    dependencies.</li>
134  </ul>
135
136  <p>Extract system:</p>
137
138  <ul>
139    <li>Sub-directories are now extracted with the non-recursive mode of
140    <code>svn export</code>.</li>
141
142    <li>Peg revisions should now be handled correctly in <var>INC</var> extract
143    declarations.</li>
144
145    <li>The command should now fail if a declared source directory does not
146    exist or if the update of an extract destination fails.</li>
147  </ul>
148
149  <p>Code management commands:</p>
150
151  <ul>
152    <li><code>fcm branch --info</code> and <code>fcm diff</code> can now take a
153    <code>PATH</code> as an argument.</li>
154
155    <li>The <code>--ticket</code> option of <code>fcm branch --create</code>
156    can now accept multiple tickets.</li>
157
158    <li><code>fcm branch --info</code> and <code>fcm diff --branch</code>
159    should now work correctly in a sub-tree of a branch.</li>
160
161    <li><code>fcm branch --create</code> no longer offers to checkout the
162    branch.</li>
163
164    <li><code>fcm commit</code> no longer fails when adding a new symbolic
165    link.</li>
166
167    <li>The <code>--password</code> option is now supported by the <code>fcm
168    branch --create</code>, <code>fcm branch --delete</code>, <code>fcm
169    commit</code> and <code>fcm delete</code> commands.</li>
170
171    <li>Empty arguments to code management commands are now parsed
172    correctly.</li>
173
174    <li>The <code>fcm diff --graphical</code> option no longer fails with
175    binary files.</li>
176
177    <li>FCM will always set the environment variable <var>LANG=en_GB</var>
178    before running Subversion commands. This prevents failure of FCM when it
179    attempts to parse output from Subversion commands when a different
180    <var>LANG</var> setting is used.</li>
181  </ul>
182
183  <p>General:</p>
184
185  <ul>
186    <li>Various other very minor enhancements and bug fixes.</li>
187  </ul>
188
189  <h2 id="req">System Requirements</h2>
190
191  <h3 id="req_perl">Perl</h3>
192
193  <p>The core part of FCM is a set of Perl scripts and modules. For the build
194  system to work, you need the following modules installed:</p>
195
196  <ul>
197    <li>Carp</li>
198
199    <li>Cwd</li>
200
201    <li>File::Basename</li>
202
203    <li>File::Compare</li>
204
205    <li>File::Find</li>
206
207    <li>File::Path</li>
208
209    <li>File::Spec::Functions</li>
210
211    <li>File::Spec</li>
212
213    <li>FindBin</li>
214
215    <li>Getopt::Long</li>
216
217    <li>POSIX</li>
218  </ul>
219
220  <p>The code management commands and extract system need the following
221  additional modules installed:</p>
222
223  <ul>
224    <li>File::Temp</li>
225
226    <li>Getopt::Long</li>
227
228    <li>HTTP::Date</li>
229
230    <li>XML::DOM</li>
231  </ul>
232
233  <p>To use the simple GUI for some of the code management commands, you also
234  need the following modules:</p>
235
236  <ul>
237    <li>Tk::ROText</li>
238
239    <li>Tk</li>
240  </ul>
241
242  <p>At the Met Office we are currently using the complete FCM system with Perl
243  5.8.x. In addition the build system is being used with Perl 5.6.x.</p>
244
245  <h3 id="req_svn">Subversion</h3>
246
247  <p>To use the code management commands (and relevant parts of the extract
248  system) you need to have <a href=
249  "http://subversion.tigris.org/">Subversion</a> installed.</p>
250
251  <ul>
252    <li>FCM makes extensive use of peg revisions in both the code management
253    and extract systems. This requires Subversion 1.2.0.</li>
254
255    <li>At the Met Office we are currently using Subversion 1.3.2 (although
256    1.2.3 was used until very recently).</li>
257  </ul>
258
259  <p>Note that the extract system can mirror extracted code to a remote
260  platform for building. Therefore it is only necessary to have Subversion
261  installed on the platform where you do your code development. If you use
262  other platforms purely for building and running then you do not need to have
263  Subversion installed on these platforms.</p>
264
265  <h3 id="req_trac">Trac</h3>
266
267  <p>The use of <a href="http://trac.edgewall.org/">Trac</a> is entirely
268  optional (although highly recommended if you are using Subversion). At the
269  Met Office we are currently using version 0.9.6.</p>
270
271  <h3 id="req_other">Other Requirements</h3>
272
273  <p>The <code>fcm diff --graphical</code> and <code>fcm conflicts</code>
274  commands require <a href="http://furius.ca/xxdiff/">xxdiff</a>. At the Met
275  Office we are currently using version 3.1.</p>
276
277  <p>The build system requires <a href=
278  "http://www.gnu.org/software/make/make.html">GNU make</a>. At the Met Office
279  we are currently using version 3.79.x and 3.80.</p>
280
281  <p>Optionally, the build system can use <a href=
282  "http://www.ifremer.fr/ditigo/molagnon/fortran90/">f90aib</a> to generate
283  interface files. However, there is also a built in Perl based interface file
284  generator which is quicker and better in most cases so you are unlikely to
285  need f90aib unless you hit a problem with some particular code.</p>
286
287  <p>FCM is intended to run on a Unix/Linux system. It is currently used at the
288  Met Office on Linux (Red Hat 9 and Red Hat Enterprise 2.1 and 4.4) and HP-UX
289  11.00.</p>
290
291  <h2 id="ins">Installation</h2>
292
293  <p>FCM is distributed in the form of a compressed tar file. Un-pack the tar
294  file into an appropriate location on your system. Then add the
295  <samp>bin/</samp> directory into your <var>PATH</var>. Once you have done this
296  you should now have full access to the FCM system, assuming that you have met
297  the requirements described in the previous section.</p>
298
299  <p>If you wish to define keywords for your systems you will need to create a
300  file <samp>etc/fcm.cfg</samp>. An example file, <samp>fcm.cfg.eg</samp>, is
301  provided which is a copy of the file currently used at the Met Office. For
302  further details please refer to the section <a href=
303  "../user_guide/system_admin.html#fcm-keywords">FCM keywords</a> in the System
304  Admin chapter of the User Guide.</p>
305
306  <p>The <samp>doc/</samp> directory contains all the system documentation.</p>
307
308  <ul>
309    <li><samp>doc/release_notes/</samp> contains these release notes. It also
310    contains the release notes for all previous versions which may be useful if
311    you have skipped any versions.</li>
312
313    <li><samp>doc/user_guide/</samp> contains the FCM User Guide in both
314    <a href="../user_guide/">HTML</a> and <a href=
315    "../user_guide/fcm-user-guide.pdf">PDF</a> form.</li>
316
317    <li><samp>doc/design/</samp> contains the <a href="../design/">FCM Detailed
318    Design</a> document (currently in draft form).</li>
319
320    <li><samp>doc/standards/</samp> contains the FCM <a href=
321    "../standards/perl_standard.html">Perl</a> and <a href=
322    "../standards/fortran_standard.html">Fortran</a> coding standards. The Perl
323    standard describes the standards followed by the FCM code. The Fortran
324    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.</li>
328  </ul>
329
330  <p>The <samp>tutorial/</samp> directory contains the files necessary to set
331  up a tutorial repository. This will allow you to follow the <a href=
332  "../user_guide/getting_started.html#tutorial">tutorial section</a> in the
333  User Guide.</p>
334
335  <ul>
336    <li>The file <samp>tutorial/repos/tutorial.dump</samp> should be loaded
337    into an empty repository using the <code>svnadmin load</code> command.</li>
338
339    <li>The hook scripts in <samp>tutorial/hook/</samp> should then be
340    installed in this repository in order to prevent any commits to the trunk.
341    Note that the configuration file <samp>svnperms.conf</samp> assumes that
342    the tutorial repository is called <samp>tutorial_svn</samp>. Please edit
343    this file if you use a different name.</li>
344
345    <li>The repository should be configured to allow users write access. You
346    may find it easiest to simply allow anonymous access.</li>
347
348    <li>A Trac system should be configured associated with the Tutorial
349    repository. You then need to allow users write access. You may find it
350    easiest to set up a number of guest accounts for this purpose.</li>
351  </ul>
352
353  <p>The <samp>templates/</samp> directory contains various example scripts
354  which you may find useful. Note that these scripts are all specific to the
355  Met Office and may contain hard coded paths and email addresses. They are
356  provided in the hope that you may find them useful as templates for setting
357  up similar scripts of your own. However, they should only be used after
358  careful review to adapt them to your environment. The contents are as
359  follows:</p>
360
361  <dl>
362    <dt>templates/hook/pre-commit</dt>
363
364    <dd>
365      This script restricts write-access to the repository by checking the
366      following:
367
368      <ul>
369        <li>It executes the Subversion utility <code>svnperms.py</code> if it
370        exists. This utility checks whether the author of the current
371        transaction has enough permission to write to particular paths in the
372        repository.</li>
373
374        <li>It checks the disk space required by the current transaction. It
375        fails the commit if it requires more than 5Mb of disk space.</li>
376      </ul>
377    </dd>
378
379    <dt>templates/hook/post-commit</dt>
380
381    <dd>A simple post-commit hook script which runs the script
382    <code>post-commit-background</code> in the background.</dd>
383
384    <dt>templates/hook/post-commit-background</dt>
385
386    <dd>
387      This script runs in the background after each commit.
388
389      <ul>
390        <li>It updates a <samp>&lt;repos&gt;.latest</samp> file with the latest
391        revision number.</li>
392
393        <li>It creates a dump of the new revision.</li>
394
395        <li>It calls the script <code>background_updates.pl</code> if it
396        exists.</li>
397      </ul>This script is installed as standard in all our repositories.
398    </dd>
399
400    <dt>templates/hook/background_updates.pl</dt>
401
402    <dd>An example of how you may want to set up a
403    <code>background_updates.pl</code> script to perform post-commit tasks for
404    a specific repository. This script uses a lock file to prevent multiple
405    commits in quick succession from causing problems.</dd>
406
407    <dt>templates/hook/pre-revprop-change</dt>
408
409    <dd>A simple pre-revprop-change hook script which runs the script
410    <code>pre-revprop-change.pl</code>.</dd>
411
412    <dt>templates/hook/pre-revprop-change.pl</dt>
413
414    <dd>If a user attempts to modify the log message of a changeset and he/she
415    is not the original author of the changeset, this script will e-mail the
416    original author. You can also set up a watch facility to monitor changes of
417    log messages that affect particular paths in the repository. For further
418    details please refer to the section <a href=
419    "../user_guide/system_admin.html#svn_watch">Watching changes in log
420    messages</a> in the System Admin chapter of the User Guide.</dd>
421
422    <dt>templates/hook/post-revprop-change</dt>
423
424    <dd>A simple post-revprop-change hook script which runs the script
425    <code>post-revprop-change.py</code>.</dd>
426
427    <dt>templates/hook/post-revprop-change.py</dt>
428
429    <dd>This hook script updates the Trac SQLite database following a
430    successful change in the log message.</dd>
431
432    <dt>templates/utils/cron_template.ksh</dt>
433
434    <dd>An example of how you might set up a cron job to make use of the
435    <samp>&lt;repos&gt;.latest</samp> file.</dd>
436
437    <dt>templates/utils/daily_cron</dt>
438
439    <dd>The cron job which we run each night. It verifies and backs up each of
440    our repositories, housekeeps the revision dumps created by
441    <code>post-commit-background</code> and backs up each of our Trac systems.
442    It also handles the distribution of FCM to various platforms at the Met
443    Office.</dd>
444
445    <dt>templates/utils/fcm_add_trac.pl</dt>
446
447    <dd>This script sets up a new Trac system and applies some configuration
448    options which we use by default at the Met Office.</dd>
449
450    <dt>templates/utils/recover_svn.pl</dt>
451
452    <dd>This script allows us to recover all of our Subversion repositories by
453    using the nightly backups and the repository dumps.</dd>
454  </dl>
455
456  </div>
457  </div>
458  </div>
459
460  <hr/>
461  <div class="container-fluid text-center">
462    <div class="row"><div class="col-md-12">
463    <address><small>
464      Copyright &copy; 2006-2021 British Crown (Met Office) &amp; Contributors.
465      <a href="http://www.metoffice.gov.uk">Met Office</a>.
466      See <a href="../etc/fcm-terms-of-use.html">Terms of Use</a>.<br />
467      This document is released under the British <a href=
468      "http://www.nationalarchives.gov.uk/doc/open-government-licence/" rel=
469      "license">Open Government Licence</a>.<br />
470    </small></address>
471    </div></div>
472  </div>
473
474  <script type="text/javascript" src="../etc/jquery.min.js"></script>
475  <script type="text/javascript" src="../etc/bootstrap/js/bootstrap.min.js"></script>
476  <script type="text/javascript" src="../etc/fcm.js"></script>
477  <script type="text/javascript" src="../etc/fcm-version.js"></script>
478</body>
479</html>
Note: See TracBrowser for help on using the repository browser.