11.9.7.1 : Utilisation de ces outils



Ces outils offrent de nombreuses fonctionnalités qui doivent cependant être utilisées judicieusement.



Une utilisation efficace consiste à définir quelques personnes comme ayant le droit de modifier la branche principale (master) de l'historique des modifications sur gitlab[101]Gitlab : plateforme de développement privée ou Github[100]Github : plateforme de développement gratuite. Ces personnes ont donc la responsabilité de maintenir la branche master à jour et fonctionnelle en effectuant les fusions d'autres branches développées par eux-mêmes et les autres développeurs du projet.

Lorsqu'une branche est fusionnée sur master (ou une autre branche) ses modifications doivent être fusionnées (squash commits) pour que la modification finale soit la plus claire possible, elle doit aussi être supprimée afin d'éviter une nouvelle fusion alors que cette branche ne sera certainement plus à jour, et permet aussi de simplifier la recherche de bogues via la fonction git bisec.

Des tests unitaires (voirsection 11.9.4.5) doivent être ajoutés à chaque nouvelle fonctionnalité pour vérifier leur fonctionnement au cours du développement. Il est préférable de préparer des tests qui vérifient si le programme valgrind ne détecte aucune manipulation illégale dans l'exécution des tests unitaires.

L'ensemble des tests doit être lancé idéalement à chaque nouvelle modification (commit) et au moins une fois par jour.

Il est préférable de générer la documentation (voirsection 11.9.6) après avoir lancé les tests unitaires. Cette documentation peut être mise en ligne automatiquement avec le système de pages de gitlab[101]Gitlab : plateforme de développement privée et Github[100]Github : plateforme de développement gratuite. De cette façon, une documentation à jour est toujours disponible et cohérente avec la version principale.

Pour des raisons de clarté, une branche qui résout un problème (ou issue) doit porter le même nom que ce dernier.

Les techniques modernes de développement de logiciel permettent, à l'aide d'outils adéquats, d'améliorer la qualité du développement logiciel, la visibilité les programmes, des bibliothèques, ainsi que leurs développeurs, favorisent les échanges et permettent de gagner énormément de temps.

Ces pratiques, pas ou peu connues des physiciens, doivent être partagées afin que leurs développements deviennent des atouts et non des poids.