Development Tools

GNOME uses several tools develop by external projects to improve and concentrate on its idea to develop sofwtare for everybody. If you'd like to help develop GNOME, you'll need to know about the following tools.

Bug Tracking

The GNOME Bug Tracker is a system that allows users to file bugs they have found so that GNOME developers will know about them and can fix them. GNOME uses Bugzilla, a bug tracking system first developed for the Mozilla project.

Revision Control

Concurrent Versions System, CVS, is a powerful method of allowing many developers to work on the same source code. It is used extensively within the GNOME project and often proves to be the first hurdle for new developers that are attracted to the GNOME project.

Each developer checks out a copy of the current version of the source code from CVS and then is able to work on their own personal copy separately from other developers. When they have made changes, they commit them back to the CVS repository. The CVS server is then able to merge all the changes that the developer has commit back. Sometimes this merging isn't always successful, the developer is notified and they will have to manually fix any possible conflicts that arise before trying to commit their changes again.

The GNOME project allows both 'read/write' and 'read only' (through its anonymous CVS mirror servers). Quite often, like any mirror server, the anonymous servers take a little while to get in sync with the main CVS server. Typically, they will be 24 hours behind the main server. This is sometimes a cause of frustration to new developers.

The GNOME project has also set up online browsing of its CVS repository.

If you would like to track the changes that occur in various GNOME CVS modules, subscribe to the cvs-commits-list mailing list, a high volume, read-only list that receives mail every time somebody checks something into the repository. You can filter mail from this list by the title of the modules you are interested in and you may wish to further filter out any changes that only affect translations by looking for the word '(silent)' in the subject and ignoring those messages.

Build Tools

The GNOME project is using a number of standard GNU tools for building on multiple architectures.

libtool
A set of shell scripts to automatically configure UNIX architectures to build shared libraries in generic fashion. If everything is working, you won't even know it's there.
autoconf
Autoconf creates portable and configurable packages. If you've ever run a configure script, you've seen what autoconf can do.
automake
Automake is a Makefile generator. It normally works with autoconf to automatically produce Makefiles based upon what configure determined about a system.

Additional scripts

A collection of useful scripts to help you accomplish simple (often repetitive) tasks.

prepare-ChangeLog.pl
This handy Perl script runs “cvs diff” against the current module, detecting all changed files in the process, and proceeds to fill out a ChangeLog entry template for you, including your name, e-mail address, the list of files changed, and function headers in C files.
list_translators.sh
This script pulls out a list of all new translations from po/ChangeLog for you to use in release announcements.
cryptit.pl
This script generates a crypt()’ed password for you.

If you have a script that you would like to see on this page, please e-mail it or a link to it to The Webmasters.

About GNOME · Download · Support · Community · Contact