A new forge for Code_Aster

17 December 2013

By M. Courtois, EDF R&D / AMA

"A software forge is a collaboration platform allowing collaborative software development", Wikipedia

In the past years, several constitutive tools of the Code_Aster forge have been revamped :

  • the internal bugtracker (used to report defects, ask for improvements) is based on Roundup since 2005,
  • the document management system (which tracks over 2000 documents totalling more than 20000 pages) is based on CubicWeb since 2009.

The time had come to replace the source code management (SCM) system. The previous in-house tool only provided basic version control. Two SCM software are currently popular : among them, Mercurial was preferred to Git for its easy learning curve and its extension features. It is a distributed revision control tool where each developer possesses a carbon copy of the whole modification tree, thus having access to the history of the entire code source.
Training sessions to Mercurial teached by Logilab were organized during the summer to allow the training of a fifty developers installed base.

To preserve the long-standing Quality Assurance processes, including checking of the source code (inter-compilation), but also to benefit from newer features of the programming language, the whole source code was migrated to Fortran 90. Programming guidelines are now verified by a new piece of software, aslint, which allows to keep an homogeneous code.

Moreover the build system (auto-configuration, compilation, installation) was also revamped in order to accommodate these changes. It is now based on waf, which is used in free software projects such as Samba. The initial waf configuration for Code_Aster was done by Logilab as part of its libaster project.

Aging or deprecated tools have thus been replaced by standard practices and widely-spread tools for collaborative development. Gains in productivity, gains in quality assurance, gains in traceability are already notable. It is especially true for the management of long developments, be they exploratory or planned.

Finally this new forge will facilitate external contributions, that is outside EDF and its partners. Indeed, thanks to these new practices, the source code as well as the development kit are now available in a Bitbucket repository at https://bitbucket.org/code_aster. An external bugtracker is also opened at https://bitbucket.org/code_aster/codeaster-src/issues