Difference between revisions of "Contributor Guide"

From FreeM Wiki
Jump to navigation Jump to search
(Created page with "=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 mu...")
 
 
(2 intermediate revisions by the same user not shown)
Line 21: Line 21:
  
 
<pre>
 
<pre>
$ cvs -d:pserver:anonymous@cvs.coherent-logic.com:/home/cvsroot update -pD
+
$ cvs -d:pserver:anonymous@cvs.coherent-logic.com:/home/cvsroot update -Pd
 
</pre>
 
</pre>
  
Line 30: Line 30:
 
* Your full preferred name (this will be used in order to credit you for your work)
 
* Your full preferred name (this will be used in order to credit you for your work)
 
* Your preferred e-mail address
 
* Your preferred e-mail address
 +
 +
Each patch should address no more than one bug fix or feature addition. Patches that do not comply with this requirement will be kicked back to the developer for revision.
  
 
=CVS Writer Access=
 
=CVS Writer Access=
Line 86: Line 88:
 
==Adding Files to the Repository==
 
==Adding Files to the Repository==
  
Run the following commands from the <code>freem</code> directory, substituting the path and filename (relative to the <code>freem</code> directory) for <code>&lt:filename&gt;</code>:
+
Run the following commands from the <code>freem</code> directory, substituting the path and filename (relative to the <code>freem</code> directory) for <code>&lt;filename&gt;</code>:
  
 
<pre>
 
<pre>
 
$ cvs add <filename>
 
$ cvs add <filename>
 
</pre>
 
</pre>
 
  
 
==Committing Changes and Pushing to the Repository==
 
==Committing Changes and Pushing to the Repository==

Latest revision as of 14:42, 19 January 2025

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

Each patch should address no more than one bug fix or feature addition. Patches that do not comply with this requirement will be kicked back to the developer for revision.

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"