Replies: 3 comments 10 replies
-
Gipsy est un projet communautaire, il ne faut pas l'oublier. Si structure le projet, avoir des documentations et des conventions très clairement définies est quelque chose d'attirant pour un développeur expérimenté ou pour un contributeur de longue date, c'est en revanche bien moins propice à l'accessibilité. Gérer les choses de façon organique, vivante et fondamentalement pas très ordonnée n'est pas forcément une mauvaise chose. Selon moi il ne faut ni que le projet tombe dans un extrême de laxisme, ni dans un extrême de rigueur. Dans le premier cas le projet aura du mal à avancer par manque de visibilité, dans le second il aura à terme du mal à avancer par manque de nouvelles têtes pour y contribuer. |
Beta Was this translation helpful? Give feedback.
-
Je ne pense pas que réaliser la documentation de comment faire des plugins alors que l'on ne sait toujours pas vraiment à quoi ressemblera l'architecture finale soit une bonne idée. Attendons d'avoir une architecture un minimum stable, on documentera ensuite comment réaliser les plugins en se servant des plugins qui auront suivi la transformation de l'architecture pour exemple.
J'approuve les templates et autres documents indiquant comment contribuer.
On peut se décider sur 1 ou 2 reviewers maximum, plus me semble inutile. Les conditions seront décrites dans le template, toutes personnes qui ne respectera pas les conditions ne verra pas sa PR merge. En condition, par exemple :
Deux solutions :
Dans tous les cas, pour le moment on considère deux branches (par repository) :
La modification des plugins se fera à postériori à l'exception d'un sous-ensemble de 1-3 plugins qui seront mis à jour à chaque PR. Le but est de s'assurer qu'une base minimale du bot soit capable de continuer à fonctionner malgré le refactor.
Ça c'est le rôle de l'onglet Project, d'éviter que deux personnes fassent la même feature. Il faut garder en tête que l'on fait tous cela par plaisir, sur notre temps libre. Il faut pas qu'implémenter une fonctionnalité devienne réberbative. Personnellement, souvent quand j'ai envie de programmer, c'est sur le moment, là maintenant. De ce fait, je n'ai pas envie d'être coupé à devoir faire une discussion qui se concluera une semaine plus tard : mon envie de faire la fonctionnalité aura disparu d'ici là. Ce qui fait bien souvent le plus le débat, c'est l'implémentation. Voici donc ce que je propose pour trouver un entre-deux :
Je pense que de cette façon, il ne devrait pas y avoir trop de frustration lié à l'attente de la validation des autres. De même, il ne devrait pas y avoir deux personnes à faire la même PR : le board fera foi de qui est en tort. De même il est assez facile de retracer une fonctionnalité : on trouve la PR (le "comment" ainsi que les reviews) qui a poussé la fonctionnalité, à partir de celle-ci on peut remonter à l'issue (récapitulatif du "quoi" et du "pourquoi" ainsi que discussions techniques) ainsi qu'à la discussion originale (évolution du "quoi" et du "pourquoi"). Des avis ? |
Beta Was this translation helpful? Give feedback.
-
Je penses qu'il va être lent et laborieux de continuer à travailler sur le projet Gipsy pour tous le monde si on ne définit pas les différentes priorités.
Le principal problème réside dans l'ordre des priorités actuel.
Il est déjà arrivé plusieurs fois que on se retrouve dans une situation compliquée parce que les choses n'ont pas été définies à l'avance comme par exemple le fonctionnement "un changement = une PR", ou la maitnenance des plugins pendant la mise à jour.
C'est pour cette raison que je penses que il ne devrait pas y avoir de contributions au code tant que les points suivants ne sont pas résolus :
Il faut définir le plus vite possible comment la documentation concernant l'écriture des plugins le plus vite possible : sans cela, on ne pourra pas avancer de manière propre.
Il faudra aussi définir une manière de stocker les choix d'infrastructures et les raisons qui ont poussés ces choix en cas de besoin pour plus tard.
Je penses aussi que écrire ce genre de documentation permet de mettre les idées au propre et de prendre un peu de recul.
Des recommandations (fortement recommandées) concernant le format des issues et des PRs avec des templates pour une création facile pour éviter les issues où il y a uniquement des informations dans le titre et où seul la personne qui a écrit l'issue comprend de quoi il parle.
Par exemple, il faut demander une explication complète du problème, et des propositions d'implémentations en plus d'exemples.
Pour les PR, je penses qu'il faut définir quelques recommandations comme un format de noms des commits, le format du message principal etc.
Il faut clarifier les conditions concernant l'acceptation et la fusion des PRs : définir de manière explicite combien d'approbations sont nécessaire, si telle personne doit forcément approuver la PR, des conditions concernant le remplissage de la documentation, des délais éventuels pour prendre du recul.
Définir ce point permettra de ne plus se poser les questions du style "Merge, merge pas ?" et d'hésiter à merge.
Une solution a déjà été proposée mais il faut définir clairement comment on va mettre à jour les fonctionnalités de la version stable du bot : dans quel branche les plugins doivent être mis à jour (pour ajouter des fonctionnalités ou résoudre des bugs), si on doit mettre à jour les plugins avec les modifications de la rewrite etc.
Je penses qu'il faudra définir une règle qui implique que les nouvelles fonctionnalités et modifications doivent être discutées dans une discussion GitHub avant qu'elle commence à être codées.
Il faudra que les détails important de la fonctionnalité soient discutés tel que ce à quoi ressemblera la fonctionnalité pour les développeurs de plugin, ce sur quoi la fonctionnalité se basera (un module, une API, quelque chose de déjà implémenté...).
Cela permettra d'éviter une situation où un travail déjà fait doit être recommencé à cause d'un manque de communication et de désaccord sur l'implémentation.
Je penses que la documentation est prioritaire dans la mesure où les autres points devront être décris pour la plupart dans la documentation pour garder une trace des discussions et des avis divergents.
La discussion est ouverte dans l'espace ci dessous 😉
Beta Was this translation helpful? Give feedback.
All reactions