enfr

Une nouvelle forge pour Code_Aster

17 décembre 2013

par M. Courtois, EDF R&D / AMA

"Une forge désigne un système de gestion de développement collaboratif de logiciel", Wikipédia.

Les outils constituant la forge de Code_Aster ont été successivement rénovés :

  • l’outil (interne) de gestion des faits techniques (anomalies, demandes d’évolution) sur base Roundup en 2005,
  • l’application de gestion documentaire (près de 2000 documents, 20.000 pages) sur base CubicWeb en 2009.

C’est à présent le système de gestion de versions du code source qui a été remplacé.
L’ancien outil développé en interne au départ du projet offrait des fonctions de
base pour gérer les modifications des fichiers.
Parmi les deux principaux outils standards actuels, Mercurial a été choisi à Git pour sa
prise en main rapide et ses possibilités d’extension facilitées.
Il s’agit d’un système de gestion décentralisé où chaque développeur possède
une copie conforme de l’intégralité de l’historique des modifications de l’ensemble
du code source.
Des sessions de formation assurées par Logilab ont permis de former à Mercurial une cinquantaine
de développeurs durant l’été.

Pour conserver les processus historiques d’Assurance Qualité et de
contrôle du code produit (inter-compilation), mais aussi pour bénéficier des apports permis par les nouvelles normes du langage, l’ensemble du code source a été migré en Fortran 90.
Le respect des règles de programmation est vérifié par un nouvel outil, aslint, afin d’assurer l’homogénéité du code.

De plus, le système de construction (auto-configuration, compilation, installation) a été repensé pour s’adapter à ces nouveautés. Il s’appuie sur l’outil waf,
utilisé par des projets libres comme Samba, dont la déclinaison initiale pour la construction de Code_Aster a été réalisée en propre par Logilab pour son projet libaster.

Les outils vieillissants, parfois obsolètes, ont ainsi laissé la place à des
outils et pratiques standards dans le domaine du développement collaboratif.
Les gains sont immédiats en terme de traçabilité, fiabilité et productivité,
notamment pour la gestion des développements à long terme qu’ils soient
exploratoires ou programmatiques.

Enfin, cette forge sur la base de pratiques standards facilitera les contributions
externes. Ces nouvelles pratiques permettent en effet de rendre accessible les sources ainsi que les outils de développement dans un dépôt Bitbucket
sur https://bitbucket.org/code_aster. Un bugtracker est aussi ouvert à l’externe à l’adresse https://bitbucket.org/code_aster/codeaster-src/issues