Mise à jour automatique des plugins

Une nouvelle lame du Couteau Suisse permet de visualiser les plugins nécessitant une mise à jour, tout comme SPIP lui-même !

Présentation

Rendons à César ce qui est à César, voici un extrait de la présentation du Couteau Suisse pour sa lame « Mise à jour automatique » :

« Garde un oeil sur tous vos plugins. Cet outil vous permet de gérer facilement leurs mises à jour, récupérant notamment le numéro de révision contenu dans le fichier svn.revision et le comparant avec celui trouvé sur zone.spip.org. La liste proposée offre la possibilité de lancer le processus de mise à jour automatique de SPIP sur chacun des plugins préalablement installés dans le dossier plugins/auto/. »

Cette lame a été ajoutée au Couteau Suisse à partir de la révision 31378 (version 1.8.09.05) de ce dernier. Si vous n’avez pas cette lame dans votre Couteau Suisse, cela veut dire que votre version n’est pas à jour.

A partir de la version 1.8.32.00 du plugin et si vous avez le statut de webmestre, la version de SPIP lui-même est vérifiée. Comme il est toujours préférable de mettre à jour un code qui peut s’avérer défectueux ou présenter de graves failles de sécurité (par exemple : SPIP 2.1.8 corrige une importante faille de sécurité), n’hésitez pas ! Voici un exemple du message proposé :

Incompatibilité

Le Couteau-Suisse peut parfois (pour le moment) être incompatible avec certains plugins. Au mieux, certaines lames ne sont pas compatibles avec d’autres plugins. La lame « mise à jour automatique » n’est pas compatible avec le (ou les) plugins suivants (liste non exhaustive) :
-  SoyezCréateurs.

Précautions

Cet outil vous permet de gérer facilement la mise à jour de vos différents plugins, récupérant notamment le numéro de révision contenu dans le fichier svn.revision et le comparant avec celui trouvé sur zone.spip.org.

La liste offre la possibilité de lancer le processus de mise à jour automatique de SPIP sur chacun des plugins préalablement installés dans le dossier plugins/auto/. Les autres plugins se trouvant dans le dossier plugins/ sont simplement listés à titre d’information, aucun bouton radio n’apparaîtra de ce fait. Si la révision distante n’a pas pu être trouvée, alors tentez de procéder manuellement à la mise à jour du plugin.

Note : les paquets .zip n’étant pas reconstruits instantanément, il se peut que vous soyez obligé d’attendre un certain délai avant de pouvoir effectuer la totale mise à jour d’un plugin tout récemment modifié.

Activation

Pour activer cette lame, allez dans la page de configuration du Couteau Suisse en ayant cliquer sur « Configuration » de votre bandeau.

Cliquez sur « Administration » dans votre bloc « Outils inactifs » (En rouge) pour voir apparaître la liste des lames de cette catégorie où se trouve « Mise à jour automatique » :

Cliquez sur « Mise à jour automatique » pour voir son descriptif en bas de la page...

... et pouvoir l’activer :

Une fois cela fait, vous verrez apparaître la liste de vos plugins actifs (installés grâce au panneau de « Gestion des plugins ») dans un 1er tableau et un 2e tableau pour les plugins inactifs :

Explications

Cette liste se présente sous forme de tableau contenant 3 colonnes :

  1. un bouton radio pour sélectionner un plugin à mettre éventuellement à jour
  2. le nom du plugin, son numéro de version, et en gras soit « Ce plugin semble à jour. » soit « La révision XXXX est disponible » (XXXX est le numéro de révision du plugin)
  3. Le numéro de révision de votre plugin actif sur votre site et la date de cette révision

Vous remarquerez que le bouton radio sélectionné correspond au premier plugin de votre liste ayant une mise à jour disponible. Dans l’exemple présent, nous voyons le plugin « Notifications » sélectionné

Revenons sur la colonne principale de ce tableau.
Lorsque votre plugin est à jour, vous voyez la phrase « Ce plugin semble à jour ». Dans cette simple phrase, vous avez 2 liens :

  1. le premier sur « plugin » qui pointe vers l’archive (zip) de votre plugin ;
  2. le deuxième sur « à jour », pointant vers le « changelog » de votre plugin vous permettant de voir les différentes révisions liées à ce plugin

Lorsque votre version de plugin n’est pas la plus récente, vous verrez une phrase du type « La révision XXXX est disponible ». Ici aussi, vous avez 2 liens :

  1. Le numéro de révision pointe vers le « changelog » du plugin vous permettant de consulter la liste des révisions avant de mettre à jour (ou pas) votre plugin ;
  2. « disponible » pointe vers l’archive zippée du plugin.

Mise à jour d’un plugin

Venons au plus intéressant. Repérez un de vos plugins ayant une révision disponible. Cliquez sur le bouton à gauche du nom du plugin (s’il est le premier plugin de la liste, il sera déjà sélectionné).
En bas du tableau, vous verrez le bouton « Mettre à jour le plugin sélectionné ». Cliquez-le.

Vous verrez une page similaire à celle-ci apparaître :

Cliquez sur « Suivant » en bas de page (hé oui, SPIP nous oblige ici à faire de la roulette de souris...). Puis une autre page vous invitant à « Continuez pour l’activer » en cliquant sur « Suivant » encore une fois. Faites-le.

Ces étapes terminées, vous êtes redirigé vers la page de la lame « Mise à jour automatique » du Couteau Suisse pour procéder à d’éventuelles nouvelles mises à jour.

Attention : la mise à jour d’un plugin est une opération délicate qui ne saurait être automatisée. L’œil du Webmestre est toujours requis en cas de besoin. Si une erreur survient, n’oubliez pas les bases de SPIP :

-  Vider le cache de SPIP
-  Supprimer les fichiers /tmp/charger_*.php
-  Supprimer le dossier /tmp/couteau-suisse

Informations techniques

Merci à Patrice Vanneufville pour les informations suivantes :

-  Le cache de la consultation des logs est créé pour 24h afin de ne pas surcharger le serveur de trac. Par exemple, pour trouver la version actuelle de CFG, le Couteau Suisse va consulter la page http://zone.spip.org/trac/spip-zone/log/_plugins_/cfg?format=changelog et repérer le premier chiffre de révision, puis le comparer à ce qu’il peut trouver dans le fichier svn.revision. La page de trac est ensuite mise en cache : tant que le fichier svn.revision n’a pas été modifié, tout ré-affichage de l’admin du Couteau Suisse ne provoquera pas d’accès distant pendant 24h, (ce qui accélère considérablement la rapidité d’affichage par rapport à la première fois).

-  pour court-circuiter le cache et refaire toutes les consultations sur trac, il suffit d’ajouter var_mode=calcul dans l’url. Par exemple : /ecrire/?exec=admin_couteau_suisse&cmd=descrip&outil=maj_auto&var_mode=calcul

-  le fait qu’un commit [1] (donc nouvelle version disponible immédiatement) n’est pas pris en compte tout de suite dans le paquet .zip est que le paquet doit être refait sur trac (il est refait, en temps normal, toutes les heures). Sans cela donc, la mise à jour du plugin ne pourra pas se faire.

Notes

[1Correction apportée au code d’un plugin sur le serveur SVN

Discussion

37 discussions

  • 4

    Oups... Apparemment, il y aurait un bug... En tout cas, un soucis sur un de mes sites...
    La lame ne trouve pas les révisions distantes. En effet, il ajoute « _stable_ » dans son url vers la zone. De ce fait, pas de révisions possible...

    Lorsque je procède à la mise à jour manuelle, il retrouve le chemin correcte vers le fichier.

    J’ajoute à cela, pour informations, que je venais de faire une mise à jour de spip de la 2.0.2 à la 2.0.9...

    • Oui, ça c’est tout à fait normal. Les dossiers _stable_, _dev_ ou _test_ n’existent plus. La Zone a subit il y a peu un déménagement important de tous les plugins. Du coup, la recherche de révisions ne se fait effectivement qu’après une mise à jour manuelle des plugins installés avant ce déménagement.
      On pourrait prévoir cela dans le code, pourquoi pas. Mais cet effet devrait disparaitre progressivement avec le temps...

    • Oui, je sais j’ai vu le déplacement des différents répertoires, mais ce que je trouve bizarre c’est que CS garde cela en mémoire...

    • Le CS ne garde rien en mémoire, il se borne à lire le fichier svn.revision...

    • Voila,
      je viens de poster une
      correction
      qui prend en compte ce déménagement et qui
      devrait en principe éviter ce genre de désagrément à l’utilisateur.

    Répondre à ce message

  • 1

    C’est super cette fonctionnalité, et c’est vrai qu’elle mériterait d’être versée dans le core..

    Mais ce qui n’est pas clair, c’est est-ce que les versions proposées sont stables ? Car toutes les révisions d’un plugin stable ne sont pas stables !

    A part ça, l’admin du CS, très réussie au niveau ajax, est un peu chargée. Peut être la liste des lames mériterait elle d’être découpée en onglets ?

    • Car toutes les révisions d’un plugin stable ne sont pas stables !

      Voila pkoi le lien des logs est fourni dans la description de l’état u plugin... Les programmeurs attentifs remplissent bien ces logs à chaque commit. Une mise à jour, c’est vrai, même si elle est toujours conseillée, n’est jamais anodine, il faut « savoir ce que l’on fait » et avoir le temps de répondre à une éventuelle anomalie conséquente à une mise à jour.

      l’admin du CS, très réussie au niveau ajax, est un peu chargée.

      Voila pkoi chaque catégorie se replie, et chaque outil peut être caché. Une lame qui ne servira jamais n’apparaitra donc plus sur l’admin du CS et en allègera l’aspect.

    Répondre à ce message

  • 4
    One Eye Pied

    Le couteau suisse est à jour, la lame activée, mais je ne vois pas les boutons radio.
    Je clique sur « mettre à jour le plugin sélectionné », et je suis redirigé sur la page des plugins, sans qu’il y ai eu de mise à jour.
    Je suis sous spip 2.0.9, ubuntu 9.04, firefox 3.5.3.

    Une idée ?

    EDIT : mes plugins sont dans le dossier plugin, donc rien d’anormal en fait... Je peut déplacer les plugins dans plugins/auto ?

    • Bonjour,

      Rien ne s’affiche comme dans la capture d’écran de l’article ?

      Si oui, alors, vos plugins ne seraient peut-être pas installés dans le répertoire « plugins/auto »...

    • One Eye Pied

      J’ai déplacé les plugins dans plugins/auto/, donné les droits 777 à ce dossier et à son contenu (je suis en local, je bourine), et ça marche !

      Sauf que j’ai des warning. Exemple :

      Warning : touch() [function.touch] : Utime failed : Operation not permitted in /home/oneeyepied/site_spip/ecrire/inc/pclzip.php on line 3816

      La maj semble toutefois se faire.
      Rien de grave ?

    • Alors, je pense qu’il faut que tu purges le cache de tes plugins. (tmp)

    • Attention, le dossier auto/ est réservé aux plugins installés automatiquement par SPIP grâce à une liste configurable (se rendre sur la page de gestion des plugins)

      Il me parait très aléatoire de déplacer à la main des plugins dans ce dossier...

    Répondre à ce message

  • Problème, un peu de ma faute : ça marchait bien jusque là, je n’ai pas fait attention !

    Le plugin « Porte plume » a changé de nom (il s’appelait « Plugin porte plume » - Ah, Mathieu, Mathieu ! ) et donc de structure de stockage sous /plugins/auto . Quand je l’ai pris en compte de manière automatique ça n’a évidemment pas marché. Explosion de la présentation graphique de l’interface privée.

    J’ai supprimé l’ancienne structure (.../auto/plugin_porte_plume), j’ai repris en compte manuellement « Porte plume », j’ai vidé le cache et tout est reparti.

    Merci pour cette lame, on l’attendait. A+

    Répondre à ce message

  • Oui un immense merci au créateur de CS d’avoir créé cette lame. Elle facilite grandement l’exploitation d’un site SPIP et dispose d’une ergonomie très bien pensée. BRAVO !

    Répondre à ce message

  • Bonjour,

    Premier point : il vous faut mettre à jour votre plugin Couteau Suisse.

    Deuxièmement : en SPIP 2, il est possible dans la gestion de plugins d’avoir un répertoire « auto » où viendra s’installer les plugins obtenus par les différents flux de syndication des plugins (SPIP-Contrib, Plugins.spip.net, etc.)
    En dessous des liens de syndication, il y a un champ, vous pouvez y coller l’url du zip que vous souhaitez installer. SPIP se chargera de décompresser et d’installer les fichiers sur votre serveur. Il ne tiendra qu’à vous de l’activer.

    Répondre à ce message

  • Il y a des choses qui m’échappent... Mon couteau suisse ne m’affiche aucun lien « mise à jour automatique ». Mes plugins sont installés uniquement dans un dossier « plugins/ ». Dois-je les placer dans un dossier « plugins/auto » ?

    Merci

    Répondre à ce message

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