Quand on est mainteneur, relire des pull requests fait partie des choses que l'on fait assez régulièrement. Ce document rassemble quelques recommandations propres à Exercism pour la revue des pull requests.
Relire une pull request pour un exercice d'apprentissage ou un exercice d'entraînement peut sembler intimidant, vu le nombre de règles qui encadrent ce type d'exercice. C'est pourquoi une première revue par un mainteneur prend souvent deux à trois heures et donne lieu à des dizaines de commentaires. Pour les exercices d'apprentissage, certains fichiers poursuivent aussi des objectifs et ont des contenus similaires (par exemple l'introduction de l'exercice et celle du concept) : il est alors essentiel de se concentrer d'abord sur l'un d'eux pour le rendre parfait avant de s'éparpiller trop loin.
Pour rendre ce workflow plus fluide, voici les recommandations que nous avons mises au point.
Voici pourquoi il vaut mieux confier la première revue à un seul mainteneur expérimenté :
wip
Une fois que le contributeur et le mainteneur sont tous les deux satisfaits de l'exercice, celui-ci peut être fusionné avec son status défini sur wip (travail en cours). Les exercices qui portent ce statut ne seront pas accessibles aux apprenants, mais ils pourront être consultés par nos mentors les plus expérimentés (une fois que nous aurons mis cela en place, à l'avenir). Ces utilisateurs à la réputation élevée pourront alors tester l'exercice et créer des issues ou des pull requests pour le corriger ou l'améliorer.
Les principaux avantages de cette approche sont les suivants :
Une partie du contenu d'un exercice d'entraînement (comme son introduction) provient de ses métadonnées (partagées) telles que définies dans le dépôt problems-specifications. Quand tu relis une pull request qui modifie ce genre de contenu, demande-toi si la modification pourrait aussi profiter à d'autres parcours. Si c'est le cas, suggère au contributeur d'ouvrir une pull request sur le fichier correspondant dans le dépôt problems-specifications.
Chaque pull request devrait avoir un relecteur principal, quel que soit le mainteneur qui s'en charge. Les autres mainteneurs et/ou membres de la communauté interviennent dans un rôle secondaire.
Il y a deux grandes façons, pour une personne dans un rôle secondaire, de contribuer à une revue :
Quand tu relis une pull request, ne commente que ce qui s'y rapporte directement. Pour tout le reste, ouvre une issue ou crée une pull request séparée (de suivi).
Dans la mesure du possible, essaie toujours de renvoyer vers une documentation qui explique pourquoi tu commentes quelque chose. Cela réduit grandement le risque que la discussion tourne à la dispute.
Si tu veux de l'aide pour relire une pull request, tu peux interpeller deux équipes spécifiques :
@exercism/reviewers : pour toute revue générale@exercism/github-actions : pour toute question concernant les GitHub Actions