migration des tickets de SPIP : de Redmine vers Gitea en 5 étapes

Alors voila : la migration des tickets (« issues ») du core et des plugins-dist de SPIP de Redmine (core.spip.net) vers les tickets de Gitea (git.spip.net) est faite !

Quelques précisions sur la technique employée:

  • étape 1 : mise en place d’un clone du Gitea de SPIP (git.spip.net) sur un de nos serveurs (on va l’appeler « clone.spip » pour la suite). Un petit script de synchronisation git.spip => clone.spip a été mis en place pour faciliter les essais successifs. Cette synchro permet de cloner non seulement la BDD mais aussi les fichiers attachés (images dans les tickets, avatars…)
  • étape 2 : exécution sur clone.spip d’un script PHP « maison » redmine2gitea.php (avec des listes de correspondances établies « à la mano ») qui récupère ticket par ticket les données via un CURL sur l’API (version json) du Redmine et les injecte « à la brutale » dans la BDD MySQL du Gitea
    Pour faire « bien » les choses nous avions commencé par essayer de faire la création des tickets en utilisant l’API de Gitea mais elle est trop incomplète pour permettre de faire les choses précisément comme nous le souhaitions cad pouvoir conserver les numéros des tickets
  • étape 3 : pour les tickets qui ont des documents (essentiellement des images) attachés, redmine2gitea.php gère la récupération de ces fichiers et modifie (à grand coup de regexp) le contenu du texte du ticket pour que le document soit lié/intégré au ticket tel qu’il l’était dans Redmine. Il y a donc un dossier redmine/ sur git.spip qui stocke toutes ces images
  • étape 4 : et comme les choses ne sont jamais simples, un certain nombre de requêtes MySQL « cousues mains » permettent de gérer les jalons/milestone et leur état d’avancement
  • étape 5 : après que tout soit OK sur clone.spip (oh bien sûr ça ne s’est pas fait du premier coup!), synchro « retour » de la BDD et des fichiers depuis clone.spip vers git.spip (d’où son blocage temporaire cet après-midi…)
    …et pour la petite histoire : nous étions persuadé qu’azerttyu, le gestionnaire du serveur git.spip, suivait nos progrès en direct sur notre chat alors qu’il n’en était rien et que de son côté il ne comprenait pas pourquoi le serveur était en rade… Alors désolé pour le coup de speed et merci encore pour la confiance de nous avoir laissé faire notre cuisine sur cette machine!

Conclusion : après quelques ajustements de dernière minutes (les tickets de sécu oubliés et le milestone « 99 plus tard » qui était passé à la trappe…), à priori tout est maintenant OK :slight_smile: !
Les tickets du core sont donc maintenant visible sur : https://git.spip.net/spip/spip/issues : enjoy !

Et parce que SPIP c’est toujours de la tendresse, azerttyu vous a mitonné des redirections d’URLs aux petits oignons qui permettent que les liens vers le Redmine arrivent directement sur git.spip.net
NB : pour les nostalgiques de Redmine, il est toujours possible de consulter les anciens tickets sur https://core.spip.net en ajoutant un paramètre ?local dans l’URL pour shunter la redirection

Merci à tous ceux qui nous ont aidé/motivé !
tofulm & cy_altern

5 « J'aime »

Bravo à vous, car c’était un gros travail de précision avec plein de petits détails, que cette migration !


RastaPopoulos

Bravo et un bouquet de mercis d’été !

Merci ! C’est tip top !
Qui qui fait un article sur le blog ?

Étape n°6 : tout plein de remerciements :slight_smile:

Franchement merci c’est top ! top ! top !

love !

Merci à tous les deux … c’est TOP

Vous êtes bons comme le pain, merci tout plein :slight_smile:

Signé, un utilisateur intensif de core.spip qui ne sera pas malheureux de ne plus voir redmine :smiley:

Petite question du lundi : dans redmine on avait pour chaque ticket, une version cible (jalon dans gitea), des catégories (étiquettes dans gitea) et un tracker (anomalie, évolution, etc). Pour cette dernière info, on n’a pas d’équivalent dans gitea.

Je propose donc qu’on ajoute à la liste des étiquettes déjà présentes sur tous les repos du core, au moins deux étiquettes : bug et evolution. Si ça vous va, je ferai ça dans la semaine.

ça me semble une bonne idée :slight_smile:
…mais pour faire un peu plus pratique : comme nous l’avons fait pour les jalons « standards » des plugins-dist, nous pouvons créer un ensemble d’étiquettes « tracker » pour tous les plugins-dist directement dans la base afin d’éviter le boulot super répétitif.
Donc si la proposition initiale est OK, j’ajoute à la discussion : quelle liste de « tracker » pourrait être la plus pertinente ?

1 « J'aime »

La priorité c’est évidemment un tracker won't fix

Je => []

ça c’est une « résolution » et non un tracker :stuck_out_tongue:

je propose qu’on transfère cette discussion sur le ticket qui va bien #4436 - Jeu d'étiquettes par défaut pour les tickets - git.spip.net - SPIP on GIT (réouvert par tcharlss récemment)

1 « J'aime »