• [^] # Re: Intégration

    Posté par (site web personnel, Mastodon) . En réponse à la dépêche GIMP 2.10 roule au GEGL. Évalué à 10.

    Je comprends bien, mais si je me lance dans la construction d'un serveur de build, que ça me prend plein de temps, que j'arrive avec mon truc et que vous me répondez « ah bah pourquoi t'as fait ça ? On a déjà un serveur de build ici... », ça ne va pas me motiver des masses :)

    En l'occurrence, on en a un, mais on n'en a pas, alors...
    Ensuite ce que tu dis est le lot quotidien d'un contributeur de logiciel libre. On a tous des exemples de patchs qui n'ont pas été intégrés (pour une raison ou une autre, parfois bonnes, c'est à dire patch refusé; parfois mauvaises, par exemple pour un projet semi-mort et notre patch n'a même pas été revu). Et pas seulement des patchs faits en quelques heures, parfois des patchs qui t'ont pris quelques jours!
    Faut savoir relativiser. Ce n'est jamais agréable de ne pas avoir son travail intégré mais c'est pas la fin du monde. La vérité est que si personne ne prenait ce risque, les logiciels libres n'existeraient tout simplement pas! C'est aussi simple que ça. Les auteurs originels ne feraient jamais cette première version bugguée (de peur qu'elle ne soit pas utilisée). Les contributeurs suivants ne feraient jamais de patch (de peur qu'il ne soit pas intégré), etc.

    Alors oui, c'est bien de prendre la température un peu avant pour quelque chose d'un peu conséquent. Vaut mieux pas bosser sur un truc que les dévs principaux sont justement en train de faire en même temps, ou autre. Mais bon là, la température, je viens de te la donner: elle est froide (ou peut-être tiède, voir plus bas)!

    Le truc, c'est qu'à un moment donné, faut faire un pas en avant. Faut avoir la foi en ce qu'on fait, et commencer à bosser en y croyant. Le problème, c'est que si tu savais combien de personnes viennent nous voir en nous disant être géniaux, de super dévs pros (limite ils veulent nous donner un CV, etc. dont on n'a rien à faire), puis ils nous font "bon je peux travailler sur quoi?" Réponse: "ce que tu veux, regarde bugzilla, y a plein de bugs". Puis on n'entend plus parler d'eux.
    Ce qu'il faut bien comprendre, c'est qu'on peut pas expliquer tout à tout le monde, sinon on ferait plus rien (et GIMP serait mort depuis des années). Dans 90% du temps, c'est une perte de temps plus qu'autre chose. Je veux pas paraître méchant envers les contributeurs, ce n'est absolument pas mon but! Et franchement chez GIMP, on essaie d'être le plus ouvert et bienveillant possible. Mais il y a un fait qui est que GIMP est un très gros logiciel, très complexe, et dont beaucoup de code est basé sur des concepts complexes (modèles de couleur, composition et mélange de pixels, des algos mathématiques pris de papiers universitaires ou sources diverses, du code multi-threadé, OpenCL, GObject, etc. etc. etc.). Et beaucoup de développeurs sont simplement submergés. J'adorerais pouvoir aider chacun personnellement, mais il me faudrait plusieurs vies. Déjà que je suis presque pas payé pour mon code (clin d'œil vous pouvez aider clin d'œil), alors si en plus je dois faire le prof pas payé...

    Donc clairement les gens actifs, compétents et avec de la bouteille partent avec un certain avantage. Franchement la CI, je connais les principes, mais j'ai jamais mis ça en place moi-même et ça m'intéresse pas de le faire si je peux m'en passer. On préfère clairement des gens qui savent ce qu'ils font et nous diront "c'est comme ça que c'est le mieux", pas des débutants qui veulent apprendre et espère qu'on soit leur prof.
    Attention, je dis pas qu'on peut pas nous-même être en désaccord et donc on peut discuter. Je suis souvent en désaccord avec d'autres contributeurs, on en discute plus ou moins calmement (en restant purement technique), puis on essaie de trouver des terrains d'entente. En gros, une discussion technique entre personnes compétentes. Pas une relation prof-élève. Faut voir ça du bon côté: on cherche des égaux pas des subalternes ni des esclaves!

    Bon ceci étant dit, on discute avec un gars qui fait un paquet AppImage et qui utilise Travis: https://github.com/aferrero2707/gimp-appimage/issues/9
    Il nous parle aussi de CI pour Windows et macOS, ce qui nous intéresse. Donc on verra où ça va mener. Et peut-être que ça va aboutir quelque part avec lui.

    D'ailleurs petite remarque. On savait que cette personne faisait un paquet AppImage depuis pas mal de mois déjà. Mais il n'est jamais vraiment venu nous voir pour en discuter sur IRC (enfin pas à ma connaissance), ou mieux faire un rapport de bug pour venir expliquer comment il pourrait contribuer, avec un patch (ses scripts de build) et un plan détaillé qui montre qu'il sait ce qu'il fait. Au final, c'est moi qui me déplace sur son système de bug et qui essaie d'avoir des infos sur comment on peut collaborer. Mais franchement j'aime pas ça. J'ai fait des patchs pour des dizaines de projets. Jamais je n'ai fait les trucs dans mon coin en espérant qu'ils viennent à moi. C'est moi qui vais à eux. On peut pas juste "chasser le contributeur". On ferait ça, on aurait le temps de faire rien d'autre (pour un résultat bien moins bon). Là je fais une exception, mais bon je dois dire que ça m'amuse pas plus que ça (comme je l'ai expliqué à rallonge ci-dessus).

    Conclusion: faites le premier pas! Ça ne veut pas dire qu'on vous aime pas et qu'on ne veut pas se bouger les fesses. On fait tous ça! On fait tous constamment le premier pas, et c'est pour ça que le logiciel libre avance.
    C'est juste que l'inverse serait impossible et aucun logiciel ne pourrait jamais être écrit. Tout simplement.

    Film d'animation libre en CC by-sa/Art Libre, fait avec GIMP et autre logiciels libres: ZeMarmot [ http://film.zemarmot.net ]