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

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

ajout FCM 1.5

File size: 13.2 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.4 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.4 Release Notes<br />
19  12 February 2009</h1>
20
21  <p>These are the release notes for FCM release 1.4. 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>Note that FCM 1.4 requires Subversion 1.4.x (but it has not been tested on
26  Subversion 1.5.x or above).</p>
27
28  <p>FCM is maintained by the FCM team at the Met Office. Please feedback any
29  bug reports or feature requests to us by <a href=
30  "mailto:fcm-team@metoffice.gov.uk">e-mail</a>.</p>
31
32  <h2>Contents</h2>
33
34  <ul>
35    <li><a href="#fix">Minor enhancements &amp; Bug Fixes</a></li>
36
37    <li><a href="#req">System Requirements</a></li>
38
39    <li><a href="#ins">Installation</a></li>
40  </ul>
41
42  <h2 id="fix">Minor enhancements &amp; Bug Fixes</h2>
43
44  <p>Build:</p>
45
46  <ul>
47    <li>Fixed: ensure consistent behaviour for specifying <code>-D</code>,
48    <code>-I</code>, etc options for a preprocessor/compiler.</li>
49  </ul>
50
51  <p>Code management commands:</p>
52
53  <ul>
54    <li>Fixed: <code>fcm mkpatch</code>: Fix how property changes are
55    handled.</li>
56
57    <li>Fixed: <code>fcm mkpatch</code>: Fix how copied files and directories
58    are handled.</li>
59
60    <li>Fixed: <code>fcm mkpatch</code>: Prevent failures caused by the use of
61    Subversion keywords.</li>
62
63    <li>Fixed: <code>fcm mkpatch</code>: Prevent failures when used with
64    branches which do not follow the FCM naming convention.</li>
65  </ul>
66
67  <p>Extract:</p>
68
69  <ul>
70    <li>Allow extract config to define an alternate remote shell for
71    <code>rsync</code>.</li>
72  </ul>
73
74  <p>General:</p>
75
76  <ul>
77    <li>Some of the example scripts in the <samp>templates/</samp> directory
78    have been rewritten.</li>
79
80    <li>Various other very minor enhancements and bug fixes.</li>
81  </ul>
82
83  <h2 id="issues">Known Issues</h2>
84
85  <p>The following are known issues with this release of FCM which we plan to
86  address in later releases:</p>
87
88  <ul>
89    <li>FCM build does not handle changes in an include file correctly in an
90    inherited build if the include file resides in the same directory as the
91    source file including it, and the source file remains unchanged. This is
92    due to the fact that most pre-processor/compiler commands search the
93    directory containing the source file for include files first before they
94    search elsewhere.</li>
95  </ul>
96
97  <h2 id="req">System Requirements</h2>
98
99  <h3 id="req_perl">Perl</h3>
100
101  <p>The core part of FCM is a set of Perl scripts and modules. For the build
102  system to work, you need the following modules installed:</p>
103
104  <ul>
105    <li>Carp</li>
106
107    <li>Cwd</li>
108
109    <li>File::Basename</li>
110
111    <li>File::Compare</li>
112
113    <li>File::Find</li>
114
115    <li>File::Path</li>
116
117    <li>File::Spec::Functions</li>
118
119    <li>File::Spec</li>
120
121    <li>FindBin</li>
122
123    <li>Getopt::Long</li>
124
125    <li>POSIX</li>
126  </ul>
127
128  <p>The code management commands and extract system need the following
129  additional modules installed:</p>
130
131  <ul>
132    <li>File::Temp</li>
133
134    <li>Getopt::Long</li>
135
136    <li>HTTP::Date</li>
137
138    <li>XML::DOM</li>
139  </ul>
140
141  <p>To use the simple GUI for some of the code management commands, you also
142  need the following modules:</p>
143
144  <ul>
145    <li>Tk::ROText</li>
146
147    <li>Tk</li>
148  </ul>
149
150  <p>At the Met Office we are currently using the complete FCM system with Perl
151  5.8.x. In addition the build system is being used with Perl 5.6.x.</p>
152
153  <h3 id="req_svn">Subversion</h3>
154
155  <p>To use the code management commands (and relevant parts of the extract
156  system) you need to have <a href=
157  "http://subversion.tigris.org/">Subversion</a> installed.</p>
158
159  <ul>
160    <li>FCM makes extensive use of peg revisions in both the code management
161    and extract systems. This requires Subversion 1.4.0.</li>
162
163    <li>At the Met Office we are currently using Subversion 1.4.3.</li>
164  </ul>
165
166  <p>Note that the extract system can mirror extracted code to a remote
167  platform for building. Therefore it is only necessary to have Subversion
168  installed on the platform where you do your code development. If you use
169  other platforms purely for building and running then you do not need to have
170  Subversion installed on these platforms.</p>
171
172  <h3 id="req_trac">Trac</h3>
173
174  <p>The use of <a href="http://trac.edgewall.org/">Trac</a> is entirely
175  optional (although highly recommended if you are using Subversion).</p>
176
177  <ul>
178    <li>The <code>--trac</code> and <code>--wiki</code> options to the
179    <code>fcm diff --branch</code> command allow you to view branch differences
180    using Trac. This requires Trac 0.10.</li>
181
182    <li>Some of the example scripts in the <samp>templates/</samp> directory
183    require Trac 0.11.</li>
184
185    <li>At the Met Office we are currently using Trac 0.11.2.1.</li>
186  </ul>
187
188  <h3 id="req_other">Other Requirements</h3>
189
190  <p>The <code>fcm conflicts</code> command requires <a href=
191  "http://furius.ca/xxdiff/">xxdiff</a>. At the Met Office we are currently
192  using version 3.1. The <code>fcm diff --graphical</code> command also uses
193  xxdiff by default although other graphical diff tools can also be used.</p>
194
195  <p>The extract system can use diff3, which is part of <a href=
196  "http://www.gnu.org/software/diffutils/">GNU diffutils</a>, to merge together
197  changes where the same file is modified by two different branches (compared
198  with the base branch). At the Met Office we are currently using version
199  2.8.1.</p>
200
201  <p>The build system requires <a href=
202  "http://www.gnu.org/software/make/make.html">GNU make</a>. At the Met Office
203  we are currently using version 3.79.x and 3.80.</p>
204
205  <p>Optionally, the build system can use <a href=
206  "http://www.ifremer.fr/ditigo/molagnon/fortran90/">f90aib</a> to generate
207  interface files. However, there is also a built in Perl based interface file
208  generator which is quicker and better in most cases so you are unlikely to
209  need f90aib unless you hit a problem with some particular code.</p>
210
211  <p>FCM is intended to run on a Unix/Linux system. It is currently used at the
212  Met Office on Linux (Red Hat Enterprise 2.1 and 4.6) and HP-UX 11.00.</p>
213
214  <h2 id="ins">Installation</h2>
215
216  <p>FCM is distributed in the form of a compressed tar file. Un-pack the tar
217  file into an appropriate location on your system. Then add the
218  <samp>bin/</samp> directory into your <var>PATH</var>. Once you have done
219  this you should now have full access to the FCM system, assuming that you
220  have met the requirements described in the previous section.</p>
221
222  <p>If you wish to define keywords for your systems you will need to create a
223  file <samp>etc/fcm.cfg</samp>. An example file, <samp>fcm.cfg.eg</samp>, is
224  provided which is a copy of the file currently used at the Met Office. For
225  further details please refer to the section <a href=
226  "../user_guide/system_admin.html#fcm-keywords">FCM keywords</a> in the System
227  Admin chapter of the User Guide.</p>
228
229  <p>The <samp>doc/</samp> directory contains all the system documentation.</p>
230
231  <ul>
232    <li><samp>doc/release_notes/</samp> contains these release notes. It also
233    contains the release notes for all previous versions which may be useful if
234    you have skipped any versions.</li>
235
236    <li><samp>doc/user_guide/</samp> contains the <a href="../user_guide/">FCM
237    User Guide</a>.</li>
238
239    <li><samp>doc/design/</samp> contains the <a href="../design/">FCM Detailed
240    Design</a> document (currently in draft form).</li>
241
242    <li><samp>doc/standards/</samp> contains the FCM <a href=
243    "../standards/perl_standard.html">Perl</a> and <a href=
244    "../standards/fortran_standard.html">Fortran</a> coding standards. The Perl
245    standard describes the standards followed by the FCM code. The Fortran
246    standard contains some <a href=
247    "../standards/fortran_standard.html#fcm">specific advice</a> on the best
248    way of writing Fortran code for use with FCM as well as more general advice
249    on good practise.</li>
250
251    <li><samp>doc/collaboration/</samp> contains the <a href=
252    "../collaboration/index.html">External Distribution &amp; Collaboration for
253    FCM Projects</a> document which discusses how projects configured under FCM
254    can be distributed externally.</li>
255  </ul>
256
257  <p>The <samp>tutorial/</samp> directory contains the files necessary to set
258  up a tutorial repository. This will allow you to follow the <a href=
259  "../user_guide/getting_started.html#tutorial">tutorial section</a> in the
260  User Guide.</p>
261
262  <ul>
263    <li>The file <samp>tutorial/svn.dump</samp> should be loaded into an empty
264    repository using the <code>svnadmin load</code> command.</li>
265
266    <li>The hook scripts in <samp>tutorial/hooks/</samp> should then be
267    installed in this repository in order to prevent any commits to the trunk.
268    Note that the configuration file <code>svnperms.conf</code> assumes that
269    the tutorial repository is called <samp>tutorial_svn</samp>. Please edit
270    this file if you use a different name.</li>
271
272    <li>The repository should be configured to allow users write access. You
273    may find it easiest to simply allow anonymous access.</li>
274
275    <li>A Trac system should be configured associated with the Tutorial
276    repository. You then need to allow users write access. You may find it
277    easiest to set up a number of guest accounts for this purpose.</li>
278  </ul>
279
280  <p>The <samp>templates/</samp> directory contains various example scripts
281  which you may find useful. Note that these scripts are all specific to the
282  Met Office and may contain hard coded paths and email addresses. They are
283  provided in the hope that you may find them useful as templates for setting
284  up similar scripts of your own. However, they should only be used after
285  careful review to adapt them to your environment. The contents are as
286  follows:</p>
287
288  <dl>
289    <dt>templates/hooks/pre-commit</dt>
290
291    <dd>
292      This script restricts write-access to the repository by checking the
293      following:
294
295      <ul>
296        <li>It executes the Subversion utility <code>svnperms.py</code> if it,
297        and the associated <samp>svnperms.conf</samp> file, exist. This utility
298        checks whether the author of the current transaction has enough
299        permission to write to particular paths in the repository.</li>
300
301        <li>It checks the disk space required by the current transaction. It
302        fails the commit if it requires more than 5Mb of disk space.</li>
303      </ul>
304    </dd>
305
306    <dt>templates/hooks/post-commit</dt>
307
308    <dd>A simple post-commit hook script which runs the script
309    <code>post-commit-background</code> in the background.</dd>
310
311    <dt>templates/hooks/post-commit-background</dt>
312
313    <dd>
314      This script runs in the background after each commit
315
316      <ul>
317        <li>It updates a <samp>&lt;repos&gt;.latest</samp> file with the latest
318        revision number.</li>
319
320        <li>It creates a dump of the new revision.</li>
321
322        <li>It calls the script <code>background_updates.pl</code> if it
323        exists.</li>
324      </ul>This script is installed as standard in all our repositories.
325    </dd>
326
327    <dt>templates/hooks/background_updates.pl</dt>
328
329    <dd>An example of how you may want to set up a
330    <code>background_updates.pl</code> script to perform post-commit tasks for
331    a specific repository. This script uses a lock file to prevent multiple
332    commits in quick succession from causing problems.</dd>
333
334    <dt>templates/hooks/pre-revprop-change</dt>
335
336    <dd>A simple pre-revprop-change hook script which runs the script
337    <code>pre-revprop-change.pl</code>.</dd>
338
339    <dt>templates/hooks/pre-revprop-change.pl</dt>
340
341    <dd>If a user attempts to modify the log message of a changeset and he/she
342    is not the original author of the changeset, this script will e-mail the
343    original author. You can also set up a watch facility to monitor changes of
344    log messages that affect particular paths in the repository. For further
345    details please refer to the section <a href=
346    "../user_guide/system_admin.html#svn_watch">Watching changes in log
347    messages</a> in the System Admin chapter of the User Guide.</dd>
348
349    <dt>templates/hooks/post-revprop-change</dt>
350
351    <dd>A simple post-revprop-change hook script which invokes the
352    <code>trac-admin</code> command to <code>resync</code> the revision
353    property cache stored in the corresponding Trac environment.</dd>
354
355    <dt>templates/utils/cron_template.sh</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.</dd>
359
360    <dt>templates/utils/FCM/Admin/</dt>
361
362    <dd>A Perl library in the <code>FCM::Admin::*</code> name space, which
363    implements the functionalities of the FCM admin utility commands.</dd>
364
365    <dt>templates/utils/fcm-*</dt>
366
367    <dd>A selection of useful FCM admin utility commands.</dd>
368  </dl>
369</body>
370</html>
Note: See TracBrowser for help on using the repository browser.