Existe-t-il des révisions de code dans les projets open source? Si oui, quels outils sont utilisés pour ce faire?

10

Je sais qu'il y a une grande poussée pour les revues de code dans le développement commercial. Cependant, les revues de code sont-elles utilisées dans les logiciels open source ou sont-elles basées sur la confiance? Si oui, comment sont-elles réalisées? [S'agit-il d'un commit différé, "d'un environnement de pré-commit", existe-t-il un outil qui permet d'envoyer le patch à un autre développeur]?

Y a-t-il des projets qui utilisent des revues de code?

D'après ma compréhension, le noyau Linux est principalement basé sur la confiance du committer. MySQL était basé sur l'approbation de l'auteur principal et l'impact sur les performances.

monksy
la source
4
Linux utilise en fait un système de lieutenants + dictateur.
alternative

Réponses:

13

Presque tous les projets open source utilisent une sorte de flux de travail de contrôleur d'accès, où une personne ou un groupe de personnes doit se déconnecter de toutes les modifications pour entrer dans la version officielle. Certains projets plus importants, tels que le noyau Linux, ont des couches de contrôleurs d'accès. Vous envoyez une modification à quelqu'un qui gère une zone d'un sous-système, ils envoient leurs modifications à quelqu'un qui gère un sous-système entier, et ils envoient leurs modifications à Linus Torvalds, qui examine parfois le code lui-même ou fait confiance à ses lieutenants. Ces examens n'ont généralement pas de structure formelle. C'est juste quelqu'un qui regarde le code avant qu'il ne soit fusionné.

En ce qui concerne les outils, regardez le mécanisme de demande de pull sur github pour un bon exemple. Vous faites une demande de tirage, et sur une page Web dédiée à cette demande de tirage, les gens font des commentaires et l'auteur fait des révisions jusqu'à ce qu'il soit assez bon pour accepter. D'autres gardiens utilisent simplement git pour appliquer des correctifs à partir de listes de diffusion ou fusionner des demandes de tirage de référentiels publics, ce qui est l'une des principales raisons pour lesquelles les DVCS comme git ont été inventés.

Karl Bielefeldt
la source
5

Les projets open source ont souvent (et devraient, s'ils ne le font pas) un ensemble clairement publié de "directives communautaires", qui comprend souvent une description du flux de travail du projet et de la façon dont les contributions sont acceptées (et donc comment elles sont testées), ainsi comme le processus pour devenir un contributeur de base.

En ce qui concerne la révision du code, cela dépend encore une fois de la communauté, mais les directives sont souvent clarifiées. Certains exemples de lignes directrices pour les contributions des non-commettants vont des «gains de code de travail» à «les contributions doivent avoir une couverture et une documentation complètes des tests, avec des tests validés en même temps que le code» et tout le reste; indépendamment de ces directives, la seule directive implicite est que les principaux commetteurs examineront toutes les contributions des non-commetteurs avant de les accepter.

Les projets open source avec des groupes de responsables principaux ont également souvent des réunions virtuelles ou du temps dédié pour discuter de toutes les contributions qui peuvent nécessiter des regards supplémentaires - un peu comme le processus SE de plusieurs votes serrés par des utilisateurs d'une certaine réputation avant la clôture d'une question, et la discussion de choses douteuses via méta ou chat.

Voici quelques liens rapides vers des exemples de documents communautaires pour des projets que je connais le mieux, où vous pouvez trouver des réponses à votre question spécifique à ces projets (vous remarquerez bientôt un thème):

jcmeloni
la source
Vous avez mentionné les tests unitaires. J'adorerais voir les rapports de bogues soumis sous forme de tests unitaires. :) Je n'avais aucune idée de ces guides. Merci!
monksy
3

Les grands projets OSS auront un certain nombre de committers de base. Je suppose donc qu'ils sont de facto les "réviseurs de code".

De plus, comme le code OSS est par nature ouvert à tout le monde, il y aura probablement beaucoup plus de discussions autour du code que vous écrivez. Bien que cela ne soit pas sous la forme de révisions de code formelles, vous saurez certainement si votre code n'est pas considéré comme à la hauteur pour un projet OSS spécifique.

ZweiBlumen
la source