0363baa368de4de5a7329b285a2aaddde3a07681
[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         Please do not commit code that would break the compile to the
47         CVS, because that normally wastes everybody's time.  Two things 
48         are important in this step: trying to build your sources and making 
49         sure that you add all the new files before you do a commit.
50
51
52 * Using CVS.
53
54         This is a small tutorial for using CVS.
55
56 ** Generating an SSH key
57
58         If you are using SSH version 2, please generate your key using:
59
60 <pre>
61         ssh-keygen -t rsa
62 </pre>
63
64         And mail me the id_rsa.pub file.
65
66         If you are using SSH version 1, run:
67 <pre>
68         ssh-keygen
69 </pre>
70
71         And mail me your identity.pub file.
72
73         If you are using SSH from SSH Communications Security (they offer
74         a free SSH client for personal use), you have to use OpenSSH to
75         convert your public key to the required format. You have to use 
76         OpenSSH's ssh-keygen program and write the following:
77
78 <pre>
79         ssh-keygen -i -f id_XXX.pub > my_public_key.pub
80 </pre>
81         
82         where the file id_XXX.pub is your public key file, 
83         normally located under ~/.ssh/ or ~/.ssh2/.
84         Send to miguel the my_public_key.pub file. 
85
86         The *exact* format for this file must be:
87
88 <pre>
89         ssh-rsa XXXXX....
90 </pre>
91
92         You will need CVS and SSH.  Windows users can get both by
93         installing Cygwin (<a
94         href="http://www.cygwin.com">http://www.cygwin.com</a>)
95
96         Unix users will probably have those tools installed already.
97
98 ** Checking out the sources
99
100         To check out the sources for the first time from the
101         repository, use this command:
102
103 <pre>
104         export CVS_RSH=ssh
105         export CVSROOT=username@mono-cvs.ximian.com:/cvs/public
106         cvs -z3 co mcs mono
107 </pre>
108
109 ** Updating your sources
110
111         Every day people will be making changes, to get your latest
112         updated sources, use:
113
114 <pre>
115         cvs -z3 update -Pd mcs mono
116 </pre>
117
118         Note: The '-z3' enables compression for the whole cvs action.
119         The '-Pd' makes the update operation (P)rune directories that
120         have been deleted and get new (d)irectories added to the
121         repository.
122
123 ** Making patches
124
125         Usually you will want to make a patch to contribute, and let
126         other people review it before commiting it.  To obtain such a
127         "patch", you type:
128         
129 <pre>
130         cd directory-you-want-to-diff
131         cvs -z3 diff -u > file.diff
132         mail mono-list@ximian.com < file.diff
133 </pre>
134
135 ** Keeping track of changes.
136
137         We provide two e-mail based mechanisms to keep track of
138         changes to the code base:
139         
140         <ul>
141                 * <a href="mailto:mono-patches-request@ximian.com">
142                   mono-patches@ximian.com</a>: This mailing list receives
143                   in patch form all the changes that are being made to the
144                   CVS.
145
146                 * <a href="mailto:mono-cvs-list-request@ximian.com">
147                   mono-cvs-list@ximian.com</a>: This mailing list only
148                   receives the CVS commit logs with a list of files
149                   modified.
150         </ul>
151
152         We hope to offer LXR and Bonsai in the future as well.
153
154 ** Commiting your work
155
156         Once you get approval to commit to the CVS, or if you are
157         commiting code that you are the maintainer of, you will want
158         to commit your code to CVS. 
159
160         To do this, you have to "add" any new files that you created:
161
162 <pre>
163         cvs add new-file.cs
164 </pre>
165
166         And then commit your changes to the repository:
167
168 <pre>
169         cvs commit file-1.cs file-2.cs
170 </pre>
171
172 * The Mailing Lists
173
174         To keep track of the various development and changes to the
175         CVS tree, you can subscribe to the mono-cvs-list@ximian.com.
176         To subscribe, send an email message to
177         mono-cvs-list-request@ximian.com and in the body of the
178         message put `subscribe'.
179
180         This will send you an email message every time a change is
181         made to the CVS repository, together with the information that
182         the author of the changes submitted.
183
184         You might also want to track the live changes, subscribe to
185         the <a
186         href="mailto:mono-patches-request@ximian.com">mono-patches@ximian.com</a>
187         to receive the patches as they are checked into CVS. 
188
189 ** Recommendations
190
191         To build the sources, most of the type trying the `make' command
192         is enough.  In some cases (the class libraries) we use nant, so
193         you need to run nant manually.
194