Developer's FAQ

The SciGraphica Documentation Team

FAQs and useful information for people wanting to help develop SciGraphica: either through contributing code or documentation.


Table of Contents
Obtaining source code.
Common Problems Encountered During Compiling
Producing Documentation for SciGraphica

Obtaining source code.

To develop SciGraphica you obviously need access to the source code, which includes the documentation sources as well. There are two and a half ways of doing this: Obtaining source tarballs of point releases, and through anonymous cvs. If you become a regular developer you may also be granted write access to the cvs repository (this is the extra half ;0).

Source tarballs

Every once in a while the current cvs source is cleaned of any major known bugs and issues and is packaged as a point release for users to download and try. Often they can download prepackaged binaries, but there is always the option of compiling from source.

The latest source tarball will be linked to and announced on the main SciGraphica website(http://scigraphica.sourceforge.net/).

You can then unarchive this with

    $ tar xvzf sg-x.x.x.tar.gz
   

or if your system doesn't have GNU tar

    $ gzip -c -d sg-x.x.x.tar.gz | tar xvf -
   

You can then compile as normal with

    $ cd sg-x.x.x ; ./configure && make && make install
   

Obtaining source via anonymous CVS

The CVS repository allows you to obtain the very latest source to SciGraphica. This may contain bug fixes since the point release. Or it may have a new feature you heard about or suggested. Or it might be riddled with new bugs. Ride the bleeding edge.

To obtain the source: log into the CVS repository with the following command

    $ cvs -d:pserver:anonymous@cvs.scigraphica.sourceforge.net:/cvsroot/scigraphica login
   

Just hit enter for the password. You can then download the latest source with [-z3 tells the server to use a moderate level of compression, any higher is usually not worth it]

    $ cvs -z3 -d:pserver:anonymous@cvs.scigraphica.sourceforge.net:/cvsroot/scigraphica co sg
   

Before compiling you need to produce the configure scripts etc using

    $ cd sg ; ./autogen.sh
   
One you have generated the configuration scripts you can then configure the compilation as normal with
    $ ./configure [--flags]
   

Then (hopefully) compile as normal.

Updating CVS files

The CVS repository changes daily, even hourly, so you will want to keep up to date. Luckily you don't have to download everything again. CVS will compare what you have with what's in the repository and then only update those things which are different. For example, to update the sg/src/ directory you would

    $ cd sg/src/ ; cvs update
   

Issuing an update command in any other directory should have a similar affect. To update the entire tree you would issue it from the main sg/ directory. You can set this up as a cron job so you could get updated on a nightly basis, for example.

Developer Access

If you have developer access to the CVS repository, granted to you by one of the core developers, (you also need to be a registered SourceForge user) then you can not only download files from the repository but upload them as well. You can log into the repository with ssh, using the following (enter your SourceForge user password) rather than the anonymous login shown before,

    $ export CVS_RSH=ssh
   
You might want to put this command in your ~/.bashrc file or equivalent as nobody sane uses rsh anymore. Then
    $ cvs -z3 -d:ext:developername@cvs.scigraphica.sourceforge.net:/cvsroot/scigraphica co sg
   

If you have edited a file and wish the changes to be committed to the repository you would use

    $ cvs commit file
   

You will be asked to give a summary of your changes, such as 'Removed unneccessary gtk call'. This is so other developers can keep track of what was done, when and by who.

If you have created a new file you use the following command first before committing

    $ cvs add file
   

The -z3 switch can be added to all cvs operations to compress the connection. This provides a significant amount of compression compared to a minimal amount of cpu usage and is highly beneficial for developers on dialup connections.

Developer shell access

Through ssh developers can have access to SourceForge shell accounts. This has two advantages: 1) Being able to compile or edit files from a central source if you don't have a personal machine available. 2) To be able to edit the project's web pages.

To access the SciGraphica 'account' for shell access you can use the following

    $ ssh [-C] developername@scigraphica.sourceforge.net
   

Where developername is your SourceForge username and -C is used if you wish to compress your connection (pretty much preferable unless you happen to be on the same LAN as SourceForge itself ;0). From here you have a small (~10MB) user account in which to store data and run programs. Also, from here you can access the project webpages in /home/groups/s/sc/scigraphica/htdocs/. To remember this you need the following logic: /home/groups/ for a project's account directory, s/ for the first letter in our project name, sc/ for the first two letters in our project name, scigraphica/ for the full project name, and htdocs/ for the webpage root directory.

Please take the same care with the webpages source as you would with the code source ie test before uploading and take a backup before replacing current files.