Migration Wikini vers Dokuwiki


Dernières nouvelles

  • migration effectuée le 13 février 2012 entre 21h03 et 21h13 par SylvainC
  • 2011-12 : en attendant le jour J, quelques irréductibles battent le fer tant qu'il est chaud et poursuivent le travail de migration, correction des scripts, nettoyage des bugs, création des pages statiques, …
  • 2012-01-09 : atelier pour la (préparation ?) de la migration sur #gulliver sur IRC
  • 2011-12-17 : le kit de migration est disponible sur https://gitorious.org/migrate-to-doku
  • 2011-12-14 : SylvainC migre le wiki puis revient à wikini suite à quelques remarques sur la liste gulliver@

Accès à l'ancien Wiki


Sylvain a mis en place une URL qui survivra à la migration : http://gulliver.eu.org/wikini/

Index des wikis


A parcourir pour y déceler des problèmes quelconques, liens cassés, beauté, syntaxe etc.

http://gulliver.eu.org/~scollilieux/comparaison_wikini_dokuwiki.html

Voir aussi
http://gulliver.eu.org:8181/accueil?do=index

Urls de comparaison fraîches

Comment regénérer la page index de DokuWiki après injection manuelle ?

En appelant du répertoire de DokuWikila commande bin/indexer.php par PHP en ligne de commande (paquet phpcli chez Debian) en tant qu'utilisateur du serveur Apache (www-data chez Debian).

Jeu de base


MigrationWikiJeu : une page simple qui regroupe un jeu d'exemple synthétisant les traductions à faire
MigrationWikiCrashTest : tests de non-régression sur tout ce qui a posé problème au script de migration

Script de migration


Pour fabriquer (et modifier) toute la manipulation de conversion chez vous : ?

Script de conversion Wikini vers dokuwiki


Etienne, David, Jean-Marie, Thomas, Sylvain, Gilles (et d'autres ?) ont fait un script de conversion.

Il est disponible avec “git” ici : https://gitorious.org/migrate-to-doku

Pour le récupérer en lecture seule, faire :

git clone git://gitorious.org/migrate-to-doku/migrate-to-doku.git


Pour le récupérer en lecture/écriture, poster sa clef publique ssh sur https://gitorious.org/login compte “contact@gulliver.eu.org” mot de passe sur la liste contact@ le 17/12/2011 à 20h35 par Etienne, avec “Gitorious” dans le sujet, puis faire :

git clone git@gitorious.org:migrate-to-doku/migrate-to-doku.git


Ensuite confer la page GitLaBase pour les manipulation de base avec git.

Liste des choses à faire (actions, bugs à corriger, questions)


Principe de traitement : Pas Fait signifie non traité, reste à faire. Enlever le Pas quand c'est fait.

  • Pas Fait. Certains mots à la syntaxe Wiki Word comme OpenStreetMap sont traduits en lien alors qu'ils ne devraient pas. Faire une liste d'exclusion de wiki word ? Est-ce vraiment utile ?
  • Ne peut pas être fait : la syntaxe pour les images n'est pas bien traduite http://gulliver.eu.org/~gullivermodere/compare.php?page=InstallationDokuwikiSurTuxinette Oui mais c'est du HTML embarqué, le script est pas prévu pour convertir ça.
  • Fait. La page RencontresPasses foire totalement de 2011 à 2008 : http://gulliver.eu.org:8181/rencontres_passees Il doit y avoir un tag qui fait planter quelque part
  • Pas Fait. Intégrer dans le script des tests de non-régression sur les transformations basiques des tags wiki (regex), notamment celles impliquées dans la migration du wikini de Gulliver. C'est le minimum pour pouvoir ajouter sereinement de nouvelles transformations sans péter celles déjà brillamment intégrées. La première passe de ces tests a montrer des bugs sur les tags de base (sans aucune combinaison particulière).
  • Pas Fait. Décrire comment refaire toute la manipulation chez soi.
  • Fait. Invitez les personnes à créer leur compte sur le nouveau dokuwiki
  • Fait. Modifier le fichier de démarrage de apache2 pour qu'il démarre celui de gullivermodere
  • Fait. Écrire le script de migration final : bouton.sh
  • Fait. Installer apache2 et dokuwiki avec le compte gullivermodere (tout est décrit dans InstallationDokuwikiSurTuxinette).
  • Fait. Corriger les incohérences de transformations spécifiques de noms du configuration.py de migrate-to-doku Exemple AssembleGeneraleMCE2005 ⇒ assemble_generale_mce2005 (au lieu de assemble_generale_mce_2005)
  • Fait. Réduire configuration.py de migrate-to-doku des transformations spécifiques qui n'en sont pas et sont traitées par la regex de migrate-to-doku.py (la moitié des noms enlevés)
  • Fait. Changer l'interface utilisateur du script migrate-to-doku.py pour permettre l'ajout facile de paramètres (–debug –tests –wikini_path path –doku_path path etc.)
  • Fait. comparaison_wikini_dokuwiki.html. Générer une page index contenant les liens vers toutes les pages en mode comparaison.
  • Fait. Faire une page dédiée sur Git, ne mettre ici que les éléments concernant la migration.
  • Fait. Permettre l'exécution de la procédure complète sur tuxinette.
  • Fait. (20min). Conversion utf8, module Perl sur tuxinette.
  • Fait. Que migrate-to-doku.py puisse etre exécuté sur tuxinette.
  • Fait. Que wikini2txt puisse etre exécuté sur tuxinette.
  • Pas Fait La page RencontreConseilGeneral35-20060125 est dans l'historique de modification de dokuwiki mais pas dans index_wikini_dokuwiki.txt et aucune page dokuwiki n'existe (sans forcer le lien dans wikini RencontreConseilGeneral35-20060125)


  • Ne Sera Pas Fait. Le contenu d'un item d'une liste à puces n'est pas correctement retranscrit (voir « ACL2 » sur la page FreeSoftwareForFormalVerification). Pas bloquant. GL : Voir MigrationWikiCrashTest les lignes suivantes ne sont pas le contenu d'un item, tu as fait du “wikini art”; les lignes suivantes sont comme-ci il n'y avait pas de liste.
  • Pas Fait. changer les < pre > en <code> par exemple ici : ArchivesListes . Ne sera pas fait : les <pre> ne sont pas des balises wikini, ils ont été mis à l'intérieur de double guillemets pour forcer une interprétation du code HTML. Il s'agit au mieux d'une mauvaise tolérance de wikini, au pire d'une potentielle faille de sécurité. Les pages utilisant ce genre de façon de faire (du code HTML entre double guillemets) sont à corriger en amont. GL Corriger en amont ne corrige pas les versions de l'historique alors qu'il est simple et sécurisé de transformer les <pre> en % % . Les deux corrections ne s'excluent pas et peuvent être appliquées toutes les deux.
    • La conversion de ArchivesListes me (david) semble erronée. En particulier on retrouve des % % dans le code traduit alors qu'il devrait y avoir des <code> à la place, indépendamment de changer l'idiome < pre > en <code> ou pas. Je ne comprends pas comment baseFormat() peut fonctionner : il rajoute des % % dans un item alors que le split.(" % % ")a déjà été fait dans wikini2dokuwiki() qui appelle baseFormat() !


  • Fait. Les en-têtes énormes (======) ne passent pas (exemple dans Inventaire2003 et 2007).
  • Fait. Les lignes horizontales (----) ne passent pas si elles ne sont pas suivies ou précédées d'un retour charriot (exemple dans page Reseaux).
  • Fait. Lorsqu'il y a plusieurs appels de pages avec descriptif (ex : [[page_truc Page sur un truc]]) sur une même ligne, seul le premier est bien traduit. Exemples :

http://lamiral.info/~gilles/gulliver/migration_wiki/dokuwiki/doku.php/gulliver_statut_v8

Un titre avec des espaces ne devrait pas exister dans wikini, donc ne devrait pas poser de problème au script… Par ailleurs, cette page était justement à supprimer, donc résolution du pb par forfait… GL: Le bug était corrigé, les blancs dans les titres sont bien gérés, le wiki n'était pas à jour, laissé marqué non fait, laissé en test pour voir si 5 cerveaux en réunion physique savaient détecter un faux problème déjà réglé. Raté.

  • À moitié fait . Les 21 commentaires existants ne sont pas gérés. Que faire pour DokuWikiqui n'a pas cette notion ? Créer une page spéciale ? Ajouter un paragraphe/section “commentaire” dans chaque page de l'actuel wiki où il y a des commentaires et les enlever en tant que commentaire. Ainsi ils seront conservés et disponibles au bon endroit pour les comprendre.

Seuls les commentaires 3,6,7,8, 9, 13, 14, 19 ont été importés dans les pages wikini ; les autres ne me [VE] paraissent pas inoubliables. Ok pour la migration donc ; il faut ensuite supprimer les pages Comment1 à Comment 21 (noté plus bas).

  • Impossible à faire. les noms d'utilisateurs dans l'historique des changements ne sont pas convertis (inchangés : toujours CamelCase) de façon cohérente avec les pages de ces utilisateurs (renommées, elles). Impossible à faire (ou trop compliqué) : les noms de machines ou adresses IP ne sont pas des wikinames. Dommage
  • Fait. Le nom de la page Debian_5.0_sur_ordinosaures contient un point et cela plante le script wikini2txt. Le point est autorisé dans les noms de page wikini et de dokuwiki. Le bug est à corriger dans le script wikini2txt.
  • Fait.La page Publication engendre une erreur “processing 'Publication' ⇒ 'publication'”. No such file or directory: 'dokuwiki/data/pages/publications/publication.1233783763.txt.gz'. Il manque la catégorie (le répertoire) publications. Est-ce vraiment le comportement voulu (je ne pense pas GL.)?
  • Fait. Les formatages dans les titres sont autorisés dans Wikini mais pas de dokuwiki. Une solution proposée : faire deux fonctions : l'actuelle et une plus stricte et plus propre. Utiliser l'actuelle (conservatrice) pour toutes les pages de l'historique et faire une nouvelle version “courante” de chaque page avec la fonction stricte et propre (en incrémentant la date Unix de 1, comme ça elle a quasiment la même date de dernière modif'). Avantage: on garde toute la sémantique exacte dans l'historique et le wiki obtenu au premier abord est clean. Et s'il y a un souci, on peut faire un revert page par page.
    • Fait. Le logo ASCII est mal transformé. On a amélioré mais on ne fera pas mieux
    • Fait. Quand une URL absolue vers le wiki a été utilisée dans un lien externe (par ex. http://gulliver.eu.org/wiki/xDRoutau lieu de xDRout), le lien sera cassé dans le dokuwiki converti. Solution possible : reconnaître le motif [[http://gulliver.eu.org/wiki/UnePage Commentaire]]et le transformer en lien interne dokuwiki [[une_page|Commentaire]].
  • Fait. http://www.linux-france.org/~eloks/compare.php?page=IRC La chaine “Gtk2” est mal transformée.
    • Fait. apparition de -\\dans la page traduite (c'est une barre en travers de la page mal traduit).
    • Fait. Dans la partie “Logistique”, les items imbriqués sont mal traduits.
  • Fait. il faut appeler la page d'accueil « accueil » et non « start »
  • Fait. Ne pas mettre « change » dans le journal des changements (inutile). Correction avec une phrase française, ça va mieux ? Noooooon (une chaîne vide serait mieux, non ?) :-)

Comparaison du résultat


Le résultat actuel de la conversion est visible ici : http://gulliver.eu.org:8080

Une page permet de comparer les deux versions de wiki : http://gulliver.eu.org/~scollilieux/compare.php?page=NomDeLaPage

Le source de cette page est disponible ici : http://www.linux-france.org/~eloks/compare.php.txt

Procédure de migration


[InstallationDokuwikiSurTuxinette Documentation de Sylvain] pour la migration.

  1. Arrêter le wikini (comment : [s] passer toutes les pages en RO, changer l'url de /wiki → /wikini, garder le dump de la base au chaud)
  2. Faire un dump de toutes les pages au format texte
  3. Convertir les pages du Latin1en UTF-8
  4. Supprimer les pages de wikipourriel identifiées
  5. Mettre en place un dokuwiki vierge ([s] et à jour)
  6. Appliquer le script de migration
  7. Vérifier le résultat
  8. Définir qui est administrateur du wiki
  9. Placer le nouveau comme wiki accessible par l'URL http://gulliver.eu.org/wiki/
  10. Espérer qu'on a rien oublié :-)
    • si : migrer les comptes utilisateurs (mots de passe et nouveaux identifiants… convertis ?)
  11. Corriger à la main les quelques pages qui posent problèmes

Exceptions dans la conversion de MotsWiki

Fait

Voir le script pour la liste complète des conversions : http://www.linux-france.org/cgi-bin/hgwebdir.cgi/migration-wiki?file=migrate-to-doku.py

Autre

Je suggère de supprimer toutes le pages contenant la phrase « vide (cause pollution) » ou analogue, en général ajoutée par Sylvain lors de ses chasses au WikiPourriel.

Pages spécifiques à WikiNi qui devraient être supprimées (non exhaustif)

Outils


Renommage de pages dans DokuWiki

Essentiellement, ça ne fonctionne pas : http://www.dokuwiki.org/plugin:pagemove

wakka2doku


http://wiki.splitbrain.org/wiki:tips#importing_from_other_wikis
http://wiki.splitbrain.org/wiki:tips:wakka2doku

wakka est l'ancêtre de wikini, il est possible que ce script wakka2doku soit adapté.
Remplacements à faire :
<pre> $database = "wakka"; $database = "gulliver"; $user = "username"; $user = "gulliver"; $password = "secret"; $password = "turêvestrop"; FROM wakka_pages FROM wikini_pages </pre>
Questions :

  • [d.] ce script garde l'historique ? Je n'ai pas l'impression.
  • [s] réponse : non

html2wik i


html2wiki --dialect DokuWiki PagePrincipale.html

Voir aussi LesWikis


Personnes intéressées par un atelier / réunion de travail sur la migration


Vieilles nouvelles


  • 2010_06_17 : soubresaut de migration au CA.
  • Mise en place de tests simples sur les transformations wikini → dokuwiki au sein de migrate-to-doku.py
  • Bug sur not ok 33 '##fixed## -> ''fixed'' = ''fixed##'
  • La conduite par les tests c'est simple et bon.
  • Les dernières modifications de Gilles sur les scripts sont disponibles ici : http://lamiral.info/~gilles/gulliver/migration_wiki/
  • 2010_07_29 : atelier avec Étienne, Fred, Gaëtan, Vincent et Valérie-Emma
  • déclaration de nouveaux bugs ;
  • corrections de différents bugs dans le script python par Étienne ;
  • le reste de l'équipe travaille à la correction dans les pages wikini de tous les noms avec plusieurs majuscules (ex : OpenOffice) qui crée un appel de pages dans wikini et donc des erreurs (pages manquantes en rouge) dans dokuwiki : suppression du formatage automatique wikini en ajoutant des paires de double guillemets ; corrections des pages listées dans cet index : http://www.linux-france.org/~eloks/dokuwiki/doku.php?do=index ; toutes les pages sont maintenant vérifiées).
  • corrections également des apostrophes « windows » qui ne passent pas ;
  • corrections des mises en page qui sont modérément foireuses dans wikini mais explosent dans dokuwiki ;
  • ajout d'exceptions de nommage dans le script ;
  • import des commentaires dans les pages ;
  • suppression de pages sans intérêt (redondantes ou quasi-vides et orphelines).
 
migration_wiki.txt · Dernière modification: Le 14/02/2012 à 16:48 par gwenb     Haut de page
Recent changes RSS feed Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki Design by Chirripó