Le développement de logiciels open source en simulation numérique prend une part de plus en plus importante dans le processus de recherche. Il permet de valider les méthodes numériques, de développer de nouveaux algorithmes et de permettre à n’importe qui de s’approprier les méthodes et de les enrichir. Ouvrir nos codes de recherche fait également partie de la démarche de science ouverte et il ne s’agit pas de “juste” mettre une archive avec les sources sur une page web.
La philosophie et la structure d’un logiciel émanent de ses précurseurs et évoluent avec le temps au fil des différentes contributions. Néanmoins, pour que cette architecture ne s’effondre pas au moindre changement, un cadre est nécessaire. La mise en place d’un tel cadre est une contrainte. Il s’agit d’accompagner les contributeurs dans ces nouvelles pratiques et de trouver le compromis entre cadre contraignant et laisser libre cours à la créativité.
Lors du processus de développement, de nombreuses tâches sont répétitives et peuvent être source d’erreurs ou de régressions de l’application. On peut parler ici des tests unitaires, mais également du formatage de code, des erreurs pouvant être révélées lors de l’analyse statique, de la génération de la documentation, de la création de nouvelles versions avec la distribution de l’application via des systèmes de packaging (pypi, conda, vcpkg, spack, nix, guix, …).
La première demi-journée sera dédiée à la définition de ce qui fait qu'un logiciel est de qualité, visible et pérenne. Il s'agira d'identifier les actions à mettre en oeuvre pour obtenir un tel logiciel ainsi que les freins qui empêchent d'y parvenir. La seconde journée sera plus en mode TP où il sera proposé aux participants de manipuler les github actions pour l’automatisation de ces tâches répétitives. La mise en place et l'exécution d'un processus similaire sur un serveur gitlab couplée à une infrastructure d'exécution de tests seront également proposés sous forme de démonstration.
Objectifs
- Améliorer et sécuriser son processus de développement
- Diffuser son travail de manière semi automatique et l’ouvrir au plus grand nombre
- Comprendre le fonctionnement de github actions
- Acquérir une autonomie pour mettre en place ses propres workflows
Pré-requis
- Connaissance de base de l'utilisation de git
- Un compte sur github
Nombre de participants : 20
Le nombre de places est limité mais la procédure d'inscription ne vous limitera pas. Nous vous contacterons pour vous informer si vous êtes inscrits ou sur liste d'attente.
Cette journée fait partie d'un evénément qui réunit trois réseaux métiers, n'hésitez pas à vous inscrire aux autres moments de cette rencontre ! En particulier le mercredi matin, on réfléchit à comment faire des liens avec la communauté des ASR.
- Loïc Gouarin (ingénieur de recherche en calcul scientifique - CNRS - CMAP - Ecole polytechnique)
- Matthieu Haefele (ingénieur de recherche en calcul scientifique - CNRS - LMAP - Université de Pau et des Pays de l'Adour)
Université Grenoble Alpes,Salle MaCI339 avenue Centrale38400 Saint-Martin-d’Hères
- Loïc Gouarin
- Matthieu Haefele