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

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

Fix r5093: ship new fcm source

File size: 14.5 KB
Line 
1<!DOCTYPE html>
2<html>
3<head>
4  <title>FCM 1.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 1.2 Release Notes <small>22 March 2007</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.2. 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  <p>Code management commands:</p>
48
49  <ul>
50    <li>New options <code>--trac</code> and <code>--wiki</code> for <code>fcm
51    diff --branch</code>.</li>
52
53    <li>Allow other graphical diff tools to be used in place of
54    <code>xxdiff</code>.</li>
55  </ul>
56
57  <p>General:</p>
58
59  <ul>
60    <li>New document <cite>External Distribution &amp; Collaboration for FCM
61    Projects</cite>.</li>
62  </ul>
63
64  <h2 id="fix">Minor enhancements &amp; Bug Fixes</h2>
65
66  <p>Build system:</p>
67
68  <ul>
69    <li>Extra warnings when multiple targets are detected in the source
70    tree.</li>
71
72    <li>Improved the patterns for detecting <code>recursive</code>,
73    <code>pure</code> and <code>elemental</code> Fortran subroutines and
74    functions.</li>
75  </ul>
76
77  <p>Code management commands:</p>
78
79  <ul>
80    <li><code>fcm branch --list</code> now prints the branches using FCM URL
81    keywords by default. Use the <code>--verbose</code> option to print
82    branches in full Subversion URLs.</li>
83  </ul>
84
85  <p>General:</p>
86
87  <ul>
88    <li>Enhanced <code>fcm cmp-ext-cfg</code> to link to tickets.</li>
89
90    <li>Improved handling of FCM URL keywords. The <code>SET::REPOS</code>
91    declaration in the central/user configuration file is deprecated in favour
92    of <code>SET::URL</code>. The keyword of the project with the standard
93    suffices (<code>_tr</code> or <code>-tr</code> for <em>trunk</em>,
94    <code>_br</code> or <code>-br</code> for <em>branches</em>, and
95    <code>_tg</code> or <code>-tg</code> for <em>tags</em>) are recognised
96    automatically.</li>
97
98    <li>Fix: full extract/build should no longer delete one another's cache if
99    they are run in the same directory.</li>
100
101    <li>Various other very minor enhancements and bug fixes.</li>
102  </ul>
103
104  <h2 id="req">System Requirements</h2>
105
106  <h3 id="req_perl">Perl</h3>
107
108  <p>The core part of FCM is a set of Perl scripts and modules. For the build
109  system to work, you need the following modules installed:</p>
110
111  <ul>
112    <li>Carp</li>
113
114    <li>Cwd</li>
115
116    <li>File::Basename</li>
117
118    <li>File::Compare</li>
119
120    <li>File::Find</li>
121
122    <li>File::Path</li>
123
124    <li>File::Spec::Functions</li>
125
126    <li>File::Spec</li>
127
128    <li>FindBin</li>
129
130    <li>Getopt::Long</li>
131
132    <li>POSIX</li>
133  </ul>
134
135  <p>The code management commands and extract system need the following
136  additional modules installed:</p>
137
138  <ul>
139    <li>File::Temp</li>
140
141    <li>Getopt::Long</li>
142
143    <li>HTTP::Date</li>
144
145    <li>XML::DOM</li>
146  </ul>
147
148  <p>To use the simple GUI for some of the code management commands, you also
149  need the following modules:</p>
150
151  <ul>
152    <li>Tk::ROText</li>
153
154    <li>Tk</li>
155  </ul>
156
157  <p>At the Met Office we are currently using the complete FCM system with Perl
158  5.8.x. In addition the build system is being used with Perl 5.6.x.</p>
159
160  <h3 id="req_svn">Subversion</h3>
161
162  <p>To use the code management commands (and relevant parts of the extract
163  system) you need to have <a href=
164  "http://subversion.tigris.org/">Subversion</a> installed.</p>
165
166  <ul>
167    <li>FCM makes extensive use of peg revisions in both the code management
168    and extract systems. This requires Subversion 1.2.0.</li>
169
170    <li>At the Met Office we are currently using Subversion 1.3.2.</li>
171  </ul>
172
173  <p>Note that the extract system can mirror extracted code to a remote
174  platform for building. Therefore it is only necessary to have Subversion
175  installed on the platform where you do your code development. If you use
176  other platforms purely for building and running then you do not need to have
177  Subversion installed on these platforms.</p>
178
179  <h3 id="req_trac">Trac</h3>
180
181  <p>The use of <a href="http://trac.edgewall.org/">Trac</a> is entirely
182  optional (although highly recommended if you are using Subversion).</p>
183
184  <ul>
185    <li>The <code>--trac</code> and <code>--wiki</code> options to the
186    <code>fcm diff --branch</code> command allow you to view branch differences
187    using Trac. This requires Trac 0.10.</li>
188
189    <li>At the Met Office we are currently using Trac 0.10.3.</li>
190  </ul>
191
192  <h3 id="req_other">Other Requirements</h3>
193
194  <p>The <code>fcm conflicts</code> command requires <a href=
195  "http://furius.ca/xxdiff/">xxdiff</a>. At the Met Office we are currently
196  using version 3.1. The <code>fcm diff --graphical</code> command also uses
197  xxdiff by default although other graphical diff tools can also be used.</p>
198
199  <p>The build system requires <a href=
200  "http://www.gnu.org/software/make/make.html">GNU make</a>. At the Met Office
201  we are currently using version 3.79.x and 3.80.</p>
202
203  <p>Optionally, the build system can use <a href=
204  "http://www.ifremer.fr/ditigo/molagnon/fortran90/">f90aib</a> to generate
205  interface files. However, there is also a built in Perl based interface file
206  generator which is quicker and better in most cases so you are unlikely to
207  need f90aib unless you hit a problem with some particular code.</p>
208
209  <p>FCM is intended to run on a Unix/Linux system. It is currently used at the
210  Met Office on Linux (Red Hat Enterprise 2.1 and 4.4) and HP-UX 11.00.</p>
211
212  <h2 id="ins">Installation</h2>
213
214  <p>FCM is distributed in the form of a compressed tar file. Un-pack the tar
215  file into an appropriate location on your system. Then add the
216  <samp>bin/</samp> directory into your <var>PATH</var>. Once you have done
217  this you should now have full access to the FCM system, assuming that you
218  have met the requirements described in the previous section.</p>
219
220  <p>If you wish to define keywords for your systems you will need to create a
221  file <samp>etc/fcm.cfg</samp>. An example file, <samp>fcm.cfg.eg</samp>, is
222  provided which is a copy of the file currently used at the Met Office. For
223  further details please refer to the section <a href=
224  "../user_guide/system_admin.html#fcm-keywords">FCM keywords</a> in the System
225  Admin chapter of the User Guide.</p>
226
227  <p>The <samp>doc/</samp> directory contains all the system documentation.</p>
228
229  <ul>
230    <li><samp>doc/release_notes/</samp> contains these release notes. It also
231    contains the release notes for all previous versions which may be useful if
232    you have skipped any versions.</li>
233
234    <li><samp>doc/user_guide/</samp> contains the <a href="../user_guide/">FCM
235    User Guide</a>.</li>
236
237    <li><samp>doc/design/</samp> contains the <a href="../design/">FCM Detailed
238    Design</a> document (currently in draft form).</li>
239
240    <li><samp>doc/standards/</samp> contains the FCM <a href=
241    "../standards/perl_standard.html">Perl</a> and <a href=
242    "../standards/fortran_standard.html">Fortran</a> coding standards. The Perl
243    standard describes the standards followed by the FCM code. The Fortran
244    standard contains some <a href=
245    "../standards/fortran_standard.html#fcm">specific advice</a> on the best
246    way of writing Fortran code for use with FCM as well as more general advice
247    on good practise.</li>
248
249    <li><samp>doc/collaboration/</samp> contains the <a href=
250    "../collaboration/index.html">External Distribution &amp; Collaboration for
251    FCM Projects</a> document which discusses how projects configured under FCM
252    can be distributed externally.</li>
253  </ul>
254
255  <p>The <samp>tutorial/</samp> directory contains the files necessary to set
256  up a tutorial repository. This will allow you to follow the <a href=
257  "../user_guide/getting_started.html#tutorial">tutorial section</a> in the
258  User Guide.</p>
259
260  <ul>
261    <li>The file <samp>tutorial/repos/tutorial.dump</samp> should be loaded
262    into an empty repository using the <code>svnadmin load</code> command.</li>
263
264    <li>The hook scripts in <samp>tutorial/hook/</samp> should then be
265    installed in this repository in order to prevent any commits to the trunk.
266    Note that the configuration file <samp>svnperms.conf</samp> assumes that
267    the tutorial repository is called <samp>tutorial_svn</samp>. Please edit
268    this file if you use a different name.</li>
269
270    <li>The repository should be configured to allow users write access. You
271    may find it easiest to simply allow anonymous access.</li>
272
273    <li>A Trac system should be configured associated with the Tutorial
274    repository. You then need to allow users write access. You may find it
275    easiest to set up a number of guest accounts for this purpose.</li>
276  </ul>
277
278  <p>The <samp>templates/</samp> directory contains various example scripts
279  which you may find useful. Note that these scripts are all specific to the
280  Met Office and may contain hard coded paths and email addresses. They are
281  provided in the hope that you may find them useful as templates for setting
282  up similar scripts of your own. However, they should only be used after
283  careful review to adapt them to your environment. The contents are as
284  follows:</p>
285
286  <dl>
287    <dt>templates/hook/pre-commit</dt>
288
289    <dd>
290      This script restricts write-access to the repository by checking the
291      following:
292
293      <ul>
294        <li>It executes the Subversion utility <code>svnperms.py</code> if it
295        exists. This utility checks whether the author of the current
296        transaction has enough permission to write to particular paths in the
297        repository.</li>
298
299        <li>It checks the disk space required by the current transaction. It
300        fails the commit if it requires more than 5Mb of disk space.</li>
301      </ul>
302    </dd>
303
304    <dt>templates/hook/post-commit</dt>
305
306    <dd>A simple post-commit hook script which runs the script
307    <code>post-commit-background</code> in the background.</dd>
308
309    <dt>templates/hook/post-commit-background</dt>
310
311    <dd>
312      This script runs in the background after each commit
313
314      <ul>
315        <li>It updates a <samp>&lt;repos&gt;.latest</samp> file with the latest
316        revision number.</li>
317
318        <li>It creates a dump of the new revision.</li>
319
320        <li>It calls the script <code>background_updates.pl</code> if it
321        exists.</li>
322      </ul>This script is installed as standard in all our repositories.
323    </dd>
324
325    <dt>templates/hook/background_updates.pl</dt>
326
327    <dd>An example of how you may want to set up a
328    <code>background_updates.pl</code> script to perform post-commit tasks for
329    a specific repository. This script uses a lock file to prevent multiple
330    commits in quick succession from causing problems.</dd>
331
332    <dt>templates/hook/pre-revprop-change</dt>
333
334    <dd>A simple pre-revprop-change hook script which runs the script
335    <code>pre-revprop-change.pl</code>.</dd>
336
337    <dt>templates/hook/pre-revprop-change.pl</dt>
338
339    <dd>If a user attempts to modify the log message of a changeset and he/she
340    is not the original author of the changeset, this script will e-mail the
341    original author. You can also set up a watch facility to monitor changes of
342    log messages that affect particular paths in the repository. For further
343    details please refer to the section <a href=
344    "../user_guide/system_admin.html#svn_watch">Watching changes in log
345    messages</a> in the System Admin chapter of the User Guide.</dd>
346
347    <dt>templates/hook/post-revprop-change</dt>
348
349    <dd>A simple post-revprop-change hook script which runs the script
350    <code>post-revprop-change.py</code>.</dd>
351
352    <dt>templates/hook/post-revprop-change.py</dt>
353
354    <dd>This hook script updates the Trac SQLite database following a
355    successful change in the log message.</dd>
356
357    <dt>templates/utils/cron_template.ksh</dt>
358
359    <dd>An example of how you might set up a cron job to make use of the
360    <samp>&lt;repos&gt;.latest</samp> file.</dd>
361
362    <dt>templates/utils/daily_cron</dt>
363
364    <dd>The cron job which we run each night. It verifies and backs up each of
365    our repositories, housekeeps the revision dumps created by
366    <code>post-commit-background</code> and backs up each of our Trac systems.
367    It also handles the distribution of FCM to various platforms at the Met
368    Office.</dd>
369
370    <dt>templates/utils/fcm_add_trac.pl</dt>
371
372    <dd>This script sets up a new Trac system and applies some configuration
373    options which we use by default at the Met Office.</dd>
374
375    <dt>templates/utils/recover_svn.pl</dt>
376
377    <dd>This script allows us to recover all of our Subversion repositories by
378    using the nightly backups and the repository dumps.</dd>
379  </dl>
380
381  </div>
382  </div>
383  </div>
384
385  <hr/>
386  <div class="container-fluid text-center">
387    <div class="row"><div class="col-md-12">
388    <address><small>
389      Copyright &copy; 2006-2021 British Crown (Met Office) &amp; Contributors.
390      <a href="http://www.metoffice.gov.uk">Met Office</a>.
391      See <a href="../etc/fcm-terms-of-use.html">Terms of Use</a>.<br />
392      This document is released under the British <a href=
393      "http://www.nationalarchives.gov.uk/doc/open-government-licence/" rel=
394      "license">Open Government Licence</a>.<br />
395    </small></address>
396    </div></div>
397  </div>
398
399  <script type="text/javascript" src="../etc/jquery.min.js"></script>
400  <script type="text/javascript" src="../etc/bootstrap/js/bootstrap.min.js"></script>
401  <script type="text/javascript" src="../etc/fcm.js"></script>
402  <script type="text/javascript" src="../etc/fcm-version.js"></script>
403</body>
404</html>
Note: See TracBrowser for help on using the repository browser.