À qui incombe la responsabilité d'un correctif de bogue?

12

Une situation qui s'est produite à plusieurs reprises dans des projets open source se présente comme suit:

  1. Je remarque un bug dans notre déploiement et je trouve un correctif de piratage rapide. (Par exemple, commentez simplement le code dont nous n'avons pas réellement besoin.)
  2. Je dépense un peu d'effort supplémentaire pour comprendre le vrai bug, trouver un correctif et le soumettre via une demande d'extraction Git, ou similaire.
  3. Ma demande de retrait est rejetée. Peut-être que le correctif était imparfait (par exemple, incluait des lignes qu'il ne devrait pas avoir), peut-être qu'il violait le style de codage, peut-être qu'il avait d'autres ramifications. Ou peut-être que j'ai fait quelque chose de mal dans Git - la demande de pull aurait dû être rebasée ou quelque chose. Un responsable fournit des commentaires sur la façon d'améliorer le correctif et demande que je le soumette à nouveau.

À ce stade, je ne sais pas jusqu'où je dois aller. En ce qui me concerne, je n'ai pas de problème: je l'ai résolu à l'étape 1. J'ai signalé le problème, j'ai même pris des mesures pour le résoudre pour les autres. Mais je ne pense pas que ce soit "ma" demande de pull, donc je ne pense pas que la responsabilité d'améliorer le patch devrait m'incomber.

Une situation particulière qui me contrarie est qu'après discussion sur les échecs de mon correctif, nous nous entendons sur une liste de diffusion sur ce que serait le correct correct (c'est-à-dire, comment il devrait se comporter, en incluant parfois chaque ligne de code énoncée). Ensuite, il est toujours présumé de ma responsabilité de générer et de soumettre le correctif.

Y a-t-il une étiquette standard dans ces situations? Comment sont-ils résolus? Ma réaction est-elle inhabituelle? Jusqu'où êtes-vous censé aller pour faire accepter votre correction de bogue?

(Notez quand je dis «projet open source», certains d'entre eux sont très petits, mais peuvent ne pas être des passe-temps - simplement de petits projets logiciels qui sont utiles à plusieurs organisations, qui engagent des ressources de développement pour y travailler. Au cas où la réponse évidente c'est "réparer le correctif et soumettre à nouveau", comprenez que j'ai la responsabilité envers mon employeur de travailler sur des choses qui leur sont bénéfiques. Passer du temps à corriger un bogue qui ne nous affecte pas serait une erreur ...)

Steve Bennett
la source

Réponses:

12

En ce qui me concerne, si vous trouvez un bogue ou avez une demande d'amélioration, ne contribuez pas au projet et avez soumis un rapport de défaut via les canaux appropriés, vous avez terminé. En termes de redonner à la communauté, toute personne qui utilise un projet open source et trouve un défaut doit le signaler.

Tenter de trouver une solution, la concevoir et la mettre en œuvre est un bonus pour le projet. Si vous avez fait cela, il peut être judicieux de le soumettre, soit via une demande d'extraction, soit en envoyant des deltas de fichiers à l'équipe de développement avec le rapport de défaut ou la demande d'amélioration pour leur donner quelque chose à travailler. Cependant, ils n'ont aucune obligation d'accepter votre contribution au projet.

Attendre qu'un utilisateur contribue des correctifs me semble faux. Il est assez facile de participer à une discussion sur un problème, mais c'est un investissement beaucoup plus important pour trouver une solution. Aucun projet ne devrait s'attendre à ce que les non-contributeurs deviennent des contributeurs juste pour résoudre un seul problème.

Thomas Owens
la source
D'accord à 100%, l'utilisateur final n'a pas la charge de soumettre un correctif directement dans le référentiel source, sauf si vous voulez devenir un contributeur régulier du projet. C'est à cela que servent les listes de diffusion et les traqueurs de bogues. Spring, Maven, etc. font ce modèle exact où les gens trouveront la solution par eux-mêmes et la publieront à l'entrée de Jira. C'est à quiconque travaille sur le bogue d'accepter et de gérer la contribution.
Spencer Kormos
+1 pour trouver un défaut et soumettre un rapport. Vous ne soumettez peut-être pas un correctif de correctif, mais je pense certainement que simplement en trouvant le défaut, en le recherchant et en soumettant les informations pertinentes dans un rapport de défaut, vous contribuez certainement au projet.
maple_shaft
Supposons que je suis un contributeur au projet dans son ensemble. Qu'est-ce que cela change?
Steve Bennett
@SteveBennett Sans connaître la structure du projet, je ne peux pas répondre à cela. Certains projets sont plus strictement structurés avec des tâches assignées, tandis que d'autres sont plus fluides.
Thomas Owens
5

Allez aussi loin que vous le souhaitez. Ce serait bien de réparer votre patch et de le partager avec le monde dans le coffre principal, mais si le responsable ne le veut pas, hausser les épaules. Vous pouvez publier quelque part votre problème et le correctif pour y faire face, afin que d'autres personnes dans le même bateau puissent rechercher une solution.

Et vous n'êtes pas sans problème. Votre patch ne sera pas dans la prochaine mise à niveau. Vous devrez donc repatch, et espérons que cela fonctionne ou le masser en place, chaque fois que vous prenez une nouvelle version. Ainsi, le faire entrer dans le projet principal vous fera économiser, ainsi qu'à votre entreprise, du temps à long terme.

C'est une douleur pour vous, mais vous contribuez à la communauté. J'apprécie certainement tout le travail fourni par les contributeurs. Ce n'est pas comme un logiciel de qualité, comme par magie, la genèse des masses. Quelqu'un doit faire le travail. (Alors, qui est génial? Tu es génial). Si vous ne vous sentez pas d'accord, annoncez à la communauté que si vous appréciez la discussion sur la façon dont cela devrait être, vous êtes tout simplement trop occupé pour le faire. Je veux dire, qu'est-ce qu'ils vont faire? Coupez vos salaires?

Philippe
la source
4

Il existe un principe qui facilite la compréhension de la culture open source: la personne qui fait le travail décide sur quoi travailler. C'est l'un de ses attraits par rapport aux emplois de jour des développeurs. Votre priorité n ° 1 pourrait être n ° 50 sur leur carnet de commandes. Si vous ne corrigez pas votre demande de tirage, elle finira probablement par remonter au sommet et ils s'en occuperont. Cependant, si vous leur facilitez la tâche, ils s'en occuperont maintenant.

L'autre raison pour laquelle ils vous demandent de corriger votre demande de tirage est plus magnanime. Ils veulent que vous obteniez un crédit pour votre contribution, aussi petite soit-elle. Si vous faites la correction, votre nom est celui du champ auteur du commit. La plupart des gens sont assez fiers de leur contribution pour vouloir y parvenir, donc le mode de fonctionnement par défaut des responsables est de les laisser faire.

En ce qui concerne votre responsabilité envers votre employeur, si votre entreprise s'appuie sur ce code, vous ne lui rendez pas service. Les employeurs connaissent l'avantage d'un ouvrier qui prend le temps d'aiguiser ses outils.

Karl Bielefeldt
la source
2

AFAIK, la méthode open source est que la responsabilité de la correction des bugs est laissée à celui qui se soucie suffisamment du bogue pour gérer la charge et s'assurer qu'il est corrigé. Selon les circonstances, j'ai tout fait, de simplement ignorer un problème à combattre (fournir des correctifs et argumenter pour qu'ils soient acceptés) pour m'assurer qu'il a été corrigé.

Tout va bien, ne laissez pas les personnes qui gèrent le projet attendre la mauvaise chose de votre part (c.-à-d. Donnez-leur l'espoir que vous réglerez le problème correctement par des options de discussion, puis ne faites rien), elles sont probablement au courant de plus de problèmes qu'elles peut se débrouiller seul et essaiera de faire de vous un contributeur récurrent s'il le peut.

AProgrammer
la source
1

Le bogue d'origine ne peut que vous affecter, il est donc très dans votre intérêt d'obtenir la soumission en faisant tout ce qui est nécessaire pour mettre votre patch en conformité. Sinon, la prochaine version que vous tirerez (car vous avez besoin d'autres correctifs) n'aura pas votre correctif.

Vous ne voulez pas conserver une liste des correctifs que vous devez appliquer chaque fois que vous tirez une nouvelle copie du projet - c'est tout simplement trop de problèmes. Prenez un peu de temps supplémentaire et faites-le réparer de façon permanente afin que vous n'ayez plus à vous en occuper.

Scott C Wilson
la source
1

Pour un développeur open source, il existe deux types de problèmes:

  • (a) problèmes sans patch
  • (b) problèmes causés par un patch

Je pense que la plupart des mainteneurs / développeurs de packages open source AIMENT l'idée d'aider à mettre à jour un contributeur non-core avec leurs correctifs.

Leur objectif principal, cependant, est de minimiser le nombre de problèmes de type b. C'est pourquoi la barre est placée assez haut.

Certaines personnes le surmontent. Ils deviennent des contributeurs, voire des contributeurs de base. D'autres abandonnent. Il y a une certaine nature darwinienne à l'Open Source - la survie du plus apte.

Je vous encourage à continuer et à briller votre contribution au point où l'équipe l'accepte. Une fois que vous aurez fait quelques contributions, ils vous feront davantage confiance, mais vous devez toujours vous assurer que vos contributions sont impeccables.

Le résultat final en vaut vraiment la peine. Des trucs comme pouvoir dire "Est-ce que je code? Oui ... Vous dirigez quelque chose que j'ai écrit, tous les jours."

pbr
la source
D'accord, mais quel est le niveau raisonnable de saut de cerceau à exiger? Vraisemblablement, il y a une différence entre un responsable qui demande un peu d'effort pour gagner la confiance, et simplement difficile et déraisonnable. Et encore une fois, ma question est: qu'est-ce que j'essaie de réaliser? Est-ce que mettre mon correctif dans la base de code est plus dans leur intérêt que dans le mien?
Steve Bennett
Il a déjà été mentionné que la prochaine version n'inclura pas votre correctif local - il est donc dans votre intérêt d'obtenir un correctif dans le logiciel. Au niveau de l'entreprise - c'est aussi dans le meilleur intérêt de l'entreprise - un jour, vous pouvez partir et personne ne se souviendra de toujours recomposer l'application XYZ avec votre correctif local. Essayez ceci: retravaillez le patch, mais ne le soumettez pas. Envoyez-le au responsable par e-mail ou autrement - et DEMANDEZ leurs commentaires - comme dans "Je pense avoir tout ce que vous avez mentionné - pouvez-vous m'aider à vous assurer que c'est bien?"
pbr