SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

286 Plugins, 197 contribs sur SPIP-Zone, 215 visiteurs en ce moment

Accueil > Documentation > SPIP en local > Outils CLI pour développer SPIP > Installer et mettre à jour SPIP avec le script spip_svn_loader

Installer et mettre à jour SPIP avec le script spip_svn_loader

8 avril 2016 – par James

10 votes

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.

P.-S.

Logo sous licence CC0 Public Domain,

Dernière modification de cette page le 14 avril 2016

Retour en haut de la page

Répondre à cet article

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 Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Acces Restreint 3.0

    11 décembre 2008 – 784 commentaires

    Le plugin accès restreint permet de définir et de gérer des zones de l’espace public en accès restreint. Cette version du plugin a été redévelopée et optimisée tout spécialement pour SPIP 2.0. Il en découle une amélioration des performances sur les gros (...)

  • Champs Extras 3

    16 janvier 2012 – 538 commentaires

    Ce plugin permet de créer et/ou de gérer des champs supplémentaires dans les objets éditoriaux de SPIP. Il permet donc de prendre en compte et d’afficher de nouveaux éléments dans n’importe quel objet éditorial de SPIP. Screencast Vous n’aimez pas (...)

  • Réservation d’événements

    16 mars 2015 – 190 commentaires

    Ce plugin permet d’offrir aux visiteurs de s’inscrire pour un évènement du plugin Agenda et de gérer les réservations enregistrées. Installation Le plugin s’installe comme n’importe quel plugin. il nécessite : Agenda API de vérification (...)

  • Les crayons

    23 avril 2008 – 815 commentaires

    Ce plugin permet d’éditer les contenus sur les pages publiques du site, sans passer par l’espace privé de SPIP.

  • LESS pour SPIP : Less-CSS (anciennement LESSpip)

    5 novembre 2010 – 43 commentaires

    Less-CSS (Anciennement LESSpip) est un plugin intégrant facilement le logiciel LESS dans SPIP. LESS est une extension de CSS ajoutant les variables, les classes, les opérations, les imbrications au langage. Facilitant ainsi l’écriture de (...)

Ça spipe par là