* CVS Access
If you are an active Mono developer, you can get a CVS account
- that hosts the Mono source code.
+ that hosts the Mono source code. This web page contains
+ details about how to use the CVS server as well as the
+ policies to use it.
- Send an e-mail to miguel with your public SSH key for this purpose.
+ If you are not a developer, but want to track the development, please
+ see the <a href="anoncvs.html">AnonCVS</a> instructions.
+
+ Send an e-mail to miguel with your public OpenSSH key for this
+ purpose. Please specify if the key was generated with SSH version 1
+ or version 2.
+
+* Policies
+
+ Here are some policies about the use of the Mono CVS server.
+
+** Code License
+
+ If you are about to commit code to a module, the code that is
+ being commited should be released under the same license as
+ the code that the module has.
+
+ Check the license if you are unsure, but it is basically:
+ class libraries X11; compiler and tools: GPL; runtime: LGPL.
+
+ If in doubt, check with the maintainers of the module, or send
+ mail to mono-hackers-list@ximian.com.
+
+** Commiting code.
+
+ If you are the maintainer for a piece of code, feel free to
+ commit code, and delegate the work to others.
+
+ Use ChangeLog entries so we can keep textual descriptions of
+ your work, and use the contents of your ChangeLog file as the
+ CVS commit message (ie, paste the contents of this into the
+ editor buffer).
+
+ If you are making changes to someone else's code, please make
+ sure you get in touch with the maintainer of that code before
+ applying patches. You want to avoid commiting conflicting
+ work to someone else's code.
+
+ Please do not commit code that would break the compile to the
+ CVS, because that normally wastes everybody's time. Two things
+ are important in this step: trying to build your sources and making
+ sure that you add all the new files before you do a commit.
+
+
+* Using CVS.
+
+ This is a small tutorial for using CVS.
+
+** Generating an SSH key
+
+ If you are using SSH version 2, please generate your key using:
+
+<pre>
+ ssh-keygen -t rsa
+</pre>
+
+ And mail me the id_rsa.pub file.
+
+ If you are using SSH version 1, run:
+<pre>
+ ssh-keygen
+</pre>
+
+ And mail me your identity.pub file.
+
+ If you are using SSH from SSH Communications Security (they offer
+ a free SSH client for personal use), you have to use OpenSSH to
+ convert your public key to the required format. You have to use
+ OpenSSH's ssh-keygen program and write the following:
+
+<pre>
+ ssh-keygen -i -f id_XXX.pub > my_public_key.pub
+</pre>
+
+ where the file id_XXX.pub is your public key file,
+ normally located under ~/.ssh/ or ~/.ssh2/.
+ Send to miguel the my_public_key.pub file.
+
+ The *exact* format for this file must be:
+
+<pre>
+ ssh-rsa XXXXX....
+</pre>
You will need CVS and SSH. Windows users can get both by
installing Cygwin (<a
- href="http://www.cygwin.org">http://www.cygwin.org</a>)
+ href="http://www.cygwin.com">http://www.cygwin.com</a>)
Unix users will probably have those tools installed already.
updated sources, use:
<pre>
- cvs -z3 update mcs mono
+ cvs -z3 update -Pd mcs mono
</pre>
+ Note: The '-z3' enables compression for the whole cvs action.
+ The '-Pd' makes the update operation (P)rune directories that
+ have been deleted and get new (d)irectories added to the
+ repository.
+
** Making patches
Usually you will want to make a patch to contribute, and let
mail mono-list@ximian.com < file.diff
</pre>
+** Keeping track of changes.
+
+ We provide two e-mail based mechanisms to keep track of
+ changes to the code base:
+
+ <ul>
+ * <a href="mailto:mono-patches-request@ximian.com">
+ mono-patches@ximian.com</a>: This mailing list receives
+ in patch form all the changes that are being made to the
+ CVS.
+
+ * <a href="mailto:mono-cvs-list-request@ximian.com">
+ mono-cvs-list@ximian.com</a>: This mailing list only
+ receives the CVS commit logs with a list of files
+ modified.
+ </ul>
+
+ We hope to offer LXR and Bonsai in the future as well.
+
** Commiting your work
Once you get approval to commit to the CVS, or if you are
To do this, you have to "add" any new files that you created:
<pre>
- cvs add new-file.c
+ cvs add new-file.cs
</pre>
And then commit your changes to the repository:
<pre>
- cvs commit .
+ cvs commit file-1.cs file-2.cs
</pre>
-** The Mailing List
+* The Mailing Lists
To keep track of the various development and changes to the
CVS tree, you can subscribe to the mono-cvs-list@ximian.com.
This will send you an email message every time a change is
made to the CVS repository, together with the information that
the author of the changes submitted.
-
-** Recommendations
- Please do not commit code that would break the compile to the
- CVS, because that normally wastes everybody's time.
+ You might also want to track the live changes, subscribe to
+ the <a
+ href="mailto:mono-patches-request@ximian.com">mono-patches@ximian.com</a>
+ to receive the patches as they are checked into CVS.
- Make sure that you add all the files before you do a commit.
+** Recommendations
- Use ChangeLog entries so we can keep textual descriptions of
- your work, and use the contents of your ChangeLog file as the
- CVS commit message (ie, paste the contents of this into the
- editor buffer).
+ To build the sources, most of the type trying the `make' command
+ is enough. In some cases (the class libraries) we use nant, so
+ you need to run nant manually.
- If you are making changes to someone else's code, please make
- sure you get in touch with the maintainer of that code before
- applying patches. You want to avoid commiting conflicting
- work to someone else's code.