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
8 If you are not a developer, but want to track the development, please
9 see the <a href="anoncvs.html">AnonCVS</a> instructions.
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
17 Here are some policies about the use of the Mono CVS server.
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.
25 Check the license if you are unsure, but it is basically:
26 class libraries X11; compiler and tools: GPL; runtime: LGPL.
28 If in doubt, check with the maintainers of the module, or send
29 mail to mono-hackers-list@ximian.com.
33 If you are the maintainer for a piece of code, feel free to
34 commit code, and delegate the work to others.
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
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.
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.
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.
59 This is a small tutorial for using CVS.
61 ** Generating an SSH key
63 If you are using SSH version 2, please generate your key using:
69 And mail me the id_rsa.pub file.
71 If you are using SSH version 1, run:
76 And mail me your identity.pub file.
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:
84 ssh-keygen -i -f id_XXX.pub > my_public_key.pub
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.
91 The *exact* format for this file must be:
97 You will need CVS and SSH. Windows users can get both by
99 href="http://www.cygwin.com">http://www.cygwin.com</a>)
101 Unix users will probably have those tools installed already.
103 ** Checking out the sources
105 To check out the sources for the first time from the
106 repository, use this command:
110 export CVSROOT=username@mono-cvs.ximian.com:/cvs/public
114 ** Updating your sources
116 Every day people will be making changes, to get your latest
117 updated sources, use:
120 cvs -z3 update -Pd mcs mono
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
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
135 cd directory-you-want-to-diff
136 cvs -z3 diff -u > file.diff
137 mail mono-list@ximian.com < file.diff
140 ** Keeping track of changes.
142 We provide two e-mail based mechanisms to keep track of
143 changes to the code base:
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
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
157 We hope to offer LXR and Bonsai in the future as well.
159 ** Commiting your work
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.
165 To do this, you have to "add" any new files that you created:
171 And then commit your changes to the repository:
174 cvs commit file-1.cs file-2.cs
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'.
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.
189 You might also want to track the live changes, subscribe to
191 href="mailto:mono-patches-request@ximian.com">mono-patches@ximian.com</a>
192 to receive the patches as they are checked into CVS.
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.