Update
[mono.git] / web / ccvs
1 * CVS Access
2
3         If you are an active Mono developer, you can get a CVS account
4         that hosts the Mono source code.  This web page contains
5         details about how to use the CVS server as well as the
6         policies to use it.
7
8         If you are not a developer, but want to track the development, please
9         see the <a href="anoncvs.html">AnonCVS</a> instructions.
10
11         Send an e-mail to miguel with your public OpenSSH key for this
12         purpose.  Please specify if the key was generated with SSH version 1
13         or version 2.
14
15 * Policies
16
17         Here are some policies about the use of the Mono CVS server.
18
19 ** Code License
20
21         If you are about to commit code to a module, the code that is
22         being commited should be released under the same license as
23         the code that the module has.
24
25         Check the license if you are unsure, but it is basically:
26         class libraries X11; compiler and tools: GPL; runtime: LGPL.
27
28         If in doubt, check with the maintainers of the module, or send
29         mail to mono-hackers-list@ximian.com.
30
31 ** Commiting code.
32
33         If you are the maintainer for a piece of code, feel free to
34         commit code, and delegate the work to others. 
35
36         Use ChangeLog entries so we can keep textual descriptions of
37         your work, and use the contents of your ChangeLog file as the
38         CVS commit message (ie, paste the contents of this into the
39         editor buffer).
40
41         If you are making changes to someone else's code, please make
42         sure you get in touch with the maintainer of that code before
43         applying patches.  You want to avoid commiting conflicting
44         work to someone else's code.
45
46         Before commiting code, you might find it useful to review your
47         patch:  Sometimes text editors change the formatting of a file,
48         and it is also good practice to check before hand.  To do so, run the
49         `cvs diff -u' command.
50
51         Please do not commit code that would break the compile to the
52         CVS, because that normally wastes everybody's time.  Two things 
53         are important in this step: trying to build your sources and making 
54         sure that you add all the new files before you do a commit.
55
56
57 * Using CVS.
58
59         This is a small tutorial for using CVS.
60
61 ** Generating an SSH key
62
63         If you are using SSH version 2, please generate your key using:
64
65 <pre>
66         ssh-keygen -t rsa
67 </pre>
68
69         And mail me the id_rsa.pub file.
70
71         If you are using SSH version 1, run:
72 <pre>
73         ssh-keygen
74 </pre>
75
76         And mail me your identity.pub file.
77
78         If you are using SSH from SSH Communications Security (they offer
79         a free SSH client for personal use), you have to use OpenSSH to
80         convert your public key to the required format. You have to use 
81         OpenSSH's ssh-keygen program and write the following:
82
83 <pre>
84         ssh-keygen -i -f id_XXX.pub > my_public_key.pub
85 </pre>
86         
87         where the file id_XXX.pub is your public key file, 
88         normally located under ~/.ssh/ or ~/.ssh2/.
89         Send to miguel the my_public_key.pub file. 
90
91         The *exact* format for this file must be:
92
93 <pre>
94         ssh-rsa XXXXX....
95 </pre>
96
97         You will need CVS and SSH.  Windows users can get both by
98         installing Cygwin (<a
99         href="http://www.cygwin.com">http://www.cygwin.com</a>)
100
101         Unix users will probably have those tools installed already.
102
103 ** Checking out the sources
104
105         To check out the sources for the first time from the
106         repository, use this command:
107
108 <pre>
109         export CVS_RSH=ssh
110         export CVSROOT=username@mono-cvs.ximian.com:/cvs/public
111         cvs -z3 co mcs mono
112 </pre>
113
114 ** Updating your sources
115
116         Every day people will be making changes, to get your latest
117         updated sources, use:
118
119 <pre>
120         cvs -z3 update -Pd mcs mono
121 </pre>
122
123         Note: The '-z3' enables compression for the whole cvs action.
124         The '-Pd' makes the update operation (P)rune directories that
125         have been deleted and get new (d)irectories added to the
126         repository.
127
128 ** Making patches
129
130         Usually you will want to make a patch to contribute, and let
131         other people review it before commiting it.  To obtain such a
132         "patch", you type:
133         
134 <pre>
135         cd directory-you-want-to-diff
136         cvs -z3 diff -u > file.diff
137         mail mono-list@ximian.com < file.diff
138 </pre>
139
140 ** Keeping track of changes.
141
142         We provide two e-mail based mechanisms to keep track of
143         changes to the code base:
144         
145         <ul>
146                 * <a href="mailto:mono-patches-request@ximian.com">
147                   mono-patches@ximian.com</a>: This mailing list receives
148                   in patch form all the changes that are being made to the
149                   CVS.
150
151                 * <a href="mailto:mono-cvs-list-request@ximian.com">
152                   mono-cvs-list@ximian.com</a>: This mailing list only
153                   receives the CVS commit logs with a list of files
154                   modified.
155         </ul>
156
157         We hope to offer LXR and Bonsai in the future as well.
158
159 ** Commiting your work
160
161         Once you get approval to commit to the CVS, or if you are
162         commiting code that you are the maintainer of, you will want
163         to commit your code to CVS. 
164
165         To do this, you have to "add" any new files that you created:
166
167 <pre>
168         cvs add new-file.cs
169 </pre>
170
171         And then commit your changes to the repository:
172
173 <pre>
174         cvs commit file-1.cs file-2.cs
175 </pre>
176
177 * The Mailing Lists
178
179         To keep track of the various development and changes to the
180         CVS tree, you can subscribe to the mono-cvs-list@ximian.com.
181         To subscribe, send an email message to
182         mono-cvs-list-request@ximian.com and in the body of the
183         message put `subscribe'.
184
185         This will send you an email message every time a change is
186         made to the CVS repository, together with the information that
187         the author of the changes submitted.
188
189         You might also want to track the live changes, subscribe to
190         the <a
191         href="mailto:mono-patches-request@ximian.com">mono-patches@ximian.com</a>
192         to receive the patches as they are checked into CVS. 
193
194 ** Recommendations
195
196         To build the sources, most of the type trying the `make' command
197         is enough.  In some cases (the class libraries) we use nant, so
198         you need to run nant manually.
199