Notre diff avec Drupal

Soumis par anarcat le dimanche, 23 novembre, 2003 - 22:10
Science et technologieL'Insomniaque

J'aimerais bien éliminer complètement le diff que l'on a avec Drupal. Je crois que c'est possible et surtout souhaitable, parce que c'est rendu l'enfer, faire des import des nouvelles versions. Ça prend une éternité: juste parce que l'on a quelques lignes de diff, CVS déconne et pense qu'il ne peut pas faire de merge et je me ramasse à réviser des tonnes de lignes à chaque import...

Cette tâche, d'ailleurs, recoupe toutes les autres.

Ceci dit, la tâche n'est pas si dure. Vous pouvez télécharger le diff ici. Le diff est généré avec la commande cvs diff -rDRUPAL_MAIN, si ça vous intéresse. J'ai retiré le haut du diff qui ne concerne que les themes, et dont on se fout éperdument. :) C'est d'ailleurs une erreur de ma part au niveau de la manipulation cvs si ça fait partie du diff.. Anyways...

J'ai aussi retiré du diff le fichier conf.php pour des raisons évidentes.

Je retrace les différences globales suivantes avec drupal:

1- nous n'utilisons pas check_output() (common.inc:665)
2- nous avons pleins de petits filtres "custom" (common.inc:681, comment.module:502, node.module:527,556)
3- nous ne sommes pas en UTF8 (un peu partout)
4- on met des Re : avant les sujets (comment.module:245)
5- on reparse les streams RSS sur erreur (import.module:326)
6- on ne panique pas quand les revisions chient (node.module:264)
7- on a une permissions spéciale d'édition et les auteurs peuvent éditer leurs propres articles (node.module:435,469,575)
8- on valide la taxinomie (node.module:999,1058,1182)
9- on laisse l'utilisateur éditer son teaser (node.module:1058,1388)
10- on ne change pas l'auteur à l'édition (node.module:1129)
11- on ne remet pas dans le queue après l'édition (ib idem)
12- on a un joli "meter" à côté du lien queue (queue.module:35,54)
13- on a des icônes de taxo (taxonomy.module:49,646) 14- on ne détruit pas la taxo à l'approbation (taxonomy.module:392)

Ouf! Voilà. Plusieurs patches là-dedans ont été soumises à Drupal à un moment ou à un autre. En particulier, celles-ci sont en attente:

5: 0163.HEAD.anarcat.xmlentities-import-tolerance.patch
6: http://drupal.org/node/view/2455, release-critical depuis 4.2! :)

12: 0154.anarcat.queue-link-counts.patch
14: 0153.anarcat.taxo-more-tolerant.patch

J'ai bon espoir de voir ces patches intégrées, alors pour ça, c'est correct. Pour le reste:

1 et 2: on veut revoir ça anyways. C'est à ce niveau là qu'il faut travailler pour changer la façon dont on parse le HTML. On le fait à l'affichage ou à la réception? Autrement dit, on enregistre le HTML dans la DB ou le pseudo-langage? C'est ici que ça se décide.

3: je ne sais pas comment on est supposés faire. Changer tout notre DB en UTF8? On est en ISO-8859-1 pour l'instant et j'ai un variable_get() que l'on peut changer. Mais Drupal avait ça avant et ils l'ont enlevé. :( Je ne crois donc pas que je puisse soumettre cete patch. Faudrait voir qu'est-ce que Steph en pense, au CMAQ, je crois qu'il est plus au courant que moi.

4: ça, on pourrait en faire une patch pour drupal, mais il faudrait nettoyer le code un peu.

7: je ne suis pas sûr que ce soit encore nécessaire

8: ce code devrait être déplacé dans taxonomy.module, taxonomy_nodeapi("validate"). On pourrait en faire une patch officielle, si on ajoute des variables de configuration pour le nombre d'items et cie. tatiens?

9: impossible à résoudre avec Drupal, ils ont abandonné cette méthode et utilisent un séparateur pour marquer la fin de teaser. Il est donc impossible, dans drupal, d'avoir un teaser différent du début du body, ce qui est con. Aussi, je ne suis pas certain qu'il est possible pour un utilisateur de véritablement éditer son teaser comme avant sur oder.ath.cx, à vérifier.

10: ça non plus, je sais pas comment résoudre ça avec drupal

11: ça non plus.

13: pourrait être fait en patch, si ça serait plus clean et plus générique, je ne sais pas encore comment

Autrement dit, on a de la job à faire sur les points 1,2,4,7,8 et 13. Les points 3, 9, 10 et 11 semble complètement divergents de drupal, mais on pourrait quand même mettre ces patches dans le cvs de Drupal pour d'autres utilisateurs. Et les 5, 6, 12 et 14 devraient être intégrés dans Drupal.

Voilà, ça fait le tour de la situation au niveau du développement de L'Insomniaque par rapport à Drupal.