System Overview

The FCM system is designed to simplify the task of managing and building source code. It consists of three main components.

Code Management (CM) System

This system provides facilities for making changes to source code in a controlled and straightforward manner.

Version control is provided by the open source tool Subversion. The source code and its history are stored in a central database which is called the repository. Support for parallel working is provided through the use of branches.

The open source web-based tool Trac allows changes to be examined and documented. It provides an integrated issue tracker, wiki and repository browser.

Build System

This system allows source code to be compiled with a minimal amount of configuration. Compilation time can be minimised through the use of pre-compiled code and by using the parallel make facilities provided by the open source tool GNU Make.

It provides a number of powerful features aimed primarily at building Fortran 9x code.

Extract System

This system provides the interface between the CM and build systems. Code is extracted and presented in a suitable form for the build system. Code can be mirrored to a different build platform if necessary.

The diagram below illustrates how these components fit together.

FCM system overview

The following sections discuss these components in more detail.

Code Management System

The CM system is built using a number of open source tools, in particular Subversion and Trac.

Subversion is a modern version control tool with a large and rapidly expanding user base. For a summary of its main features please refer to the What is Subversion? section in the Version Control with Subversion book.

Subversion is a generalised tool which can be used in lots of different ways. This makes some day-to-day tasks more complex than they need be. FCM defines a simplified process and appropriate naming conventions. It then adds a layer on top of Subversion to provide a natural interface which is specifically tailored to this process. Where appropriate it simply makes use of the command line tools provided by Subversion. However, in other cases it provides significant additional functionality, for example:

FCM also provides a simple GUI which allows easy access to most of the common commands which you will need.

Trac is the other main component of the CM system. It is a powerful web based tool which helps you to manage your software project. It includes the following features:

Build System

The build system provides the following features:

Extract System

The extract system provides the following features: