The trashiest blog in the World...

Aller au contenu | Aller au menu | Aller à la recherche

Mort de Chiliproject et migration vers Redmine

Depuis un certain temps (voire même un temps certain), j'utilise Chiliproject pour gérer les demandes de Galette - entre autres.

J'avais tout d'abord opté pour Redmine, avant de switcher vers Chiliproject dès la création du projet. Seulement voilà, aujourd'hui, Chiliproject semble inactif. Pas de commits depuis près d'un an, plus d'activité apparente des développeurs principaux sur les forums et autres, ... Étant moi même en charge d'un projet Open Source, je ne peux pas leur jeter la pierre, je comprends parfaitement que l'on puisse avoir d'autres centres d'intérêts et priorités. On peut avoir une vie en somme :-)

Le fait est que je ne souhaite pas conserver trop longtemps un projet qui n'est plus maintenu, et qui n'évoluera visiblement plus à l'avenir. La migration vers un autre projet (à condition d'en trouver un qui soit dores et déjà utilisable) ne saurait se faire sans perdre les données existantes ; et les nombreux tickets (résolus ou non) créés ces dernières années.

La solution la moins pire semble de simplement revenir à Redmine (c'est encore le projet qui s'approche le plus de Chiliproject, évidemment). Ce ne serait pas aussi rigolo si ça pouvait fonctionner sans encombres, la base de données n'est pas tout à fait compatible et requiert des modifications.

Une première documentation sur la migration de Chiliproject vers Redmine est disponible, ainsi qu'un programme Java qui se charge d'une partie de la conversion (il reste quelques requêtes à jouer à la main). Cette méthode n'a pas fonctionné pour moi, le programme tombe sur une chaîne alors qu'il attend un entier... Et c'est la fin des haricots !

En continuant mes recherches, j'ai trouvé une seconde documentation sur la migration de Chiliproject vers Redmine, qui référence la première trouvée, en ajoutant quelques remarques, et surtout un script - Ruby cette fois - de migration de la base ; ce dernier est celui qui a fonctionné pour moi.

J'ai installé mon instance de Redmine sur une CentOS6 ; qui a le « gros défaut » de fournir une version 1.8.7 de Ruby, incompatible avec le script de migration :-/ Fort heureusement, les Software Collections existent, et sont très facilement utilisables. Récupérez le dépôt adéquat (wget http://people.redhat.com/bkabrda/scl_ruby193.repo), installez la version adéquate de Ruby (yum install ruby193 ruby19-ruby-devel).

Beaucoup de dépendances requises par Redmine ne sont pas disponibles dans les dépôts, il faut « obligatoirement » en passer par l'installation de gems locaux (ce qui n'est pas très propre, mais je n'ai pas trouvé mieux...) ; et c'est pour cela que j'ai dédié une machine virtuelle aux installations de Redmine/Chiliproject.

Je suppose que l'installation des seuls gems requis par le script de migration suffisent, mais pour le test, j'ai installé les dépendances de Redmine. J'ai rencontré quelques erreurs, j'ai brodé. La procédure pour la mise à jour au final est la suivante (l'instance de Redmine étant préalablement installée et fonctionnelle) :

cd /var/www/redmine
scl enable ruby193 "gem install bundle"
scl enable ruby193 "bundle install --without postgresql sqlite test development"
wget https://gist.githubusercontent.com/pallan/6663018/raw/b6823dd7b4286c328e249a17f4cfb0bd9ef59373/chiliproject_to_redmine.rb
scl enable ruby193 "ruby chiliproject_to_redmine.rb"

Il suffit alors de relancer Redmine pour tester si tout s'est correctement déroulé, après avoir allumé un (ou plusieurs !) cierges ;-)

Commentaires

1. Le mardi 27 mai 2014, 17:22 par llaumgui

Lut,

tu as suivie quoi comme mod'op pour l'installation ?

2. Le mercredi 28 mai 2014, 07:28 par trashy

Pour l'installation, j'ai tout bêtement suivi la doc officielle de Redmine (http://www.redmine.org/projects/redmine/wiki/RedmineInstall).

Je ne suis pas fan du tout de l'installation avec bundler, mais la plupart des dépendances ne pourraient être satisfaites depuis les dépôts ; c'est aussi pourquoi mes Chili/Redmine sont installés dans leur propre machine virtuelle.