Participer au développement d’un logiciel libre

Indiquer les problèmes aux développeurs

Malgré que dans notre cas, ce soit la participation au développement qui nous intéresse le plus, il est à préciser qu’une des actions les plus importantes que vous pouvez faire pour un logiciel, c’est d’indiquer les erreurs que vous trouvez au développeur. En général, il suffit d’aller sur le site de développement du logiciel et de remplir un rapport d’erreur (« bug report » ou « issue report »). En remplissant un rapport d’erreur, vous faite automatiquement partie de la conversation entourant cet erreur. Donc, si les développeurs ont besoin de plus d’informations, ils pourront vous contacter.

Pour effectuer une modification

Pour effectuer une modification dans un logiciel libre, il faut débuter par acquérir le code source de l’application. Puisque, en général, les logiciels libres sont placés sur un dépôt Git publique (Github, Gitlab, autre), on peut tout simplement faire un « git clone » pour obtenir le code sur notre ordinateur. Le problème avec cette technique, c’est qu’il ne permet pas directement de faire de nouveaux « git commit ». Nous utilisons donc généralement un « fork » pour obtenir le code source.

Si le dépôt que vous voulez faire un « fork » se trouve sur Github ou Gitlab et que vous avez vous-même un compte Github ou Gitlab, vous pouvez tout simplement utiliser le bouton « fork » dans l’interface Web afin de faire le « fork » vers votre compte, ce qui vous permettra de travailler avec votre propre copie.

Fork sur Github

Fork sur Gitlab

Parfois, le dépôt Git se trouve sur une plateforme que vous n’avez pas la possibilité de créer un « fork » directement sur une interface Web. Il est tout de même possible de faire un « fork » avec Git. Premièrement, il faut créer le dépôt sur un serveur git et ensuite utiliser ces commandes:

git clone ADRESSE_DU_DEPOT_ORIGINAL/le_depot
cd le_depot
git remote rm origin
git remote add origin ADRESSE_DU_DEPOT_DESTINATION/le_depot
git push origin master

Vous pouvez maintenant effectuer les modifications sur votre propre dépôt Git.

Proposer une modification sur le dépôt officiel

Il est possible que ce que vous souhaitez faire, ce soit seulement adapter le logiciel à votre réalité. Dans ce cas, la modification effectuée n’est pas nécessairement pertinente dans le dépôt officiel. Il est par contre intéressant de laisser votre propre dépôt (votre « fork ») public, au cas où d’autres utilisateurs auraient également la même réalité que vous.

Par contre, il est possible que votre modification soit tout à fait pertinente dans le dépôt officiel. Dans ce cas, vous pouvez utiliser un « pull request » (ou un « merge request » selon Gitlab). Cette demande indique au gestionnaire du dépôt officiel que votre « fork » a une version modifiée du logiciel qui peut être pertinente pour le dépôt officiel. Le gestionnaire pourra ensuite évaluer la modification, demander certaines autres modifications (style, bogues, etc.) au propriétaire du « fork » et ensuite effectuer un « merge » du « fork » vers le dépôt officiel.

Si le dépôt Git ne supporte pas les « pull/merge request », il faut indiquer (par courriel, messagerie, ou autre) qu’une version du logiciel peut être pertinente à fusionner vers le dépôt officiel. Lorsque le gestionnaire du dépôt officiel voudra effectuer la fusion, il pourra effectuer la commande suivante à partir de son dépôt local (sur son ordinateur):

git pull ADRESSE_DU_DEPOT_FORK/le_depot master
git push origin master

À noter qu’il est possible que vous ayez à effectuer un « merge » avant le « git push » s’il y a des conflits.

Si la modification est refusée

Généralement, si la modification est refusée, le responsable du dépôt Git indiquera dans le « pull/merge request ». Si, malgré les discussions, la modification est toujours refusée, vous pouvez laisser accessible votre propre dépôt Git afin que ceux qui le souhaite puissent avoir tout de même accès à la modification. Vous pouvez également vous assurer de rester à jour avec le dépôt d’origine en faisant les commandes suivantes à partir de votre dépôt local:

git pull ADRESSE_DU_DEPOT_ORIGINAL/le_depot master
git push origin master

À noter qu’il est possible que vous ayez à effectuer un « merge » avant le « git push » s’il y a des conflits.

Comment savoir ce qu’il y a à faire dans un projet

Souvent, un programmeur ou une programmeuse effectuera une modification à un logiciel parce qu’il s’agit d’une modification dont il ou elle avait besoin. Il peut s’agit d’un bogue ou d’une nouvelle fonctionnalité nécessaire. Par contre, une personne peut seulement vouloir aider au développement d’un logiciel puisque c’est un logiciel qu’elle croit digne d’intérêt. Dans ce cas, il faut être capable de savoir ce qui peut être fait pour aider au développement du logiciel.

Pour savoir ce qui est à faire dans un projet, il faut regarder la liste de problèmes (ou « Issues » en anglais). Il faut comprendre qu’en général, cette liste ne détient pas seulement les bogues du logiciel, mais bien toutes modifications qui pourraient être intéressante. Il arrive, à l’occasion qu’il existe une étiquette de problème pour voir les problèmes qui ne nécessite que peu, ou pas de connaissance de la structure interne du logiciel.

Comment je fais pour avoir plus d’information sur le logiciel

Il est généralement possible d’envoyer des commentaires directement dans le problème (l’entrée de la liste de problèmes). Par contre, s’il ne s’agit pas d’une question à propos du problème en tant que tel, mais bien à propos de la structure de programmation du logiciel, il existe généralement un utilitaire de discussion à ce propos. Il peut s’agit d’une liste de courriel, d’un canal IRC, d’une chambre Matrix, d’un forum, d’un Discourse ou autre. Si vous êtes intéressé au développement d’un logiciel, n’hésitez pas à vous inscrire à ce type de liste. Vous y apprendrez certainement des informations très intéressantes sur le logiciel.

Retour


Auteur: Louis Marchand
Creative Commons License
Sauf pour les sections spécifiées autrement, ce travail est sous licence Creative Commons Attribution 4.0 International.