The FCM system is designed to simplify the task of managing and building source code. It consists of three main components.
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.
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.
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.
The following sections discuss these components in more detail.
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:
ticketwithin Trac) can be given a priority and assigned to a particular person. Changes made to your Subversion repository can easily be traced to the relevant ticket. Where appropriate, tickets can be used to record information about who has reviewed each change.
roadmapfeature which helps you to plan and manage project releases. Each ticket can be associated with a particular milestone. Trac can then easily show you what features or fixes went into a particular release or what work remains before a particular milestone is reached.
wikiwhich can be used for project documentation.
The build system provides the following features:
make
is used to perform the build. Build times on
multi-processor systems can be reduced by running parallel processes.The extract system provides the following features: