etalab / transport-community-contributions

Permettre à la communauté Transport.data.gouv.fr de contribuer à certains jeux de données
https://contribuer.transport.data.gouv.fr
4 stars 2 forks source link

Problème avec PRB0t #13

Closed fchabouis closed 3 years ago

fchabouis commented 3 years ago

Déception, j'ai bien peur que PRB0t n'ait pas été un très bon choix. Il y a plusieurs issues qui mentionnent des faiblesses dans le mécanisme de mise à jour des fork.

Description du problème

Hier @miryad a utilisé l'outil pour mettre à jour la BNLC. On se retrouve dans la PR avec un conflit sur le fichier de la base, dont je ne comprenais pas l'origine. Voir la PR 19.

Fonctionnement de PRB0t

Le bot fork le github de la base de covoiturage, et travaille toujours avec ce même fork.En l'occurence https://github.com/the-nice-bot/transport-base-nationale-covoiturage-1/. Lors d'une demande de PR, le bot commence par merger le repos principal du projet (à savoir https://github.com/etalab/transport-base-nationale-covoiturage) dans la branch "main" du fork, afin d'être à jour.

Une fois cette opération faite, il crée une nouvelle branche sur son fork, créé un commit avec les modifications demandées, puis fait une nouvelle demande de PR depuis cette nouvelle branche vers le repo principal.

Problème

Visiblement, la phase de mise à jour de la branche main du fork peut échouer. Mais le reste de l'opération continue, ce qui fait qu'on fait une PR qui applique des modifications à une version obsolète de la base. D'où un potentiel conflit de merge.

L'issue a été remontée en 2019, rien n'a été corrigé. https://github.com/PRB0t/PRB0t/issues/46 Zut zut.

Solutions ?

Le cas de devrait pas apparaitre souvent, car pour qu'il y ait conflit, il faut que la nouvelle modification touche les mêmes lignes que les modifs précédentes. Et que la mise à jour de la branche main du fork échoue. Pour le moment je vais résoudre le problème à la main, pour remettre les choses sur les rails.

Pour la suite, on peut soit chercher une alternative comme outil, soit essayer de contourner le problème en supprimant le fork après chaque PR, ce qui doit forcer le bot à recréer un fork tout neuf à chaque fois. On peut aussi essayer de corriger le problème sur PRB0t.

A discuter avec @thbar .

fchabouis commented 3 years ago

Suite à de nouveaux conflits, j'ai continué à creuser ce problème.

fchabouis commented 3 years ago

on va se faire une petite discussion la dessus @thbar parce qu'il va y avoir des choix à faire sur le sujet !