3 If you are an active Mono developer, you can get a CVS account
4 that hosts the Mono source code.
6 If you are not a developer, but want to track the development, please
7 see the <a href="anoncvs.html">AnonCVS</a> instructions.
9 Send an e-mail to miguel with your public OpenSSH key for this
10 purpose. Please specify if the key was generated with SSH version 1
13 If you are using SSH version 2, please generate your key using:
19 And mail me the id_rsa.pub file.
21 If you are using SSH version 1, run:
26 And mail me your identity.pub file.
28 If you are using SSH from SSH Communications Security (they offer
29 a free SSH client for personal use), you have to use OpenSSH to
30 convert your public key to the required format. You have to use
31 OpenSSH's ssh-keygen program and write the following:
34 ssh-keygen -i -f id_XXX.pub > my_public_key.pub
37 where the file <pre>id_XXX.pub</pre> is your public key file,
38 normally located under <pre>~/.ssh/</pre> or <pre>~/.ssh2/</pre>.
39 Send to miguel the <pre>my_public_key.pub</pre> file.
41 The *exact* format for this file must be:
47 You will need CVS and SSH. Windows users can get both by
49 href="http://www.cygwin.com">http://www.cygwin.com</a>)
51 Unix users will probably have those tools installed already.
53 ** Checking out the sources
55 To check out the sources for the first time from the
56 repository, use this command:
60 export CVSROOT=username@mono-cvs.ximian.com:/cvs/public
64 ** Updating your sources
66 Every day people will be making changes, to get your latest
70 cvs -z3 update -Pd mcs mono
73 Note: The '-z3' enables compression for the whole cvs action.
74 The '-Pd' makes the update operation (P)rune directories that
75 have been deleted and get new (d)irectories added to the
80 Usually you will want to make a patch to contribute, and let
81 other people review it before commiting it. To obtain such a
85 cd directory-you-want-to-diff
86 cvs -z3 diff -u > file.diff
87 mail mono-list@ximian.com < file.diff
90 ** Keeping track of changes.
92 We provide two e-mail based mechanisms to keep track of
93 changes to the code base:
96 * <a href="mailto:mono-patches-request@ximian.com">
97 mono-patches@ximian.com</a>: This mailing list receives
98 in patch form all the changes that are being made to the
101 * <a href="mailto:mono-cvs-list-request@ximian.com">
102 mono-cvs-list@ximian.com</a>: This mailing list only
103 receives the CVS commit logs with a list of files
107 We hope to offer LXR and Bonsai in the future as well.
109 ** Commiting your work
111 Once you get approval to commit to the CVS, or if you are
112 commiting code that you are the maintainer of, you will want
113 to commit your code to CVS.
115 To do this, you have to "add" any new files that you created:
121 And then commit your changes to the repository:
124 cvs commit file-1.cs file-2.cs
129 To keep track of the various development and changes to the
130 CVS tree, you can subscribe to the mono-cvs-list@ximian.com.
131 To subscribe, send an email message to
132 mono-cvs-list-request@ximian.com and in the body of the
133 message put `subscribe'.
135 This will send you an email message every time a change is
136 made to the CVS repository, together with the information that
137 the author of the changes submitted.
141 Please do not commit code that would break the compile to the
142 CVS, because that normally wastes everybody's time. Two things
143 are important in this step: trying to build your sources and making
144 sure that you add all the new files before you do a commit.
146 To build the sources, most of the type trying the `make' command
147 is enough. In some cases (the class libraries) we use nant, so
148 you need to run nant manually.
150 Use ChangeLog entries so we can keep textual descriptions of
151 your work, and use the contents of your ChangeLog file as the
152 CVS commit message (ie, paste the contents of this into the
155 If you are making changes to someone else's code, please make
156 sure you get in touch with the maintainer of that code before
157 applying patches. You want to avoid commiting conflicting
158 work to someone else's code.