Description

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.

Intervenants

  • 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)

Lieux

Université Grenoble Alpes,
Salle MaCI
339 avenue Centrale
38400 Saint-Martin-d’Hères

Programme

lundi 11/03

13:30 14:00 Pas de support disponible Pas de résumé disponible

Accueil

14:00 18:00 Pas de support disponible Pas de résumé disponible

Un logiciel est de qualité, visible et pérenne, c'est quoi ?

Loïc Gouarin et Matthieu Haefele

mardi 12/03

09:00 17:30 Pas de support disponible Pas de résumé disponible

Travaux pratiques sur github actions

Loïc Gouarin et Matthieu Haefele

Organisation

  • Loïc Gouarin
  • Matthieu Haefele