Procès verbaus, notes, progression du comité technique (inso-tech@insomniaque.org).
Les membres actuels du comité technique sont:
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.
Procès verbaux des réunions du comité technique.
Date: 4 mars 2003
Membres présents:
Les points suivants sont ajoutés au point varia:
On accueille notre nouveau membre: fpieraut.
n/a
Le problème des accents devrait se régler si le browser utilisé utilise le bon "charset". Par contre, il est à noter que Word introduit des caractères bizarroïdes qu'il est possible de repérer et de convertir avant l'affichage.
Quand aux filtres, nous avons décidé de garder ça simple:
Responsable: anarcat
Nous avons décidé d'activer par défaut les révisions pour les articles, blogues, etc. Il faut également examiner comment le système de révisions fonctionne, en particulier s'il est basé sur des "diff" ou s'il enregistre bêtement chaque texte au complet. Il faudrait permettre facilement de visionner toutes les révisions d'un noeud, possiblement avec un lien sous le noeud pour y accéder.
Responsable: tatien
Petit détail: il faut chager "pierautf" pour "fpieraut". (Resp.: tatien)
Il faut également arranger le problème de l'administration des noeuds par les usagers. Présentement les usagers peuvent faire tout ce qu'ils veulent avec leurs noeuds (ils ont des droits d'admin sur leurs noeuds). (Resp.: anarcat)
Le thème actuel "polder" est entièrement dynamique. Nous avons opté pour le rendre statique afin de facilité le chargement des pages. Il faudrait aussi voir si on peut utiliser d'autres thèmes, statiques, qui sont déjà implantés.
Responsable: mathieu
Nous avons opté pour le statu quo, en espérant que l'allégement du thème accélérera suffisament le chargement du site.
À plus long terme, nous allons nous informer auprès d'Olivier, le boss de mathieu et anarcat, qui pourrait nous offrir une connexion plus rapide. (Resp. : mathieu)
Fpieraut a également dit qu'il lui serait peut-être possible de trouver un P2 un peu plus puissant qu'oder. (Res. : fpieraut)
Nous allons créer une page qui va afficher la liste des usagers dans un certain format.
Responsables: tatien et fpieraut
Il y a un problème avec les majuscules dans le module de traduction. Certains termes ne sont pas ajoutés à la BD s'ils apparaissent avec une lettre minuscule et une lettre majuscule au début. (Resp.: anarcat)
Il faut également vérifier si certaines chaînes ne sont tout simplement pas appelées avec la fonction de traduction t($str) (Resp.: tatien)
Ça marche bien sur la version de test, alors on le porte online.
Responsable: anarcat
Il faut voir si le module de recherche marche avec la nouvelle version.
On va ajouter des commentaires éditoriaux (Resp.: anarcat).
Il faut ajouter fpieraut sur les listes de messagerie et envoyer les infos nécessaires. (Resp.: anarcat)
À bientôt les enfants!
Drupal est un merveilleux système, mais il y a plein de détails qui achalent.
Ce blogue répertorie les bugs ou les problèmes que j'ai découvert sur Drupal, et que j'ai l'intention de m'assurer qu'ils sont réglés.
Ceux-ci sont en ordre de priorité. Quiconque veut en faire des petits bouts sont les bienvenus.
Notez que dorénavant cette liste est périmée et que le module "project" gère les tâches, bugs et améliorations. Cette liste est cependant conservée pour la nostalgie ainsi que les patches et tâches tâches complétées.
19/45 tâches tâches à faire. Liste des patches.
Tâche Responsable État Patch gros problème de mémoire dans la page de liens: Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 97 bytes) in /var/www/online/includes/common.inc on line 391 Anarcat/tous Exploration: bug dû à un arraymap de checkquery() n/d pour les images, il faudrait arranger la fonction resize Tatien à faire n/d intégrer le message de bienvenue email en anglais Tous à faire n/d révisions automatiques pour la correction Tatien à faire n/d création d'un thème allégé (rendre le thème Polder statique) Mathieu à faire n/d patcher le filtre de liste Anarcat à faire n/d recherche par auteur dans le module de recherche Anarcat à faire n/d workaround pour le bug de réédition des notes Anarcat à faire n/d les nouveaux usagers arrivent sur une page vide à leur premier login. Anarcat À faire n/d création d'une liste des usagers Francis & tatien à faire n/d tous les problèmes du système de traduction, en particulier: les difficultés de traduction de certains termes et les déficiences générales du système de traduction. Voir aussi la liste de tatien Tous à faire n/d petites annonces non-anonymes anarcat il faut soit un triple JOIN ou une requête de plus n/d read-only access to moderation queue Anarcat à faire n/d editorial comment mode that get removed on publication Anarcat à faire n/d étudier les possibilités d'un "gateway" email, possiblement pour envoyer des "numéros" Anarcat à faire n/d il faudrait pouvoir deviner plus facilement comment linker vers un noeud ou un commentaire particulier Anarcat à faire n/d les archives permettent de voir jour par jour, et non pas entre deux dates limites Anarcat à faire n/d noter dans la description de inso-nouvelles que la liste n'est pas accessible à tous Anarcat À faire n/d anarcat/bug.png">bug des nouveaux usagers créés de l'admin Anarcat à faire n/d Tâches complétées (27) polissage de la page de taxinomie: filtrer les vocabulaires non-sélectionés par le paramètre type, faire les modules appliqués cliquables Anarcat fait oui nouveau bloc: dernières nouvelles (blog de l'inso), petites annonces (nouvelles des blogs) Anarcat fait, buggy anarcat/blogannounce\block.patch">oui filtre pour les méchants caractères Word Anarcat fait oui changer pierautf pour fpieraut Tatien Fait n/a un bug non-vérifié du système de recherche: il semble ignorer le nom des noeuds Anarcat fait anarcat/upgrade.patch">upgrade Drupal 4.1 accès non-administratif aux noeud pour l'édition Anarcat fait edit\perm.patch">oui passage à Drupal 4.1 Anarcat fait anarcat/upgrade.patch">oui examen des possibiltés de conversions html_entities() nous offre pour faciliter la tâche aux nouveaux Tous fait réunion du 4 mars rendre les emails des usagers publics pour les membres permanents Anarcat Fait oui les blogues engorgent le processus de modération inutilement, ils doivent être approuvés automatiquement. Anarcat Fait anarcat/blogskip\mod.patch">oui augmenter la taille des polices (à ne pas confondre avec la taille de la police, qui est déjà assez gourmande comme ça, la pognez-vous) Anarcat/Tatien Fait n/a l'état de la file d'attente de publication n'est pas très révélateur, dans le bloc "login". Il devrait y avoir 2 chiffres, un serait le total, l'autre serait les publications restant à évaluer. Anarcat Fait, 26 jan oui repousser la limite dans le nombre de caractères d'un titre Anarcat augmenté à 128 oui permettre l'édition d'un texte déjà soumis par son auteur Anarcat fait 26 jan anarcat/nodeedit\self.patch">oui version imprimable des noeuds Anarcat fait oui navigation par sujet/catégorie (taxinomie), possiblement dans un "bloc" (une case sur les côtés) Anarcat fait anarcat/taxonomynav\block.patch">oui recherche par auteur Anarcat fait view\all.patch">oui la barre de navigation est difficile à manipuler Anarcat fait anarcat/header.patch">oui impossible de créer des liens direct vers certaines pages qui ne sont pas des "pages-site" dans la barre de navigation Anarcat fait n/a on voudrait pouvoir avoir un link direct vers le guide Anarcat fait n/a intégrer le "à propos" dans le guide et avoir un autre lien direct vers cette nouvelle section du guide Anarcat fait n/a créer un lien vers les mailing lists Tatien fait n/a filtre de détection des notes de bas de page Anarcat fait oui le bug du musée Tatien fait anarcat/images.patch">oui le système de "paragraphisation" est un peu bizarre: il mets des <br><br> au lieu des <p> et il en mets avant les <ol>, ce qui n'est pas nécessaire. Anarcat fait oui régler une fois pour toutes le problème du favicon et des icones des articles Anarcat fait n/a détection automatique des listes Anarcat fait mais annulé anarcat/node_list.patch">oui
Je note ici quelques conventions et informations importantes utilisées sur oder pour la gestion du code source.
Cet article a été rendu grandement désuet avec la venue de Subversion pour le contrôle des révisions. Notez seulement que le HEAD de développement est sous inso/trunk et la branche stable est sous inso/branches/stable.
Le code source est controlé par un référentiel CVS. L'utilisation elle-même du logiciel sort du but de cet article, sauf pour les cas particuliers et plus compliqués.
Il existe principalement deux branches de développement:
Tous les commits destinés à INSOSTABLE doivent d'abord être testés sur HEAD avant d'être intégrés (merged) sur INSOSTABLE[1], après un copieux "testage" sur oder, évidemment.
Voici la liste des tags disponibles sur HEAD ou INSO_STABLE. Cette liste doit être mise-à-jour à chaque fois qu'un nouveau tag est ajouté.
Il existe aussi des vendor branches. Ces branches de developpement sont celles qui nous servent à suivre le développement de Drupal et d'autre sources parentes au projet. La branche de Drupal est nommée DRUPAL_MAIN. Voici la liste des tags disponibles sur cette branche et leur signification:
Pour mettre à jour ces branches, utilisez la commande cvs import:
cvs -d /home/inso/cvs import -m "Import of Project module from last night's CVS" drupal/contrib/project DRUPALMAIN DRUPALCVS_20030402
Cette commande doit être utilisée dans le répertoire contenant le code source à importer.
--
[1] Pour faire un merge de HEAD à INSO_STABLE utilisez la commande: cvs update -j1.1 -j1.2 fichier.php. Ici, on fait un merge du commit 1.2 dans le fichier fichier.php.
Voici la procédure pour faire une nouvelle installation de L'Insomniaque sur un serveur donné.
Il est tout à fait possible que ceci ne fonctionne pas correctement, dans lequel cas il faudra immédiatement modifier cette documentation.
Pour faire un merge, ça nous prend un checkout de la branche stable:
$ svn co https://anarcat.ath.cx/svn/inso/branches/stable/
On vérifie la version du dernier merge:
$ cd stable ; svn log | less
r884 | anarcat | 2004-03-28 18:37:20 -0500 (Sun, 28 Mar 2004) | 1 line
merge rev 883 (install defaults) into stable
On vérifie le diff depuis cette version pour voir ce que l'on va "merger":
$ svn diff -r884:886 https://anarcat.ath.cx/svn/inso/trunk/
Le "886", c'est la version courante du repo, on l'obtient quand on fait un checkout:
A stable/core/.htaccess Checked out revision 886.
Si tout est beau, on fait le merge:
$ svn merge -r884:886 https://anarcat.ath.cx/svn/inso/trunk/ U contrib/modules/wiki2xhtml/class.wiki2xhtml.php U contrib/modules/extrafilters/extrafilters.module $ svn status M contrib/modules/wiki2xhtml/class.wiki2xhtml.php M contrib/modules/extrafilters/extrafilters.module
On commit les changements sur la branche stable:
$ svn commit -m 'merge rev 884-886 (filter fixes) into stable' Sending contrib/modules/extrafilters/extrafilters.module Sending contrib/modules/wiki2xhtml/class.wiki2xhtml.php Transmitting file data .. Committed revision 887.
Il est important de mettre le numéro de version que l'on merge pour pouvoir faire les merges futurs plus facilement, jusqu'à ce que subversion supporte l'historique dans les merges.
--
[1] Drupal supporte d'autres DBs, mais c'est MySQL que nous utilisons
[2] ceci implique potentiellement d'avoir Subversion (SVN) d'installé.
[3] Pour faire un checkout sous SVN, on utilise une commande comme: "svn co FOO" où FOO est l'url où se trouve le "repo" du code source.
[4] si le système ne supporte pas les liens symboliques, examiner le fichier makesymlinks.sh et installer les bons fichiers à la bonne place. (Bonne chance)