Pré-requis : Avoir consulté la documentation Architecture
Contribution via GitHub et documentations techniques
GitHub :
OpenSILEX est un projet Open Source sous licence GNU AGPLv3. Bien qu’il soit développé sur un système de versionnement GitLab déployé sur un serveur INRAE, le projet OpenSILEX de la forge INRAE. Les projets de développement principaux sont répliqués sur un dépôt GitHub OpenSILEX public.
Contribuer au développement :
Que vous soyez développeur dans une unité de recherche ou non, OpenSILEX vous encourage à contribuer si vous le souhaitez. Pour cela plusieurs options s’offrent à vous.
Développement d’un module :
OpenSILEX est un logiciel modulaire. Si votre objectif est de créer une version de OpenSILEX adaptée à vos besoins de recherche spécifiques, alors la solution idéale est probablement de développer votre propre module. Ce module permettra d’avoir un vocabulaire spécifique à votre domaine de recherche, d’avoir des fonctionnalités spécifiques et non disponibles dans un autre module, et enfin de paramétrer vos propres styles d’interface. Vous pouvez vous rapprocher de notre équipe (opensilex@inrae.fr) afin d’obtenir des conseils et de vous assurer qu’aucun module existant ne couvre déjà vos besoins.
Contribuer au cœur de OpenSILEX :
Il est également possible de contribuer directement dans le cœur de OpenSILEX, ce qui impactera alors tous les modules et toutes les instances. Si vous souhaitez développer une fonctionnalité que vous pensez être utile à tous les utilisateurs de OpenSILEX, alors c’est la solution idéale.
Si vous souhaitez corriger un bug présent ou proposer une amélioration dans le cœur, alors c’est aussi la solution idéale.
Il est possible de collaborer plus étroitement avec notre équipe par l'intermédiaire d’un projet ou d’une convention par exemple. Pour en savoir plus vous pouvez nous contacter à opensilex@inrae.fr.
Qui que vous soyez et quelle que soit votre raison de vouloir contribuer au cœur du logiciel, cela commence par contacter l’équipe et lire ce document : https://github.com/OpenSILEX/opensilex/blob/develop/CONTRIBUTING.md
Notre workflow :
Les contributions publiques passent par les issues Github. Si vous souhaitez intégrer des changements, ouvrez une issue et contactez-nous à l’adresse opensilex@inrae.fr pour nous en informer. La proposition sera relue par un membre de l’équipe pour faire des retours et éventuellement valider les changements. Notre workflow comprend également des phases de tests automatiques et de tests IHM dans le but de confirmer les attentes de la fonctionnalité et d’éviter l’introduction de nouveaux bugs ou autres régressions.
Documentation technique :
La documentation technique du projet est elle aussi librement accessible sur GitHub. Elle prend la forme de fichiers markdown facilement lisibles dans l’interface de GitHub / GitLab ou dans votre IDE préféré.
Les sources sont également commentées à l’aide de Javadoc. Cette javadoc est compilée en un site navigable à cette adresse : https://opensilex.pages-forge.inrae.fr/opensilex-dev/maven-report/
Par exemple, la javadoc du module opensilex-core est disponible à cette adresse : https://opensilex.pages-forge.inrae.fr/opensilex-dev/maven-report/opensilex-core/apidocs/index.html
Ce site présente d’autres informations importantes comme :
- Une vue d’ensemble de la couverture de test des sources : https://opensilex.pages-forge.inrae.fr/opensilex-dev/maven-report/jacoco-aggregate/index.html
- La liste des dépendances de l’API : https://opensilex.pages-forge.inrae.fr/opensilex-dev/maven-report/dependencies.html
Spécifications fonctionnelles :
Comment devrait fonctionner telle fonctionnalité ? Quelles sont les règles que je dois respecter pour créer telle ressource ? Ce comportement est-il un bug ou ai-je mal compris le fonctionnement de cette page ?
Si vous vous posez ces questions, alors ce que vous cherchez, ce sont les spécifications fonctionnelles. Bien qu’incomplètes, elles regorgent d’informations sur le comportement attendu de nos fonctionnalités. Et vous pouvez y accéder facilement, avec un moteur de recherche intégré, à cette adresse : https://opensilex.pages-forge.inrae.fr/opensilex-dev/.
