{"id":503,"date":"2022-01-19T21:15:25","date_gmt":"2022-01-19T21:15:25","guid":{"rendered":"https:\/\/www.louismarchand.me\/?page_id=503"},"modified":"2022-01-19T21:25:58","modified_gmt":"2022-01-19T21:25:58","slug":"participer-au-developpement-dun-logiciel-libre","status":"publish","type":"page","link":"https:\/\/www.louismarchand.me\/index.php\/participer-au-developpement-dun-logiciel-libre\/","title":{"rendered":"Participer au d\u00e9veloppement d&rsquo;un logiciel libre"},"content":{"rendered":"<h2>Indiquer les probl\u00e8mes aux d\u00e9veloppeurs<\/h2>\n<p>Malgr\u00e9 que dans notre cas, ce soit la participation au d\u00e9veloppement qui nous int\u00e9resse le plus, il est \u00e0 pr\u00e9ciser qu&rsquo;une des actions les plus importantes que vous pouvez faire pour un logiciel, c&rsquo;est d&rsquo;indiquer les erreurs que vous trouvez au d\u00e9veloppeur. En g\u00e9n\u00e9ral, il suffit d&rsquo;aller sur le site de d\u00e9veloppement du logiciel et de remplir un rapport d&rsquo;erreur (\u00ab\u00a0bug report\u00a0\u00bb ou \u00ab\u00a0issue report\u00a0\u00bb). En remplissant un rapport d&rsquo;erreur, vous faite automatiquement partie de la conversation entourant cet erreur. Donc, si les d\u00e9veloppeurs ont besoin de plus d&rsquo;informations, ils pourront vous contacter.<\/p>\n<h2>Pour effectuer une modification<\/h2>\n<p>Pour effectuer une modification dans un logiciel libre, il faut d\u00e9buter par acqu\u00e9rir le code source de l&rsquo;application. Puisque, en g\u00e9n\u00e9ral, les logiciels libres sont plac\u00e9s sur un d\u00e9p\u00f4t Git publique (Github, Gitlab, autre), on peut tout simplement faire un \u00ab\u00a0git clone\u00a0\u00bb pour obtenir le code sur notre ordinateur. Le probl\u00e8me avec cette technique, c&rsquo;est qu&rsquo;il ne permet pas directement de faire de nouveaux \u00ab\u00a0git commit\u00a0\u00bb. Nous utilisons donc g\u00e9n\u00e9ralement un \u00ab\u00a0fork\u00a0\u00bb pour obtenir le code source.<\/p>\n<p>Si le d\u00e9p\u00f4t que vous voulez faire un \u00ab\u00a0fork\u00a0\u00bb se trouve sur Github ou Gitlab et que vous avez vous-m\u00eame un compte Github ou Gitlab, vous pouvez tout simplement utiliser le bouton \u00ab\u00a0fork\u00a0\u00bb dans l&rsquo;interface Web afin de faire le \u00ab\u00a0fork\u00a0\u00bb vers votre compte, ce qui vous permettra de travailler avec votre propre copie.<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" width=\"698\" height=\"280\" class=\"wp-image-500 size-full aligncenter\" title=\"Fork sur Github\" src=\"https:\/\/www.louismarchand.me\/wp-content\/uploads\/2022\/01\/github_fork.png\" alt=\"\" srcset=\"https:\/\/www.louismarchand.me\/wp-content\/uploads\/2022\/01\/github_fork.png 698w, https:\/\/www.louismarchand.me\/wp-content\/uploads\/2022\/01\/github_fork-300x120.png 300w\" sizes=\"auto, (max-width: 698px) 100vw, 698px\" \/>Fork sur Github<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" decoding=\"async\" width=\"670\" height=\"427\" class=\"size-medium wp-image-501 aligncenter\" src=\"https:\/\/www.louismarchand.me\/wp-content\/uploads\/2022\/01\/gitlab_fork.png\" alt=\"\" srcset=\"https:\/\/www.louismarchand.me\/wp-content\/uploads\/2022\/01\/gitlab_fork.png 670w, https:\/\/www.louismarchand.me\/wp-content\/uploads\/2022\/01\/gitlab_fork-300x191.png 300w\" sizes=\"auto, (max-width: 670px) 100vw, 670px\" \/>Fork sur Gitlab<\/p>\n<p>Parfois, le d\u00e9p\u00f4t Git se trouve sur une plateforme que vous n&rsquo;avez pas la possibilit\u00e9 de cr\u00e9er un \u00ab\u00a0fork\u00a0\u00bb directement sur une interface Web. Il est tout de m\u00eame possible de faire un \u00ab\u00a0fork\u00a0\u00bb avec Git. Premi\u00e8rement, il faut cr\u00e9er le d\u00e9p\u00f4t sur un serveur git et ensuite utiliser ces commandes:<\/p>\n<div class=\"highlight\">\n<pre>git clone ADRESSE_DU_DEPOT_ORIGINAL\/le_depot\r\n<span class=\"nb\">cd<\/span> le_depot\r\ngit remote rm origin\r\ngit remote add origin ADRESSE_DU_DEPOT_DESTINATION\/le_depot\r\ngit push origin master\r\n<\/pre>\n<\/div>\n<p>Vous pouvez maintenant effectuer les modifications sur votre propre d\u00e9p\u00f4t Git.<\/p>\n<h2>Proposer une modification sur le d\u00e9p\u00f4t officiel<\/h2>\n<p>Il est possible que ce que vous souhaitez faire, ce soit seulement adapter le logiciel \u00e0 votre r\u00e9alit\u00e9. Dans ce cas, la modification effectu\u00e9e n&rsquo;est pas n\u00e9cessairement pertinente dans le d\u00e9p\u00f4t officiel. Il est par contre int\u00e9ressant de laisser votre propre d\u00e9p\u00f4t (votre \u00ab\u00a0fork\u00a0\u00bb) public, au cas o\u00f9 d&rsquo;autres utilisateurs auraient \u00e9galement la m\u00eame r\u00e9alit\u00e9 que vous.<\/p>\n<p>Par contre, il est possible que votre modification soit tout \u00e0 fait pertinente dans le d\u00e9p\u00f4t officiel. Dans ce cas, vous pouvez utiliser un \u00ab\u00a0pull request\u00a0\u00bb (ou un \u00ab\u00a0merge request\u00a0\u00bb selon Gitlab). Cette demande indique au gestionnaire du d\u00e9p\u00f4t officiel que votre \u00ab\u00a0fork\u00a0\u00bb a une version modifi\u00e9e du logiciel qui peut \u00eatre pertinente pour le d\u00e9p\u00f4t officiel. Le gestionnaire pourra ensuite \u00e9valuer la modification, demander certaines autres modifications (style, bogues, etc.) au propri\u00e9taire du \u00ab\u00a0fork\u00a0\u00bb et ensuite effectuer un \u00ab\u00a0merge\u00a0\u00bb du \u00ab\u00a0fork\u00a0\u00bb vers le d\u00e9p\u00f4t officiel.<\/p>\n<p>Si le d\u00e9p\u00f4t Git ne supporte pas les \u00ab\u00a0pull\/merge request\u00a0\u00bb, il faut indiquer (par courriel, messagerie, ou autre) qu&rsquo;une version du logiciel peut \u00eatre pertinente \u00e0 fusionner vers le d\u00e9p\u00f4t officiel. Lorsque le gestionnaire du d\u00e9p\u00f4t officiel voudra effectuer la fusion, il pourra effectuer la commande suivante \u00e0 partir de son d\u00e9p\u00f4t local (sur son ordinateur):<\/p>\n<div class=\"highlight\">\n<pre>git pull ADRESSE_DU_DEPOT_FORK\/le_depot master\r\ngit push origin master\r\n<\/pre>\n<\/div>\n<p>\u00c0 noter qu&rsquo;il est possible que vous ayez \u00e0 effectuer un \u00ab\u00a0merge\u00a0\u00bb avant le \u00ab\u00a0git push\u00a0\u00bb s&rsquo;il y a des conflits.<\/p>\n<h2>Si la modification est refus\u00e9e<\/h2>\n<p>G\u00e9n\u00e9ralement, si la modification est refus\u00e9e, le responsable du d\u00e9p\u00f4t Git indiquera dans le \u00ab\u00a0pull\/merge request\u00a0\u00bb. Si, malgr\u00e9 les discussions, la modification est toujours refus\u00e9e, vous pouvez laisser accessible votre propre d\u00e9p\u00f4t Git afin que ceux qui le souhaite puissent avoir tout de m\u00eame acc\u00e8s \u00e0 la modification. Vous pouvez \u00e9galement vous assurer de rester \u00e0 jour avec le d\u00e9p\u00f4t d&rsquo;origine en faisant les commandes suivantes \u00e0 partir de votre d\u00e9p\u00f4t local:<\/p>\n<div class=\"highlight\">\n<pre>git pull ADRESSE_DU_DEPOT_ORIGINAL\/le_depot master\r\ngit push origin master\r\n<\/pre>\n<\/div>\n<p>\u00c0 noter qu&rsquo;il est possible que vous ayez \u00e0 effectuer un \u00ab\u00a0merge\u00a0\u00bb avant le \u00ab\u00a0git push\u00a0\u00bb s&rsquo;il y a des conflits.<\/p>\n<h2>Comment savoir ce qu&rsquo;il y a \u00e0 faire dans un projet<\/h2>\n<p>Souvent, un programmeur ou une programmeuse effectuera une modification \u00e0 un logiciel parce qu&rsquo;il s&rsquo;agit d&rsquo;une modification dont il ou elle avait besoin. Il peut s&rsquo;agit d&rsquo;un bogue ou d&rsquo;une nouvelle fonctionnalit\u00e9 n\u00e9cessaire. Par contre, une personne peut seulement vouloir aider au d\u00e9veloppement d&rsquo;un logiciel puisque c&rsquo;est un logiciel qu&rsquo;elle croit digne d&rsquo;int\u00e9r\u00eat. Dans ce cas, il faut \u00eatre capable de savoir ce qui peut \u00eatre fait pour aider au d\u00e9veloppement du logiciel.<\/p>\n<p>Pour savoir ce qui est \u00e0 faire dans un projet, il faut regarder la liste de probl\u00e8mes (ou \u00ab\u00a0Issues\u00a0\u00bb en anglais). Il faut comprendre qu&rsquo;en g\u00e9n\u00e9ral, cette liste ne d\u00e9tient pas seulement les bogues du logiciel, mais bien toutes modifications qui pourraient \u00eatre int\u00e9ressante. Il arrive, \u00e0 l&rsquo;occasion qu&rsquo;il existe une \u00e9tiquette de probl\u00e8me pour voir les probl\u00e8mes qui ne n\u00e9cessite que peu, ou pas de connaissance de la structure interne du logiciel.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"761\" height=\"588\" class=\"alignnone size-medium wp-image-512\" src=\"https:\/\/www.louismarchand.me\/wp-content\/uploads\/2022\/01\/issues_list.png\" alt=\"\" srcset=\"https:\/\/www.louismarchand.me\/wp-content\/uploads\/2022\/01\/issues_list.png 761w, https:\/\/www.louismarchand.me\/wp-content\/uploads\/2022\/01\/issues_list-300x232.png 300w\" sizes=\"auto, (max-width: 761px) 100vw, 761px\" \/><\/p>\n<h2>Comment je fais pour avoir plus d&rsquo;information sur le logiciel<\/h2>\n<p>Il est g\u00e9n\u00e9ralement possible d&rsquo;envoyer des commentaires directement dans le probl\u00e8me (l&rsquo;entr\u00e9e de la liste de probl\u00e8mes). Par contre, s&rsquo;il ne s&rsquo;agit pas d&rsquo;une question \u00e0 propos du probl\u00e8me en tant que tel, mais bien \u00e0 propos de la structure de programmation du logiciel, il existe g\u00e9n\u00e9ralement un utilitaire de discussion \u00e0 ce propos. Il peut s&rsquo;agit d&rsquo;une liste de courriel, d&rsquo;un canal IRC, d&rsquo;une chambre Matrix, d&rsquo;un forum, d&rsquo;un Discourse ou autre. Si vous \u00eates int\u00e9ress\u00e9 au d\u00e9veloppement d&rsquo;un logiciel, n&rsquo;h\u00e9sitez pas \u00e0 vous inscrire \u00e0 ce type de liste. Vous y apprendrez certainement des informations tr\u00e8s int\u00e9ressantes sur le logiciel.<\/p>\n<p><a href=\"https:\/\/www.louismarchand.me\/index.php\/projet-dans-un-contexte-de-logiciel-libre\/\">Retour<\/a><\/p>\n<hr>\n<p>Auteur: Louis Marchand<br \/>\n<a href=\"https:\/\/creativecommons.org\/licenses\/by\/4.0\/deed.fr\" target=\"_blank\" rel=\"license noopener noreferrer\"><img decoding=\"async\" src=\"https:\/\/i.creativecommons.org\/l\/by\/4.0\/80x15.png\" alt=\"Creative Commons License\"><\/a><br \/>\nSauf pour les sections sp\u00e9cifi\u00e9es autrement, ce travail est sous licence <a href=\"https:\/\/creativecommons.org\/licenses\/by\/4.0\/deed.fr\" target=\"_blank\" rel=\"license noopener noreferrer\">Creative Commons Attribution 4.0 International<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Indiquer les probl\u00e8mes aux d\u00e9veloppeurs Malgr\u00e9 que dans notre cas, ce soit la participation au d\u00e9veloppement qui nous int\u00e9resse le plus, il est \u00e0 pr\u00e9ciser qu&rsquo;une des actions les plus importantes que vous pouvez faire pour un logiciel, c&rsquo;est d&rsquo;indiquer les erreurs que vous trouvez au d\u00e9veloppeur. En g\u00e9n\u00e9ral, il suffit d&rsquo;aller sur le site&hellip; <a class=\"more-link\" href=\"https:\/\/www.louismarchand.me\/index.php\/participer-au-developpement-dun-logiciel-libre\/\">Continue reading <span class=\"screen-reader-text\">Participer au d\u00e9veloppement d&rsquo;un logiciel libre<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-503","page","type-page","status-publish","hentry","entry"],"_links":{"self":[{"href":"https:\/\/www.louismarchand.me\/index.php\/wp-json\/wp\/v2\/pages\/503","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.louismarchand.me\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.louismarchand.me\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.louismarchand.me\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.louismarchand.me\/index.php\/wp-json\/wp\/v2\/comments?post=503"}],"version-history":[{"count":11,"href":"https:\/\/www.louismarchand.me\/index.php\/wp-json\/wp\/v2\/pages\/503\/revisions"}],"predecessor-version":[{"id":535,"href":"https:\/\/www.louismarchand.me\/index.php\/wp-json\/wp\/v2\/pages\/503\/revisions\/535"}],"wp:attachment":[{"href":"https:\/\/www.louismarchand.me\/index.php\/wp-json\/wp\/v2\/media?parent=503"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}