/[MITgcm]/mitgcm.org/cvspolicy.html
ViewVC logotype

Diff of /mitgcm.org/cvspolicy.html

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.8 by adcroft, Fri Feb 16 02:03:59 2001 UTC revision 1.9 by jmc, Sat Feb 17 16:54:29 2001 UTC
# Line 2  Line 2 
2  <html>  <html>
3  <head>  <head>
4     <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">     <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
5     <meta name="GENERATOR" content="Mozilla/4.75 [en] (X11; U; Linux 2.2.14-5.0 i686) [Netscape]">     <meta name="GENERATOR" content="Mozilla/4.76 [en] (X11; U; Linux 2.4.1 i686) [Netscape]">
6     <meta name="Author" content="Chris Hill">     <meta name="Author" content="Chris Hill">
7     <title>MITgcm CVS policy</title>     <title>MITgcm CVS policy</title>
8  </head>  </head>
# Line 10  Line 10 
10    
11  <center>  <center>
12  <h1>  <h1>
13  MITgcm CVS&nbsp;policy</h1></center>  MITgcm CVS policy</h1></center>
14    
15  <h2>  <h2>
16  Introduction</h2>  Introduction</h2>
# Line 21  CVS itself is a liberal free-for-all pro Line 21  CVS itself is a liberal free-for-all pro
21  of ways. It is designed to provide a system for storing arbitrary files  of ways. It is designed to provide a system for storing arbitrary files
22  in a way that allows the change history of the individual files to be tracked.  in a way that allows the change history of the individual files to be tracked.
23  If CVS is used without any other policy the result can be a collection  If CVS is used without any other policy the result can be a collection
24  of files each of which has complex, multiply branched set of interelated  of files each of which has complex, multiply branched set of inter-related
25  versions. This sort of CVS repository can be come like a library where  versions. This sort of CVS repository can be come like a library where
26  books are simply stored in a huge heap. Although nothing is actually lost,  books are simply stored in a huge heap. Although nothing is actually lost,
27  the task of finding a coherent collection of material soon becomes impossible.  the task of finding a coherent collection of material soon becomes impossible.
28  <p>The policies we employ address two areas  <p>The policies we employ address tree areas
29  <ol>  <ol>
30  <li>  <li>
31  Maintaining an orderly and easily identifiable, coherent set of evolving  Maintaining an orderly and easily identifiable, coherent set of evolving
# Line 33  Maintaining an orderly and easily identi Line 33  Maintaining an orderly and easily identi
33    
34  <li>  <li>
35  Allowing concurrent, on-going development of product components.</li>  Allowing concurrent, on-going development of product components.</li>
36    
37    <li>
38    Making the integration&nbsp; of achieved developments easy, rapid, organized
39    and clear.</li>
40  </ol>  </ol>
41    
42  <h2>  <h2>
# Line 53  that some record of the development hist Line 57  that some record of the development hist
57  only policy that applies to development trees is that this style of tree  only policy that applies to development trees is that this style of tree
58  is not intended to be used for providing a "checkpoint" distribution. Tagged  is not intended to be used for providing a "checkpoint" distribution. Tagged
59  configurations of tools built from this style of tree can be distributed,  configurations of tools built from this style of tree can be distributed,
60  but because these trees do not have any polcies regarding testing of functionality,  but because these trees do not have any policies regarding testing of functionality,
61  platform coverage or documentation these trees are not allowed to form  platform coverage or documentation these trees are not allowed to form
62  the basis of "checkpoint" distrbutions or formal "releases". Other policies  the basis of "checkpoint" distributions or formal "releases". Other policies
63  can be defined by individuals users of these trees but there are no further  can be defined by individuals users of these trees but there are no further
64  global policies. The MITGCM repository development_tree/ subdirectory is  global policies. The MITGCM repository development_tree/ sub-directory
65  reserved for holding development trees. Development trees also serve as  is reserved for holding development trees. Development trees also serve
66  experimental areas for exploring new code management policies.  as experimental areas for exploring new code management policies.
67  <h2>  <h2>
68  Checkpoint tree policies</h2>  Checkpoint tree policies</h2>
69  Checkpoint trees are intended to provide structured storage areas for holding  Checkpoint trees are intended to provide structured storage areas for holding
# Line 118  validate the component. Line 122  validate the component.
122  <li>  <li>
123  Checkpoint tagging</li>  Checkpoint tagging</li>
124    
125  <br>No code should be left in limbo. Checking in code and then leaving  <br>No code should be left in limbo (un-tagged) for extended periods. On
126  it in the repository untagged is bad. When you check in code you are creating  the other hand it's unnecessary to create a checkpoint tag for every little
127  a new checkpoint. That means you don't check in some code which you "know"  change. Checkpoint tags should be made after a particularly significant
128  works 100% and then go away for two weeks. When you start checking in code  code modification or otherwise on a regular basis, say bi-weekly. Very
129  you make sure you have time to do the process end-to-end as described in  often we set a list of goals to be reached by the next checkpoint which
130  section 2.  sometimes takes more than two weeks to achieve. Obviously, in this case
131    a bi-weekly checkpoint would not be useful.
132  <li>  <li>
133  Release tagging</li>  Release tagging</li>
134    
# Line 134  depends on the file type. Line 139  depends on the file type.
139  <li>  <li>
140  Branches</li>  Branches</li>
141    
142  <br>Branches are to be used for bug-fixes and code patches to releases  <br>Branches are a useful tool for making changes prior to checkpoints
143  only. All other changes e.g. totally new features, bug-fixes to checkpoints  without breaking other working versions but it must be understood that
144  are introduced by moving checkpoint levels forward. The only historical  branches are short-lived and that releases and checkpoints not be made
145  code maintenance that is employed is for fixes and patches to formal releases  from a branch. Branches are especially useful for adding totally
146  - not checkpoints.</ol>  <br>new features. bug-fixes to checkpoints are introduced by moving checkpoint
147    levels forward. The only historical code maintenance that s employed is
148    for fixes and patches to formal releases - not checkpoints.</ol>
149    
150    <h1>
151    Someone checked-in broken code so not my code doesn't work?</h1>
152    You have several options:
153    <ol>
154    <li>
155    Politely email everyone at support@mitgcm.org asking what&nbsp; has happened
156    and that it be fixed?</li>
157    
158    <li>
159    Figure out why the new code is broken, fix it, check it in and proudly
160    send a message to support@mitgcm.org to show how constructive you are.</li>
161    
162    <li>
163    Complain that the quality of work is too low and then do nothing to fix
164    the code.<br>
165    <BR></li>
166    
167    <br>We advise you to only use the third option if you are confident that
168    your own contributions to the code are bug-free, well written, documented
169    and fool proof.&nbsp; :)</ol>
170    
171  <h2>  <h2>
172  These policies are causing me a big problem, what can I do?</h2>  These policies are causing me a big problem, what can I do?</h2>

Legend:
Removed from v.1.8  
changed lines
  Added in v.1.9

  ViewVC Help
Powered by ViewVC 1.1.22