HS: Ce genre de discussion revient quand même souvent et de manière cyclique. Le jour ou elles arrêteront, alors ZdS sera mort.
Bon, pour revenir au sujet initial (déjà parce que je n'ai aucune expérience en tests d'intégration), je plussoie fortement ce qui a pu être dit en terme de donc: notre doc est éparpillée (entre SPHINX et github), fragmentaire et hautement incomplète (je sais plus qui a dit "y'a pas de commentaires dans le code et pas de doc générée en correspondance", eh bien je suis lourdement d'accord). Ceci étant, faut pas non plus être totalement négatif: au moins, il y a une doc, certes pas complète, mais les devs ont pris le temps d'écrire quelque chose. On doit donc être attentif à ça, mais il y a du mieux. Et bien entendu, on doit faire le pari d'une doc de code.
Par contre, je suis désolé de l'écrire aussi méchamment, mais j'ai essayé hier de me servir de la doc front, et objectivement, ça… Ne m'as aidé en rien du tout. Vraiment. Déjà, elle est pleine de TODO, et si j'ai bien suivi, il est impossible d'y contribuer directement en faisant une PR comme c'est le cas avec la doc' back. À l'époque, j'ai pu comprendre que ça avait ces raisons (y'a difficilement moyen de mettre du code HTML pur dans SPHINX était ce qui revenait, de tête), mais force est de constater que le choix qui a été fait n'est peut-être pas le meilleur non-plus (ceci dit, j'en ai pas de mieux à proposer, actuellement). D'autant quand on voit que la dernière contribution remonte à mi-septembre. De même, j'invite les gens du front à se rassembler une fois et à discuter un peu du "design" de ZdS: pour que tout le monde ne se mette pas à faire n'importe quoi, il faudrait selon moi qu'il soit écrit quelque part "telle et telle couleurs sont utilisées sur le site pour ça, ça et ça, elles sont définies là, et on peut les appeler comme ça dans le SCSS" et "le design du ZdS suis les recommandations du flat design, en particulier celle-là, celle-là et celle-là". Là ou je veux en venir, c'est qu'il faudrait à mon sens que cette doc ne décrive pas seulement ce qu'il y a dans les fichiers fronts, mais aussi les quelques règles qui devraient guider un contributeur pour qu'il ne rajoute pas des choses en jaune alors que ça n'as rien à y faire
EDIT: pourquoi personne ne parle jamais de la doc du JS du site ? Y'en a pas, et pareil, c'est gênant.
Le cas npm, franchement, ça va mieux. Vraiment. Je n'aime toujours pas cet outil parce qu'il a tendance à raconter ça vie à chaque fois qu'on le lance (avec force WARN
et ERR
, ce qui n'as jamais rien de rassurant), mais on s'y fait. Et il est déjà relativement plus stable qu'au début ou installer le front s'apparentait à une bataille. Ou peut être que c'est parce que ça fait plusieurs mois que je bosse avec (je rappelle que je ne bosse pas pour le front et que c'est uniquement pour faire de la QA) et que je m'y fait.
Parlons de QA, justement. Après bientôt un an de dev pour ZdS, ils y en a encore qui s'étonne que les petites PR sont mergées avant les grandes .... Non, sérieusement, des machins énormes comme la ZEP-03, feu la PR sur la désinscription ou des fonctionnalités avancées telles que celle proposées par Firm1 prennent du temps à être QA (et c'est souvent de la QA pas drôle, parce qu'elle est longue), demande dès lors plusieurs rebases (oui c'est pas drôle les rebases), plusieurs allez et retours entre le code, le dev', parfois même plusieurs devs et plusieurs personnes qui font de la QA, mais … C'est comme ça. Il faut en être conscient quand on développe des grosses fonctionnalités. Et en général, le retour de la communauté est positif et en redemande, donc ça les vaut. Du coup, dès qu'un machin est trop important, pour moi, il faudrait :
- Idéalement, en faire une ZEP. Au moins, on en discute avant, on crée un carnet des charges et une vague idée de ce que ça pourrait être et on sais ce que le dev va tenter de faire. Un autre avantage énorme, c'est qu'une branche est créée sur le dépôt, branche qui peut être alimentée par des PR régulières qui sont soumises au même règle que les autres PR (QA, tests, toussa), donc qui peuvent être plus petites et passer plus vites. On a là un outil de dev formidable, autant s'en servir.
- Dans le cas contraire, trouver quelqu'un qui assume de faire de la QA sur une branche à part, quelque part dans un fork. Au moins, on arrive pas un jour avec un gros paquet de code à tester: quelqu'un a déjà fait la QA au fur et à mesure et peut dire : "ok, tu me teste le comportement général, tu teste ça, ça et ça, et logiquement c'est bon". En plus, ce mec là sais bien de quoi il en retourne, donc il est plus efficace dans les éventuelles gestions de conflits et tout ça. Autrement dit, ne bossez jamais seul sur un machin qui devient trop important.
- Je n'arriverai jamais à faire confiance à des tests d'intégrations. D'autant quand on voit maintenant que les tests Travis mettent à peu près 30 minutes pour s'exécuter (un peu moins en local, mais soit). C'est très long, et j'avoue que je ne passe pas ma vie à lancer tout les tests en local à chaque fois (c'est plus long qu'un café!). Si on met en place des tests d'intégrations, il faudra être d'autant plus vigilant en préprod'.
Je sais de quoi je parle, je passe 50% de mon temps de dev pour ZdS à faire de la QA (même si je viens de prendre deux mois de "vacances" pour écrire mon mémoire). C'est pas un reproche, mais il faut pas oublier que je reste un être humain, avec des sensibilités, des préférences et une vie IRL. Je pense qu'Eskimon vous dira pareil: on est pas des machines, et ça sert à rien de râler si les PRs passent pas vites. Et puis sérieusement, ça pourrait être pire, on a pas des vieux machins que personne veut jamais QA (actuelement, les vieilles PR qu'on a, c'est des devs qui manquent de temps pour aboutir, JAMAIS un manque de QA, j'y met un point d'honneur). J'ai donné des pistes plus haut pour améliorer ce point, à prendre ou à laisser
Quand à l'accueil des nouveaux, j'avoue que des personnes responsables seront toujours plus efficaces que n'importe quelle doc/texte/tuto/article/whatever (étonnant pour un codeur de dire que la machine ne remplacera jamais l'être humain, non ?). Ça veut pas dire qu'un tuto ne doit pas être écris ou que la doc pas améliorée, mais elle doit pour moi pointer ces personnes de références. Il ne faut ceci dit pas que ça devienne un truc trop énorme: ces personnes de référence seront en général choisies pour leurs connaissances approfondies sur le sujet et leur contributions nombreuses: ce serait bête de les perdre pour ça. C'est d'ailleurs pour ça que je ne me propose pas (en plus du fait que ma vie ne me permette pas d'être "régulier" dans mes interventions pour le moment).
Un petit mot de la fin: comme je l'ai dit en début d'intervention, le jour ou on ne discutera plus de tout ça, ZdS sera mort. On peut se prendre la tête, râler, bouder, hurler, mais au final, il ressort de tout ça des idées et des point de vue intéressants. Le tout, c'est d'éviter de claquer la porte pour une raison ou d'une autre, parce que c'est domageable au projet et que tout le monde est nécessaire. D'ailleurs, personne n'as de mauvaises idées, pas que je sache. Faut juste prendre le temps d'en discuter.
Sorry pour le pavé.