Ressources logiciels libres

Sites de référence sur le logiciel libre

https://opensource.org/osd est la définition officielle de l’open source sur le site de l’Initiative Open Source.

L’open source et le logiciel libre sont en général synonymes, mais l’utilisation du terme « open source » est davantage connotée comme à destination des entreprises (en général en plaçant l’accent sur les avantages permis par cette pratique), tandis que le terme de logiciel libre cherche à se définir autour des libertés offertes aux utilisateurs.

https://fsf.org La Free Software Foundation (FSF) est une association à but non lucratif dont la mission est de promouvoir les libertés des utilisateurs de logiciels dans le monde entier, à travers le logiciel libre.

https://april.org Pionnière du logiciel libre en France, l’April, constituée de 4120 adhérents (3725 individus, 395 entreprises, associations et organisations), est depuis 1996 un acteur majeur de la démocratisation et de la diffusion du logiciel libre et des standards ouverts auprès du grand public, des professionnels et des institutions dans l’espace francophone.

L’ADULLACT a pour objectifs de soutenir et coordonner l’action des Administrations et Collectivités territoriales dans le but de promouvoir, développer et maintenir un patrimoine de logiciels libres utiles aux missions de service public.

https://framalibre.org Annuaire des logiciels libre de l’association Framasoft

http://software.ac.uk Le Software Sustainability Institute cherche à améliorer les pratiques de recherches en logiciel (au Royaume-Uni), notamment pour les rendres plus pérennes. Ils travaillent avec des chercheurs, développeurs, et financeurs et partenaires, pour identifier les bonnes pratiques en logiciels pour la science.

Au niveau institutionnel français, la circulaire sur le logiciel libre (PDF) précise les orientations pour le logiciel libre dans l’administration, et les documents de référence du SI de l’État contiennent à la fois le Socle Logiciels Libres contenant les logiciels libres préconisés pour diverses applications, et le référentiel général d’interopérabilité, favorisant les standards ouverts pour l’interopérabilité entre systèmes d’information.

Au niveau européen, l’observatoire de l’open source est une composante de l’ISA² qui travaille à l’interopérabilité des systèmes pour les administrations, entreprises, et citoyens. En juin 2020, ils publient leur Guide pour des communautés pérennes de logiciels open source dans le secteur public.

 

Créer un projet open-source

Cette catégorie cherche à aider une personne ayant un projet de logiciel libre.

0. Vérifications préliminaires

Y a-t-il des projets libres déjà existants et déjà établis permettant de faire ce qui est prévu pour ce projet ? Si oui, y a-t-il de bonnes raison de démarrer un nouveau projet au lieu d’améliorer l’existant en collaborant sur celui-ci ?

Créer un nouveau package Python expérimental pour un nouvel algorithme de machine learning issu d’un travail de recherche est peut-être une bonne idée, mais par exemple le contribuer à scikit-learn permettra de trouver instantanément une communauté établie de contributeurs potentiels… et plusieurs ordres de grandeurs d’utilisateurs en plus !

1. Choix de la licence

Des sites comme https://choosealicense.com/ permettent de trouver la licence open source idéale pour un projet.

2. Choix d’un hébergement

En 2020, le choix d’un système de contrôle de version n’en est plus vraiment un : tout le monde utilise git. Pour collaborer avec de potentiels contributeurs, il faut donc utiliser git, et si on trouve de très (très) nombreux tutoriels en ligne, ce livre est un bon point de départ.

Il faut encore choisir où héberger son dépôt : Github est le choix le plus populaire, et celui qui donne la plus grande visibilité au projet, mais Gitlab est une autre option, davantage libre et ouverte. De nombreuses communautés ont leur instance Gitlab auto-hébergée (freedesktop, GNOME, KDE…), et Télécom Paris en a également une à https://gitlab.telecom-paris.fr. (Attention toutefois avec les instances locales : si vous pensez que des contributeurs extérieurs à une instance peuvent vouloir contribuer à votre projet, vérifiez qu’il est possible de le faire).

Toutes ces plateformes intègrent en général à la fois l’hébergement du dépôt git avec des systèmes de tracking de bug, un wiki pour la documentation, et de l’intégration continue (externe avec Travis pour le cas de Github).

3. Code, Test, et Documentation.

Pour qu’un projet attire des contributeurs, une idée originale et un code ingénieux ne sont en général pas suffisants (à mon grand regret). Ce qui semble évident à la personne qui écrit le code original ne le sera pas pour tout le monde (y compris à l’auteur lui-même, six mois plus tard), et nécessite donc d’être écrit dans de la « Documentation ».

Documentez le code autant que possible (pourquoi il fonctionne et comment), comment le faire tourner à partir de zéro, ses dépendances et ce qu’il manque encore. Seulement à partir de ce moment, une personne intéressée par le projet sera en mesure de le tester et de voir si elle veut et peut contribuer à l’améliorer.

Lorsqu’on atteint un seuil critique de code, il devient nécessaire d’écrire des tests unitaires : si on ne peut pas tester toute l’application à la main quand un bout de code change, il faut automatiser ces tests et les lancer automatiquement (par exemple avec de l’intégration continue).

4. Parlez de votre projet !

Même si vous estimez que votre projet n’est pas complètement parfait, pas entièrement terminé, parlez-en autour de vous à toute personne qui pourrait être intéressée ! Plus un projet est connu, plus il a de chances d’attirer des contributeurs qui viendront combler des manques, corriger des bugs, ajouter des fonctionnalités, apporter leurs idées, ainsi qu’attirer des utilisateurs pour tester le projet.

Bonne chance !

Contribuer à un projet open source

Vous utilisez des projets open source ? La plupart des projets libres ont un grand besoin de nouveaux contributeurs et en général n’importe qui peut les aider, que vous sachiez ou non coder.

0. Questions préliminaires

  • Où est le code ?
  • Pouvez-vous le compiler/l’exécuter ?
  • Où est la documentation ?
  • Où sont listés les bugs connus ?
  • Où est la communauté ? (IRC, mailing lists, etc.)

1. Premiers contacts

Est-il possible de contacter les personnes actuellement dans le projet ? Comment le projet évolue-t-il ? Comment les contributeurs actuels réagissent-il à des propositions d’aide ?

2. Coder, tester, documenter

Travailler dans le cadre d’une base de code déjà établie est un processus très différent de commencer un projet à partir de zéro : dans un gros projet, il y a énormément de parties difficiles à comprendre, et la première étape est d’admettre que ce n’est pas un problème. La documentation ou les contributeurs actuels ont souvent la réponse aux premières questions que vous vous poserez sur le code, et après avoir passé assez de temps dans le projet, vous finirez probablement par rajouter ce que vous apprendrez dans la documentation, ou par le transmettre vous-même aux contributeurs futurs.

Interagir avec d’autres contributeurs vous permettra d’avancer plus vite sur le projet, et d’apprendre comment le projet fonctionne sur les prochaines étapes : comment ajouter du code, comment le projet gère le design (UI/UX) de ses nouvelles fonctionnalités, comment publier une nouvelle version du projet…

3. ???

Impossible de rester sur des conseils généraux pour ce qui se passe ensuite : une fois que vous avez intégré une communauté d’un projet open source, vous pouvez l’aider dans divers domaines : coder de nouvelles fonctionnalités, intégrer des nouveaux contributeurs… ou juste documenter et maintenir le module que vous auriez ajouté dans le projet et rejoindre un nouveau projet (vous êtes libres) !