Même si le nom de cette distribution n’est pas définitif, on entend, dans le cadre de cette démonstration, par "Classic" la distribution historique de SPIP.
Elle comprend l’espace privé, accessible via le répertoire physique ./ecrire
qui contient aussi les mécanismes de base du CMS, et dont l’habillage se trouve dans le répertoire ./prive
, une collection de plugins historiquement associés aux premières versions du logiciel et un squelette par défaut, qui fait la démonstration des fonctionnalités potentielles d’un site public.
Pour introduire les principes fondamentaux de Composer, il a été proposé de simuler une version 3.3 basée sur un nouveau découpage du code en divers composants installables par cet outil.
Cet article propose de transformer le dépôt subversion historique en divers dépôts [1] pour fournir à l’installation et à la mise à jour les 3 versions 3.x actuellement maintenues (ainsi que la branche de développement) sur le modèle déjà présenté.
Subversion
Il n’est pas nécessaire de transformer le dépôt actuel qui peut rester actif, en lecture seule de préférence, afin de laisser le temps aux utilisateurs svn de basculer vers les nouvelles méthodes de mise à jour.
En récupérant une copie du dépôt, par l’intermédiaire d’un dump, on reconstruit un dépôt localement, par exemple avec la version 1.10 de subversion :
[2]
Les dépôts de SPIPRemix ont été produits aux alentours du 13 mai dernier sur la base d’un dump effectué après le commit 23986. Merci Fil ! ;-)
On applique le script ci-dessous sur ce dépôt local pou effectuer les transformations liées à la mise en place du standard layout et de semver :
Ainsi, on dispose d’un clone subversion temporaire prêt à être migré vers Git sans perturber les copies locales des utilisateurs du dépôt historique.
Fichier authors
En s’appuyant, par exemple et au hasard, sur cet article on peut générer un fichier authors pour les réattribuer dans les fururs dépôts Git.
On peut éventuellement faire quelques modifications à la marge avant l’étape suivante. Exemple : james@rezo.net = james <james@rezo.net>
pourrait devenir james@rezo.net = JamesRezo <james@rezo.net>
Git
Toujours en suivant les précieux conseils de Cédric, il sera possible de néttoyer les messages de log :
Sur les dépôts officiels, la vie continue. Les étapes de récupération des auteurs et de nettoyage des messages de commit seront à reproduire le moment venu. Elle n’ont pas été appliquées sur la maquette pour gagner du temps.
Récupérer les branches
On peut, si on le souhaite, et pour des raisons historiques, conservé les anciens tags subversion dans un dépôt Git
cd ${WORKING_ROOT} && git svn clone file:/${WORKING_ROOT}//spip/museum && cd museum && git push -u origin master
[5]
On s’occupe des branches de spip/classic :
Récupérer les répertoires ./ecrire et ./prive
[6]
Composer
- Ajout des fichiers composer.json et .gitignore,
- Executer les
composer install
(pour générer le fichier composer.lock) de chaque branche, - ajouter éventuel d’un fichier LICENSE,
- ajouter éventuel d’un fichier README.md,
- pousser branches et générer les tags.
Mettre à jour les dépôts spip/spip et spip/cms
Voir les dépots spip/spip et spip/cms sur le serveur git de la maquette, puis sur le dépôt Composer
Sur SPIPRemix
Voir les dépots spip/ecrire et spip/prive sur le serveur git de la maquette, puis sur le dépôt Composer
commande | résultat |
composer create-project --repository=https://composer-spip.lerebooteux.fr spip/spip spip-3.0 3.0.27 |
Installe la version 3.0.27 dans le répertoire ./spip-3.0 |
composer create-project --repository=https://composer-spip.lerebooteux.fr spip/spip spip-3.1 3.1.* |
Installe la dernière version stable de la branche 3.1 (ici, la 3.1.8) dans le répertoire ./spip-3.1 |
composer create-project --repository=https://composer-spip.lerebooteux.fr spip/spip |
Installe la dernière release stable (ici, la 3.2.1) dans un répertoire ./spip |
composer create-project --repository=https://composer-spip.lerebooteux.fr --stability=dev --prefer-source --keep-vcs spip/spip |
Installe la version de développement dans un répertoire ./spip en conservant l’attachement aux dépôts de la gestion de source |
Il est à noter que si le seul composant spip/spip
était distribué sur Le référentiel principal de Composer, l’option --repository=https://composer-spip.lerebooteux.fr
serait inutile.