How to checkout, update, modify, and commit devel-version of the GenABEL suite

by Lennart Karssen, Yurii Aulchenko for the GenABEL-devel team (building upon the "How to install devel-version of GenABEL suite" by YA, William Astle and LK)

Here are instructions on how to checkout/update, modify, compile and commit the devel-version of GenABEL packages. It is assumed that you use Linux or Mac OS.

Register at R-forge and GenABEL

Go to the R-forge and register (follow the link "New Account" at upper right corner). After registering, send request to join the GenABEL project; for that, go to the GenABEL project page, and follow the link "Request to join" (bottom of the "Project members" list). Note that in general, you need to submit some patches before you can be accepted as a commit-member.

Setting up the environment and checking out the project for the first time

To get GenABEL & Co. running in devel-setting, you need to do a number of things. Plan to spend about 30 minutes on that. You will need good Inet connection and you also will need to have Subversion (svn) installed.

1) Check if Subversion is installed. For that, try 'svn help'. If you do get help, everyting must be all right. If Subversion is not there, here is the link, which may help: http://subversion.apache.org/packages.html

2) In order to be able to compile devel-version, you need to set an environmental variable R_HOME to point the location, where R is installed. We assume that you use Bash (most people do); if not, try to figure out how you can set environmental variables for your particular environment (and let us know so we can add it here :) ).

You can check where R is installed by running 'dirname $(which R)' on Bash command prompt. Assuming R is installed at '/usr/bin', add the following lines to your ~/.bashrc file (with Mac OS X, use ~/.bash_profile).

R_HOME=/usr/bin
export R_HOME

or, you can try

R_HOME=$(dirname $(which R))
export R_HOME

log out and log in again, or start a new terminal/console window.

3) It is recommended (though not 100% necessary) that you install the latest development version of R. You can obtain it from CRAN ftp; after downloading, follow included instructions.

4) Install _stable_ GenABEL et al., 'roxygen2', and 'RUnit' from CRAN; for that on R command line type

install.packages("GenABEL",dependencies=c("Depends","Suggests"))
install.packages("roxygen2")
install.packages("RUnit")

5) Change to a place, where you want the source code to go. Get to the latest code by

svn checkout svn+ssh://your-user-name@svn.r-forge.r-project.org/svnroot/genabel/

This should create directory called 'genabel' with all SVN data, the subdirectory 'pkg' will contain the packages.

6) Compile and install latest code by

cd pkg
R CMD INSTALL DatABEL
R CMD INSTALL GenABEL
... etc.

Note some packages (e.g. ProbABEL) are not R packages; to compile these use specific Makefile's, e.g.

cd ProbABEL
autoreconf -i
./configure
make
(See also the ProbABEL/doc/INSTALL file.)

Updating, making modifications, compiling, checking and committing the changes

Before you attempt to modify the code, please always update your local version with

svn update [PATH-to-local-genabel-directory]

Now you are ready to make modifications to the code. Ideally, when you fix a bug or add functionality, a (regression) RUnit test should be added (see examples of these in e.g. GenABEL/inst/unitTests).

In case you add new functionality/files, please make sure that your new procedures are registered in the NAMESPACE and are documented using Roxygen. To make automatic generation of help-files possible, you will also need to update the ''generate_documentation.R'' file.

Before you commit the changes, always make sure that the package documentation is updated (Roxygen), the package compiles and passes R checks. To make sure you generate the documentation, ''cd'' to WITHIN the package and run
R -f generate_documentation.R
To run checks, follow the instructions outlined in "Writing R Extensions" (section "Checking packages"), here is the link to the R Manuals page.

Commit the changes only if all checks pass! To make sure that you only commit the changes you really want check with
svn status
to see if indeed the only the files you want to commit are marked with a ''M''. To commit changes:

svn commit [PATH-to-local-genabel-files-you-have-modified] -m "what-is-change-about-message"

We ask you to please always summarize introduced changes after the ''-m'' flag. If you don't specify the ''-m'' flag your default editor will open (in most cases this is vi). If you accidentally forget the ''-m'' flag and are not used to vi type '':q!'' to exit.

If you need to add some (new) files, first use syntax
svn add [PATH-to-local-genabel-file-you-have-added] 

... and then perform the commit.