Esup-multi est un projet communautaire et open-source.
Chaque établissement peut y apporter ses contributions, qu'il s'agisse du code ou de la documentation. En ce qui concerne le code source, il doit en revanche faire appel uniquement des briques open-source et sera soumis à la même licence que Esup-Multi.
Position de l'Université de Lorraine
L'Université de Lorraine s'engage à veiller à la cohérence globale du projet et reste pour l'instant maitre là dessus (si le projet prend de l'ampleur un comité de pilotage regroupant plusieurs établissements sera constitué). A ce titre elle jugera de la pertinence des fonctionnalités qui pourraient être apportées, apportera ses conseils et son expertise afin que les contributions puissent être proposées à toute la communauté sans difficulté. Enfin, elle se charge de l'intégration du code produit (sous forme de Pull Request) dans les sources communes.
Rien n'empêche un établissement de faire appel à une société tierce pour apporter des améliorations ou accompagner le déploiement de son application mobile sous Esup-Multi. Les améliorations fournies par un prestataire tierce seront soumises aux contraintes citées précédemment et devront pouvoir être intégrées au code source commun (le fork du projet est à proscrire) aussi il est important d'inclure l'Université de Lorraine dans les réflexions préalables.
Avant de commencer...
Faites-vous connaitre en échangeant sur les canaux suivants
- Liste de diffusion : esup-multi@esup-portail.org
- Rocket Chat : https://rocket.esup-portail.org/channel/esup-multi
Il se peut que vos projets de contribution soient déjà en cours dans d'autres établissements.
Contribuer à la documentation
Pour contribuer à la documentation, il suffit de demander les droits d'écriture sur l'espace wiki du projet.
Contribuer au code
Le projet est hébergé sur gitHub : https://github.com/univlorraine/esup-multi
Dans un premier temps l'Université de Lorraine validera chaque contribution et se chargera de l'intégration du code dans les sources du projet.
Le projet devra donc être forké (au sens gitHub), la contribution devra faire l'objet d'une branche dédiée tirée de la branche "develop" (préalablement synchronisée avec la branche "develop" du projet principal) et sera remontée par le mécanisme des pull request (PR) de gitHub dans le dépôt de l'Université de Lorraine afin de pouvoir profiter à la communauté.
Corriger un bug
Pour chaque bug avéré il conviendra de faire une Issue décrivant précisément le problème afin de permettre les échanges et le suivi : https://github.com/univlorraine/esup-multi/issues
1 Issue = 1 branche = 1 PR
Ajouter une fonctionnalité
L'idéal est d'éviter à un établissement de diverger des sources sur Esup-Multi et devoir maintenir des différence de code s'il souhaite ajouter un service ou une fonctionnalité. Il est donc nécéssaire de faire remonter au groupe de projet Esup-Multi (à l'Université de Lorraine dans un premier temps) tout besoin d'une nouvelle fonctionnalité. Cela permettra d'en évaluer la pertinence, d'identifier les éventuels projets similaires et d'étudier au sein d'un GT sa généralisation pour l'ensemble des établissements intéressés.
Exigences dans le code
Ce paragraphe s'étoffera en fonction des contributions qui seront apportées.
Chaque contribution doit être unitaire et se matérialise par une branche Git tirée de la branche "develop" sur le fork de l'établissement. Une fois terminée chaque contribution est mergée de cette dans la branche "develop" du projet prnicipal par une Pull Request (PR). Enfin, lorsque l'ensemble des contributions justifie une nouvelle release, la branche develop sera mergée dans main du projet et le numéro de version taggé.
Règles de nommage GIT
Nom de branche
feat/MULTI-XX-trois-quatre-mots-description
fix/MULTI-XX-trois-quatre-mots-description
Titre de la PR
feat: MULTI-XX Trois quatre mots de description (pour les nouvelles feature)
fix: MULTI-XX Trois quatre mots de description (pour les bug)
Respecter les règles des commit car ils permettent de générer automatiquement le ChangeLog de l'application grâce à l'outil release-please (https://github.com/googleapis/release-please)
Respecter les Lignes directrices pour le développement.
TO BE CONTINUED
Comment faire une Pull Request (PR)
Se rendre sur l'onglet Pull Request du projet : https://github.com/univlorraine/esup-multi/pulls
Cliquer sur le bouton
Puis sur "compare across forks"
Choisir la banche de développement du dépôt de départ et la branche dédiée à la contribution du dépôt forké
Enfin, indiquer le titre et compléter la description de la PR. En cas de correction de d'un bug, il sera intéressant d'indiquer le numéro de l'issue dans la PR.
Et soumettre la PR
L'outil va vérifier qu'un éventuel merge n'entrainera pas de conflits et le processus d'intégration continue de gitHub va alors se déclencher.
Développer un nouveau module
Côté backend => Détaillé dans le README de /dev/user-backend-nest
Côté frontend => Détaillé dans le README de /dev/user-frontend-ionic