Modification d'une application open source

9

Quel est le flux de travail général lorsque je souhaite ajouter une fonctionnalité à une application open source que je n'ai pas écrite à l'origine? Comment connaître le code? Comment trouver l'endroit qui doit être changé ou ajouté? Comment puis-je réellement effectuer le changement sans casser quoi que ce soit d'autre? Comment puis-je tester que tout fonctionne toujours?
Quelles sont les orientations générales d'un tel projet?

Dani
la source
2
Vous devez également soumettre vos modifications au projet, généralement sous forme de correctif, afin que d'autres puissent en bénéficier.

Réponses:

6

Il y a un protocole, tout le monde le suppose plus ou moins avec le temps, mais le voici, déroulé.

  • Vous téléchargez la source distribuée.
  • Vous commencez à naviguer un peu par vous-même dans le code

    • S'il s'agit d'un programme compilé, vous apprenez maintenant comment le compiler.
    • Si vous ne réussissez pas à le compiler, vous le signalez à l'auteur / à la liste de diffusion et demandez des instructions
  • Si vous ne comprenez vraiment rien au code ...

    • Eh bien, non, vous ne leur demandez pas de près.
    • Vous laissez tomber cela, car vous n'êtes probablement pas à la hauteur et ne pouvez pas être d'une réelle aide.
    • Vous soumettez une fonctionnalité si le ou les auteurs acceptent les demandes de fonctionnalité.
  • Autre

    • Vous trouvez l'endroit que vous souhaitez changer.

    • Si vous vous interrogez sur des détails mineurs, vous demandez à l'auteur / à la liste de diffusion et expliquez vos intentions.

    • Vous cd dans le répertoire principal de la distribution (celui du haut sortant de la décompression / décompression)

    • Vous diff -ur . > mypatch.path

    • Vous envoyez mypatch.patchà l'auteur en expliquant ce que vous avez fait, pourquoi vous l'avez fait, et (comme vous y êtes déjà) vous déclarez clairement que vous leur renoncez aux droits sur le patch.

  • si le ou les auteurs n'aiment pas votre contribution

    • vous vérifiez s'il existe un moyen de publier votre modification en tant que plugin d'une sorte

      • dans ce cas, vous êtes maintenant sur la bonne voie pour devenir un plugin mantainer .
    • autre

      • vous flambez sur la situation sur votre blog et y publiez le patch, gratuit à télécharger et à essayer avec vos explications et vos diatribes,

      • vous hantez de temps en temps le système de bogues / la liste de diffusion essayant d'acheter du support pour votre patch. Évitez d'être banni.

    • dans aucun de ces cas, vous ne bifurquez le code , car c'est un processus très fatigant et peu gratifiant que vous ne pourrez guère suivre le temps: cela rendra les utilisateurs tristes et confus. Forks ne devrait vraiment arriver que lorsqu'une grande entreprise essaie d'intimider ses décisions sur un morceau d'OSS .

  • autre

    • vous recevez d'autres instructions de cet auteur

Sur le côté: il existe une alternative récente au diff -ur .patch et c'est la voie github .

  • Vous "fork" leur code sur github sous votre nom,
    (maintenant vous avez une copie de leur code sur votre compte)
  • connectez votre git à votre copie personnelle,
  • apportez vos modifications, enregistrez-les,
  • et dites aux principaux auteurs de regarder votre projet github.

  • S'ils l'aiment, ils se synchroniseront .

  • Sinon, vous pouvez lier votre "gitfork" sur votre blog.
ZJR
la source
Tout va bien jusqu'à ce que vous suggériez que l'OP enflamme les auteurs du produit pour ne pas avoir adopté le nouveau correctif de fonctionnalité, il n'est pas clair si cela était censé être drôle ou sérieux, de toute façon, c'est TRÈS mauvaise forme de pleurer efficacement comme un petit enfant dans le monde entier parce que une équipe de produits n'aime pas / ne veut pas de votre nouveau correctif de fonctionnalité. Bien sûr, affichez-le, mais soyez toujours magnanime s'il n'a pas été accepté, quelle que soit l'illogisme de la décision. -1 - Pour info, je renverserai volontiers mon vote, si vous supprimez cela.
ocodo
L'application que je souhaite modifier suit une norme stricte qui, avec mes modifications, enfreindra la norme. Je pense que je ne suis même pas en mesure de demander l'application de mon patch.
Dani
@Slomojo OSS est plein de gens immatures, et ce genre de chose arrive tout le temps, tout le monde devrait être prêt à travailler comme un mulet, puis être rejeté sur la base qu'il est parfois solide et parfois théorique . Et puis, au moins, vous avez toujours la chance de vous plaindre et de trouver des gens qui pensent que vous avez peut-être raison. Maintenant, bousculer par dépit , ce serait la mauvaise et très maladroite démarche à entreprendre.
ZJR
@Dani lol, vous aurez vraiment besoin de partager un patch et de vous plaindre à ce sujet . Évitez de bifurquer car cela consommera votre vie, cela ressemble à une refactorisation continue sans chèque de paie. ... de toute façon, vérifiez avec la liste de diffusion et le système de rapport de bogues s'il y en a une, pour voir si quelqu'un serait intéressé par ce type d'extension, peut-être n'êtes-vous pas seul. Aaaand le meilleur serait d'avoir une API à étendre ou un plugin pour brancher vos modifications. C'est toujours la meilleure option dans de tels cas: maintenir un plugin . ... modifiera cela en.
ZJR
2
s'il existe des cas de test automatisés, exécutez-les avant de soumettre le correctif.
oenone
0

Typiquement.

S'il s'agissait d'un projet de système d'exploitation aléatoire, vous corrigeriez très probablement des bugs mineurs ici et là.

Finalement, vous soumettriez un tas de changements, comme un "patch".

Habituellement, vous obtiendrez des droits de validation si votre contenu est bon.

Je parle de manière générale et aussi vague et non spécifique que possible en raison de la question

MattyD
la source