Semblerais donc que nous ayons un conflit de décision sur la gestion et l’ouverture de la validation des PR sur les apps officielles.
Voir ici pour le débat en question: Add upgrade from a previous commit by maniackcrudelis · Pull Request #30 · YunoHost-Apps/opensondage_ynh · GitHub
Alors soit, discutons-en.
Pour rappel, lors d’une pull request sur une app officielle, nous utilisons un modèle, disponible au complet ici: https://github.com/YunoHost/project-organization/blob/master/apps_group_PR_model.md
Nous avons 5 points différents à tester, en fonction du niveau de validation requis par la PR (sachant que nous utilisons essentiellement les décisions mineures pour les PR habituelles sur les apps officielles)
- Complete test
- Upgrade previous version
- Code review
- Approval (LGTM)
- CI succeeded
Complete test correspond à un test complet de l’application et de ses fonctionnalités. Donc de s’assurer que l’app fonctionne correctement.
C’est assez rarement demandé, car nous utilisons essentiellement des décisions mineures.
Upgrade previous version est une mise depuis la version actuellement dans la liste (ou plus ancienne) vers la version de la pull request. L’idée ici est de s’assurer que l’upgrade ne casse pas l’app.
Ce test est en cours d’automatisation par le CI. Il ne devrait donc plus être nécessaire de le faire manuellement, sauf pour la décision majeure ou en cas d’inquiétude particulière pour l’upgrade.
Code review est une relecture approfondie du code modifié, pour s’assurer qu’il n’y a pas d’erreurs.
Approval (LGTM) est un accord de principe, cela signifie que l’ont donne son accord sur la finalité de la PR et ses éventuelles conséquences sur l’application.
CI succeeded est une validation par Package check que la PR n’implique aucune régression.
Ce test est automatisé par le CI dev dans le cas d’une branche créée sur le dépôt, en cas de PR depuis un fork, il faut cloner la branche manuellement sur ce serveur.
Les règles de validation actuelles sont disponible ici: https://github.com/YunoHost/project-organization/blob/master/yunohost_project_organization_fr.md#2-revue-et-validation-collective
Elles impliquent ceci:
Si l’auteur ne fait pas parti du groupe concerné par la PR, tous ces quotas sont augmentés de 1. Dans tous les cas, ces quotas doivent être remplis au moins à 50% par des relecteurs membres du groupe concerné par la PR. […]
Ce n’est pas véritablement appliqué en l’état, pour 2 raisons, nous utilisons un modèle de validation légèrement différent, ainsi qu’un modèle de PR que nous dupliquons sans se prendre la tête.
Toutefois, une proposition a été faite dans le même sens:
Elle est disponible ici: https://github.com/YunoHost/project-organization/pull/54#discussion_r125982193
Et en substance propose cela (en convertissant approximativement au modèle utilisé pour les apps):
- Le test complet pourrait ou pas être fait par n’importe quel contrib…
- Un upgrade depuis la précédente version peut être fait par tout contrib. Un log me semblerais tout de même utile, pour voir si un truc n’est pas passé inaperçu. sauf si c’est une version en prod.
- Une review de code peut être faite par tout contrib, (À partir du moment où ce contrib est reconnu comme étant capable de lire et comprendre le code)
- Un accord de principe devrait provenir uniquement d’un membre du groupe Apps.
- Le test de CI peut éventuellement être fait par n’importe qui (avec un log consultable). Mais le CI s’en charge généralement pour nous.
En somme, toutes les validations peuvent être faites par des contrib non membres du groupe Apps, à l’exception des accords de principe qui seraient réservés au groupe Apps.
Ce dernier point s’explique par le fait que c’est la responsabilité du groupe Apps de vérifier chaque PR sur les apps officielles et également d’avoir un oeil sur les modifications apportées.