Installer et mettre à jour SPIP avec le script spip_svn_loader

Cet article de présentation décrit le script spip_svn_loader développé sur github. Pour une documentation complète et suivre son actualité, rendez-vous sur sa page.

Préambule

Ce script nécessite une certaine aisance dans l’usage des lignes de commandes sur GNU/Linux ou Mac OS X. Les experts dans l’utilisation de Subversion n’y verront pas un grand intérêt, sinon de réduire le risque d’erreurs dans la manipulation des branches.

Il sera donc plutôt apprécié par des utilisateurs au niveau intermédiaire, souhaitant rester à jour ou souhaitant tester leurs développements avec plusieurs versions de SPIP mais qui se sentent encore un peu « Lost in SubVerSion » ...

SPIP et SubVersioN

SPIP est un CMS écrit en PHP et développé sous SVN. Pour des raisons historiques, ses branches et tags sont organisées de telles manières qu’il est aujourd’hui facile de se perdre. :)

Ce script permet de guider une personne souhaitant installer ou mettre à jour une instance SPIP avec Subversion.

Pré-requis

  1. bash. Ce script est écrit en bash sur un Mac OS X (GNU bash, version 3.2.57) mais se veut compatible avec les plates-formes linux (testé sur Ubuntu 14 et mingw64 pour Windows). Pour s’en servir, il faut savoir ouvrir un terminal... :)
  2. subversion. Ce script caclule et exécute des lignes de commandes du type svn info, svn checkout, svn switch, etc. Votre machine doit disposer d’un client subversion (svn) installé et configuré dans le $PATH.
  3. curl. Pour installer et tenir à jour la liste des branches de référence décrite plus bas, ce script utilise la commande cURL qui doit, elle aussi, être configurée dans le $PATH.
  4. php. Ce script vérifie la version de PHP installée et configurée comme les outils ci-dessus.

S’il manque un des outils ci-dessus, le script vous le dira.

Branches de développement, de maintenance ou release

La documentation de Subversion recommande un « standard layout » que les développeurs de plugins connaissent bien. SPIP n’y déroge pas, à une exception près :

-  Le trunk de SPIP n’est pas trunk mais spip. Le script y fera référence en parlant de dev.
-  Les branches de maintenance historiques de SPIP sont nombreuses. Elles se trouvent dans le répertoire branches du dépôt officiel de SPIP. Le script y fera référence en parlant de maintenance.
-  Les versions alpha, beta, RC ou stable de SPIP se trouvent dans le répertoire tags du dépôt officiel de SPIP. Le script y fera référence en parlant de release.

Lors du choix de version à installer que proposera le script, avant de décider d’une version précise, le script proposera de pré-sélectionner une de ces branches.

Installation

Les méthodes ci-dessous prennent en charge l’installation des pré-requis décrit plus haut.

Avec Homebrew pour les utilisateurs de Mac OS X :

brew tap JamesRezo/spip
brew install spip_svn_loader

ou bien pour mettre à jour

brew upgrade spip_svn_loader

Sur plate-forme debian, en tant que root, taper les commandes :

echo "deb http://james.at.rezo.net/svn_spip/debs trusty main" > /etc/apt/sources.list.d/spip-tools.list
wget -O - http://james.at.rezo.net/svn_spip/JamesRezo.gpg.key | apt-key add -
apt-get update
apt-get install spip-tools

Selon la distribution debian, remplacer trusty, par precise, wheezy ou jessie

D’autres méthodes d’installation sur la page d’accueil du projet sur github.

Usage

Dans le répertoire cible, taper spip_svn_loader.

Le répertoire cible est déjà associé à une branche SVN de SPIP.

Le script tente de détecter la branche associée.

-  Si la branche est maintenue, il proposera de faire une mise à jour (svn up)
-  Si la branche n’est plus maintenue (ou a été supprimée), il proposera de basculer vers une branche existante (svn switch)

Le répertoire cible n’est pas associé à une branche SVN.

Qu’il soit vide ou pas, le script tentera d’y installer (svn checkout) la version choisie. S’il s’agit d’une release, il proposera de détacher le répertoire du dépôt SVN (svn export) mais vous pourrez refuser et attacher le répertoire au dépôt SVN (peut-être pour basculer vers une autre release dans le futur).

Le répertoire cible est déjà associé à une branche SVN d’autre chose.

Si le répertoire est déjà associé à un dépôt SVN (working copy), le script tentera d’installer la version choisie dans un sous-répertoire spip qui sera créé pour l’occasion. Comme ci-dessus, s’il s’agit d’une release, la même proposition de détachement sera faite.

Réparation automatique

Le script proposera d’exécuter une « réparation » dans le cas où la commande précédente a provoqué une erreur. Cette procédure, qui nécessite la présence des utilitaires zip et unzip, tente, après avoir effectué un sauvegarde des données physiques de l’instance SPIP, de rétablir l’association avec le dépôt SVN, puis restaure les données sauvegardées.

Liste des branches de référence

Le script exploite, par défaut, une liste de branches que je considère comme utiles. Elle se trouve ici. Cette liste sera téléchargée ($HOME/.spip/svn_loader_references.txt) et mise à jour automatiquement quand la liste évoluera.

Logo sous licence CC0 Public Domain,

Discussion

Aucune discussion

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom