Connexion Premium

Godot serre la vis face aux pull requests générées par IA

Du code, pas d'IA

Godot serre la vis face aux pull requests générées par IA

Comme d’autres projets open source, Godot est noyé par l’arrivée massive de code généré par IA dans les contributions. Le moteur de jeu vidéo a décidé de prendre le taureau par les cornes : interdiction des agents IA autonomes et du vibe coding, durcissement généralisé des règles.

Godot, fameux moteur de jeu open source utilisé surtout par les indépendants et les petits studios, croule sous les pull requests (PR) générées par IA. En règle générale, un volume de contributions en forte hausse est bon signe : cela indique que le projet intéresse de plus en plus d’utilisateurs, et qu’ils sont de plus en plus nombreux à vouloir participer au développement du moteur.

Noyade sous les PR

Sauf que comme pour bien d’autres projets open source, Godot souffre d’un manque de mainteneurs et que l’explosion des contributions générées par IA – qu’elles proviennent d’agents IA ou d’humains soumettant du code produit par IA – représente un goulot d’étranglement. « L’effort nécessaire pour créer une pull request a diminué (et le nombre de PR a augmenté en conséquence) », explique la fondation Godot.

Mais dans le même temps, la quantité de travail nécessaire pour examiner ces PR, et le nombre de personnes disponibles pour ce traitement, n’ont pas changé. « Cette pénurie de relecteurs était déjà un problème, mais nous étions parvenus à l’ignorer. Ce n’est plus possible. »

Ces contributions IA ont un effet démoralisant pour les troupes de Godot : relire des pull requests est certes une tâche fastidieuse, mais elle est aussi gratifiante car « les relecteurs ont généralement le sentiment que leurs efforts servent à former un nouveau contributeur ». Un contributeur qui pourra, peut-être un jour, devenir à son tour relecteur et mainteneur du code. Mais voilà : ça ne sert à rien de perdre du temps à former une IA.

C’est pourquoi plusieurs mesures vont être mises en œuvre dans les règles de contribution. Il faudra s’assurer que tout le code est écrit par des humains, qui prennent la responsabilité de leur code et sont capables de le corriger au besoin. « L’IA ne peut pas assumer de responsabilité, et nous ne pouvons pas faire confiance aux utilisateurs intensifs de l’IA pour comprendre suffisamment leur code pour le corriger. »

Principe élémentaire de respect

La fondation entend aussi ajouter des obstacles aux contributions « bâclées et sans effort », quitte à rendre plus difficile le processus de PR. La politique de Godot va également proscrire les agents IA autonomes et le vibe coding – des usages qui entraînent d’ores et déjà un bannissement automatique du dépôt GitHub.

Tout le code du projet doit être écrit par des humains, ce qui ne veut pas dire l’interdiction complète de l’IA. Seulement, elle devra se limiter à des tâches annexes : autocomplétion de code, regex ou recherche-remplacement. « Si vous utilisez l’IA d’une manière ou d’une autre pour écrire du code, vous devez le signaler dans la discussion de la pull request. » Enfin, les discussions avec les mainteneurs devront se faire entre humains. Les mainteneurs « ne veulent pas parler à une machine, c’est un principe élémentaire de respect. »

En février, Rémi Verschelde, l’un des principaux mainteneurs du dépôt GitHub de Godot, tirait la sonnette d’alarme. « On finit par remettre en question chaque pull request soumis par de nouveaux contributeurs, plusieurs fois par jour. La description de la PR ressemble à une logorrhée typique de LLM, mais le code a-t-il été écrit au moins en partie par un humain ? L’ « auteur » comprend-t-il le code qu’il envoie ? L’a-t-il testé ? »

À l’époque, il soulevait d’intéressantes objections aux restrictions. Il s’interrogeait en effet sur la réponse à donner à un auteur de pull request ayant utilisé l’IA pour discuter avec le mainteneur : « que faire […] s’ils répondent tous : “oui, je l’ai utilisée pour rédiger la description de la PR parce que je ne suis pas bon en anglais” ? » Et si le code est faux, est-ce parce qu’il a été généré par une IA, « ou s’agit-il d’une erreur honnête de la part d’un contributeur humain inexpérimenté ? ». Mais visiblement, trop c’est trop.

Commentaires (9)

votre avatar
... c'est tropico....








Je suis vieux....:frown:

Pr la réf.
youtube.com YouTube
votre avatar
Et tes références, y'en a marre.
Et quand y'en a marre...
votre avatar
Cocooooo!!!! 🤣
votre avatar
N'étant pas développeur moi-même, je suis néanmoins étonné (dans le bon sens) par l'IA dans les découvertes de bugs.
Le plugin Krita AI affiche une date de réalisation décalée de 2 heures par rapport à mon PC.

J'ai soumis le problème à Claude, en un prompt, il avait scanné le GitHub du plugin et trouvé la source du problème : 2 fichiers python avec une référence UTC dans un format qui était la cause du décalage horaire.

J'ai fait les modifications et... Ça marche !

Je ne ferai pas de PR, c'est hors de mon périmètre de compétences, mais j'ai ouvert un ticket sur GitHub, en précisant bien que c'est l'IA qui a trouvé l'origine du bug.
votre avatar
« Cette pénurie de relecteurs était déjà un problème, mais nous étions parvenus à l’ignorer. Ce n’est plus possible. »
J'ai du mal avec ça.

Ignorer un problème, c'est-à-dire faire comme s'il n'existait pas n'est jamais bon.

Est-ce que les relecteurs prenaient sur eux et travaillaient plus ? Est-ce au contraire, il y avait de plus en plus de PR non analysés avec des bugs potentiellement importants dans le lot ?
votre avatar
Ignorer un problème, c'est-à-dire faire comme s'il n'existait pas n'est jamais bon.
Ils avaient décidé, comme beaucoup de faire le g(r)odot et de miser sur une diminution futur ou le fait que ça soit non critique et donc le retard était acceptable
votre avatar
J'ai vécu le cas dans l'autre sens:
Un repo ou j'essayais de contribuer, mon code fonctionne :

  • les units test automatisés passent,

  • je les ai complétés avec ceux pour la nouvelle fonctionnalité,

  • les x couches empilées de "contrôle qualité" automatisés (flake8, pylint, mypi... ) sont toutes vertes...



Et pourtant impossible de valider la PR, github copilot ne comprend rien remonte des faux bugs (il y'a eu quelques vrais) et est totalement stupide. C'est extrêmement chronophage.

Devoir expliquer à une machine idiote qu'elle a tord, je trouve ça humiliant ! J'ai autre chose à faire, surtout sur de la contribution sur mon temps libre !
Franchement avec un stagiaire ou le développeur junior le moins oxygéné du ruisseau j'ai un espoir de progrès...

Discuter dans un chat avec une IA je ne comprends ni l'intérêt, je ne vois pas le gain de prod (c'est largement l'inverse), je ne vois pas le gain de qualité (l'IA racontant 1 fois sur 2 n'importe quoi !)

Vivement que cette bulle explose, et tant pis pour mon épargne !
votre avatar
Depuis les LLM je trouve qu’il y a plein de PR qui ne sont plus faites pour être lues par des humains : des commentaires hyper verbeux, des demandes de corrections mineures à n’en plus finir.

Ça filtrera sans doute les contributeurs. Pas sûr que ce soit pour le mieux.
votre avatar
Perso j'ai abandonné mes contributions sur ce repo... les deux actifs dessus semblent avancer rapidement avec copilot tant mieux pour eux... Le jour où l'un (ou les deux) devs s’arrêtera il sera toujours temps de forker le truc...