Contributor Guide
Overview
This article describes the facilities, methods, and commands used to contribute to the FreeM project.
For All Developers
In order to contribute to FreeM, you must agree to abide by both the Code of Conduct and the General Policies. Your code must also conform to the style standards laid out in Appendix F of The FreeM Manual.
You will also need to have cvs
installed on your machine. This is available in the package repositories of all popular Linux and UNIX operating systems.
Anonymous CVS Access
Getting Source Code from CVS
To fetch the latest FreeM source code from CVS, run the following command:
$ cvs -d:pserver:anonymous@cvs.coherent-logic.com:/home/cvsroot co freem
Updating Your Copy of FreeM Source Code
To update a previously-fetched copy of FreeM source code, go into the directory in which FreeM is located, and run the following command:
$ cvs -d:pserver:anonymous@cvs.coherent-logic.com:/home/cvsroot update -Pd
Submitting Changes Without CVS Write Access
To submit a change to FreeM as an anonymous user (i.e., a user without writer access to the FreeM CVS repository), generate a .patch
file using the diff
utility, and send it to freem-patches@coherent-logic.com
, along with a description containing the following information:
- What bug your patch fixes, or feature it implements
- Your full preferred name (this will be used in order to credit you for your work)
- Your preferred e-mail address
CVS Writer Access
Requesting Writer Access
In order to get CVS writer access, you will need to have either a track record of submitting good patches, or be an existing member of the core team. If you meet this criteria, please send a request to
freem-patches@coherent-logic.com
, including the following information:
- Your full preferred name
- Your preferred e-mail address
- The username you would like to use for access to our CVS server (we will do our best to accommodate, but you may be required to choose a different username if your preferred username is already taken)
Configuring CVS
Once the below changes are made, you will need to log out and log back in to make them take effect.
Bourne-Again Shell (bash)
In ~/.bashrc
or ~/.bash_profile
, add the following lines, substituting your cvs.coherent-logic.com
username for username:
export CVS_RSH=/usr/bin/ssh export CVSROOT=:ext:username@cvs.coherent-logic.com:/home/cvsroot
You may also need to change the CVS_RSH
value to the correct absolute path to your ssh
binary. You can find this information using which ssh
.
C Shell
In ~/.cshrc
, add the following lines, substituting your cvs.coherent-logic.com
username for username:
setenv CVS_RSH /usr/bin/ssh setenv CVSROOT :ext:username@cvs.coherent-logic.com:/home/cvsroot
Fetching FreeM Source Code
To fetch the latest FreeM source code for the first time, run the following command:
$ cvs co freem
If this fails, make sure you have the CVS_RSH
and CVSROOT
environment variables correctly configured.
Updating Your Copy of FreeM Source Code
In the directory containing the FreeM source code, run the following command:
$ cvs update -Pd
Adding Files to the Repository
Run the following commands from the freem
directory, substituting the path and filename (relative to the freem
directory) for <:filename>
:
$ cvs add <filename>
Committing Changes and Pushing to the Repository
Run the following commands from the parent directory of the freem
directory, replacing commit-message
with a message describing the change:
$ cvs ci -m "commit-message"