MiseAJour Site

Mise à jour du site prévue pour la première moitié du mois d'Aout 2009.

Ajouts, suggestions, commentaires bienvenus.

Passage à Drupal 6
Pour passer à drupal 6, on va procéder ainsi :


 * installation sur dev.lqdn.net d'une copie du site sous drupal 5
 * listage et vérification de compatibilité des modules utilisés
 * tentative d'upgrade en suivant les instructions de drupal.org là : http://drupal.org/upgrade/tutorial-introduction
 * création d'une doc d'upgrade ci-dessous
 * installation du thème zen
 * customisation du thème zen
 * migration de la prod

Modules Activés dans le drupal 5

 * Checkout (Content locking)       - 5.x-2.0      - 6.X-2.2 - http://drupal.org/project/checkout DESACTIVÉ
 * Diff                             - 5.x-2.1      - 6.X-2.1-alpha2 - http://drupal.org/project/diff
 * Drupal                           - 5.19         - 6.13 - http://drupal.org
 * FCKeditor - WYSIWYG HTML editor  - 5.x-2.2      - 6.x-1.4-rc1 - http://drupal.org/project/fckeditor
 * Footnotes                        - 5.x-1.3      - 6.x-2.1 - http://drupal.org/project/footnotes
 * Internationalization             - 5.x-2.5      - 6.x-1.1 - http://drupal.org/project/i18n
 * jQuery Update                    - 5.x-1.0      - 6.x-1.1 - http://drupal.org/project/jquery_update
 * Mass Change                      - 5.x-1.0      - 6.x-1.0-rc - http://drupal.org/project/mass_change
 * Menu Translation                 - 5.x-1.x-dev  - NO 6.x VERSION mais pas utilisé en drupal5. Par contre, les menus traduits à la main pourraient merder en D6, à vérifier
 * Node clone                       - 5.x-2.6      - 6.x-1.0 - http://drupal.org/project/node_clone
 * Node Teaser                      - 5.x-1.2      - NO 6.x VERSION - http://drupal.org/project/nodeteaser - non utilisé en D5...
 * Panels                           - 5.x-2.0-rc1a - 6.x-3.0-rc - http://drupal.org/project/panels
 * Pathauto                         - 5.x-2.3      - 6.x-1.1 - http://drupal.org/project/pathauto
 * Printer, e-mail and PDF versions - 5.x-4.7      - 6.x-1.7 - http://drupal.org/project/print
 * Quotes                           - 5.x-1.90     - 6.x-1.3 - http://drupal.org/project/quotes attention, non compatible si core <6.2
 * Service links                    - 5.x-1.x-dev  - 6.x-1.0 - http://drupal.org/project/service_links
 * Similar Entries                  - 5.x-2.0      - 6.x-1.1 - http://drupal.org/project/similar
 * Table of Contents                - 5.x-2.2      - 6.x-3.1 - http://drupal.org/project/tableofcontents
 * Tagadelic                        - 5.x-1.1      - 6.x-1.2 - http://drupal.org/project/tagadelic
 * Token                            - 5.x-1.13     - 6.x-1.12 - http://drupal.org/project/token
 * Update Status                    - 5.x-2.3      - in D6 core
 * Views                            - 5.x-1.6      - 6.x-2.6 - http://drupal.org/project/views
 * Webform                          - 5.x-2.7      - 6.x-2.7 - http://drupal.org/project/webform
 * Workflow                         - 5.x-2.3      - 6.x-1.1 - http://drupal.org/project/workflow

Documentation d'upgrade de drupal 5 à 6
L'upgrade se déroule ainsi :

Assurer ses arrières

 * Mise en place d'une copie exacte de la version de production D5. Nous avons maintenant une version de développement.
 * Faire un backup de la BDD et des dossiers juste avant de toucher à la version de PROD dans les étapes 2 et 3.

Faire le ménage
Sur la version de DEV :
 * Désinstaller les modules non utilisés.
 * S'assurer que les modules des contributeurs soient bien dans ./sites/all/modules/.
 * Mettre à jour tous les modules et le core de Drupal à la plus récente version de D5.
 * Allez voir le tableau de bord et vérifier que tout va bien, si ce n'est pas le cas, régler les problèmes.

Si les trois précédentes étapes se sont correctement déroulés, les refaire sur la version en PROD.

Faire la migration
Régénérer la version de DEV. Faire une migration de test sur la version de DEV :
 * Mettre le site off-line
 * Mettre le thème à Garland.
 * Désactiver les modules
 * Faire un nouveau dossier D6.
 * Télécharger et décompresser les nouveaux fichiers de D6 dans le nouveau dossier.
 * Configurer Apache, ou mettre un lien symbolique pour que ce nouveau dossier soit pris en compte à la place de l'ancien.
 * Remettre le dossier files et refaire tous les fichiers qui auraient puent être modifiés (sites/, .htaccess, robots.txt, ...). On peut (doit) faire un diff entre une version normal de D5 et notre version de D5 pour voir les modifications effectués.
 * Exécuter le script update.php.
 * Télécharger et remplacer les modules avec leur version 6. Activer les modules. Exécuter le script update.php.
 * Télécharger et remplacer le thème par sa version 6 ou installer un nouveau thème. Activer le thème. Exécuter le script update.php.
 * Mettre le site on-line.
 * Vérifier que tout vas bien. En particulier pour les modules views et panels. Si ce n'est pas le cas, il faut tenter de régler les problèmes.
 * Réécrire les étapes en tenant compte des problèmes rencontrés et de comment les résoudre. S'il y a des trucs à faire manuellement. Essayer de les faire à l'avance ou connaitre exactement ce qu'il faut faire pour minimiser le temps.
 * Vérifier que tout vas bien. En particulier pour les modules views et panels. Si ce n'est pas le cas, il faut tenter de régler les problèmes.
 * Réécrire les étapes en tenant compte des problèmes rencontrés et de comment les résoudre. S'il y a des trucs à faire manuellement. Essayer de les faire à l'avance ou connaitre exactement ce qu'il faut faire pour minimiser le temps.
 * Réécrire les étapes en tenant compte des problèmes rencontrés et de comment les résoudre. S'il y a des trucs à faire manuellement. Essayer de les faire à l'avance ou connaitre exactement ce qu'il faut faire pour minimiser le temps.

'''Refaire le tout (avec les modifications apportées au dernier point, s'il y en a) sur la version de PROD. Rendre le site accessible uniquement à ceux qui travaillent sur la migration (via Apache).'''

''On peut bien évidemment refaire autant de fois l'étape 2 et l'étape 3 sur une nouvelle version de DEV. À voir en fonction du temps et de l'assurance.''

Tentative n°1
Le dimanche 16 août au soir, une tentative de mise à jour a été faite par snip. Voici quelques constations :
 * Le core de Drupal est déjà à jour (version 5.19).
 * Une mise à jour des modules a été faite : drush update.
 * Les thèmes ont été désactivés à l'exception de Garland.
 * Les modules ont été désactivés : drush disable checkout diff fckeditor footnotes i18n jquery_update mass_change clone nodeteaser panels pathauto print similar tableofcontents tagadelic token views webform workflow (et les quelques modules restants par l'Interface d'Admin).
 * D6 a été décompressé dans un dossier (dev-D6) et drupal5 a été mis dans un dossier (dev-D5).
 * Un lien symbolique a été mis.
 * Une comparaison du dossier dev-D5 et d'un drupal5.19 de base montre qu'il y a des fichiers en trop dans ./. Ces fichiers ont été déplacés vers dev-D6 : voir snip-deplacement-fcihiers.sh
 * Un diff a été fait pour voir les différences :
 * modifications nombreuses dans le .htaccess
 * modifications dans ./sites/default/settings.php
 * modules (parfaitement normal)
 * thèmes (parfaitement normal)
 * dossier .git
 * un dossier ./sites/dev.laquadrature.net/
 * ./modules/comment/comment.module~ : j'avais un jour fait des modifications sur le comment.module. Ces modifications ont du être supprimés lors d'une mise à jour.
 * Les modifications ont de nouveau été apportés (principalement settings.php, l'ancien .htaccess a été mis à la place de l'ancien, pas correcte donc).
 * update.php exécute sans problème.
 * les modules ont été téléchargés : drush dl checkout diff fckeditor footnotes i18n i18n_auto image img_assist jlightbox jquery_update mailman_manager mass_change node_clone override_node_options panels pathauto print private quotes service_links similar similarnodes tableofcontents tagadelic taxonomy_access taxonomy_defaults token views webform ctools menutranslation nodeteaser  update_status
 * ctools est un nouveau module, dépendance de panels
 * menutranslation nodeteaser  update_status : ne sont plus disponibles dans D6, intégrés autrement dans D6.
 * menutranslation : il existe Menu translation avec i18n.
 * nodeteaser : les teasers sont mieux gérés dans D6.
 * update_status : complètement intégré dans le core de D6.
 * les modules ont été activés et pleins d'erreurs (SQL) sont survenus lors de l'update.php. Voir erreurs-sql-update-1.txt.
 * views : vu que les views sont perdus, autant partir sur une nouvelle base et désinstaller views pour l'installer en D6.
 * ctools : vu que les panels sont perdus, autant partir sur une nouvelle base et désinstaller panels pour l'installer en D6.
 * print : aucun problème. http://drupal.org/node/495946
 * quotes : un problème similaire au précédent. Peut être ignoré, mais il vaut mieux modifier la table car le shéma a un peu été modifié.
 * i18nstrings : le shéma de la table change complétement. La table semble être vite, faire donc comme pour les views et panels.
 * les panels ne sont plus disponibles -> À refaire donc.
 * les views ne sont plus disponibles -> À refaire donc.
 * les blocs SEMBLES être tous là.
 * le positionnement des blocs est remis à zéro, du au thème.
 * pathauto et path semble fonctionner
 * i18n est a tester.
 * menu et traductions à vérifier.
 * autres modules a tester.

Tentative n°2
Je ne sais pas ce qui s'est produit. Beaucoup, peut être plus de la moitié des chaines de caractères du site ont été remplacés par des "a".

Tentative n°3
En se basant sur la tentative n°1. En désinstallant panels et views. Voici les différents problèmes :
 * panels et views à refaire (normal).
 * les menus ont été dupliqués en 3... sauf "navigation" et "secondary links". Solution... manuelle.
 * problème de boucle de redirection quand on est en train de modifier un node et qu'on clique sur "Aperçu"/"Preview" qu' "Enregistrer"/"Save". Ceci est du au module checkout, pas de problème lorsque ce module est désactivé. Le réinstaller ne résout pas le problème.
 * la partie "Rapports"/"Reports" n'est pas visible dans la page d'administration mais est accessible. Pas très grave.
 * le thème et la position des blocs restent à faire... En fait... Les blocs ne s'affichent plus (quelque soit le thème). Ceci vient du module Block Translation, il faut donc le réinstaller.

Views
Les views ont été revus avec la version 2 du module. Les "affichages" ont été utilisés. Nous avons donc pu réduire grandement le nombre de views. Pour plus de détails, voir cette page

Bugs et CSS
Ajout de : Affichage correct de liens dans l'édition des views.

Liste à implémenter (certaines choses le sont déjà) :


 * 1) IMPORTANT : plusieurs fois des nodes édités comme "actualité" se sont retrouvés "pages" donc non listés, etc.. Non reproductible ? Si ça ne se reproduit pas d'ici 1 semaine, bug à fermer.

Widget "timeline"
Idée: Dans chaque dossier il y a une chronologie qui parfois s'allonge et devient illisible. -> utiliser Simile - timeline

Benjamin (aka vinci sur IRC) s'en occupe, voir avec lui si vous voulez aider.

détail :


 * Dans un bloc drupal avoir le script contenant la liste des évènements facilement éditables. Sans doute à partir du XML standard de Simile widget.
 * Tester le javascript pour afficher soit le widget soit les données brutes extraites du XML (le widget pourrait aussi avoir un lien en dessous "afficher en mode texte" extrayant les données brutes)
 * Possibilité de mapper de 2 façons différentes 1/ les évènements entrés par ce biais 2/ une vue de certains articles pour un certain tag (tag du dossier en question)

Les possibilités futures sont infinies :
 * Faire une seule timeline recoupant les données de celles de tous les dossiers (pour une vue globale de notre action)
 * Faire une seule timeline recoupant toutes les actions *futures* de tous les dossiers
 * etc.

Voir aussi le page Repenser la home et la page Mise à jour des views