MajPlugins

Automatisation de la mise à jour des plugins SPIP (actifs et non verrouillés) en complément du plugin SVP de la dist. Le traitement est lancé par le Cron SPIP et reprend uniquement la fonctionnalité de mise à jour (pas de désactivation ni de désinstallation).

Installation

MajPlugins s’installe comme tous les plugins. Il nécessite le plugin de la dist SVP version > 3.0.0 (cad > SPIP 4.0)

Ce plugin est encore au statut de “test”, en attente d’éventuels retours pour le stabiliser

Utilisations

Ce plugin permet d’automatiser la mise à jour des nouvelles versions de plugins disponibles sur la zone-SPIP. Seuls les plugins actifs et non verrouillés sont concernés. Le traitement est lancé par le Cron SPIP. Il reprend les fonctionalités de la page de “Gestion des plugins”, mais seule l’action de mise à jour (up) est possible: Pas de désactivation (off) ou de désinstallation (stop).

La cinématique est la suivante:

  • Actualisation préalable du contexte des plugins:
    • Paquets locaux
    • Plugins actifs
  • Lecture de la configuration des plugins à mettre à jour et du niveau souhaité
  • Lecture des mises à jour des plugins disponibles (plugins/paquets)
  • Pour chaque mise à jour de plugin:
    • Détermination des actions à réaliser (Décideur)
    • Traitement des mises à jours (Actionneur)
  • Actualisation des plugins actifs
  • Actualisation des caches
  • Ecriture des logs et envoi d’un courriel si demandé

Contrairement à la page de “Gestion des plugins”, la confirmation est implicite lorsqu’il y a plus de plugins proposés en mise à jour que de demandés initialement (dépendances...).

Configuration

Sélection des plugins

Pour chaque plugin actif, sélectionnez le niveau de mise à jour souhaité:

  • Aucune mise à jour (par défaut)
  • Mise à jour corrective (x.y.Z) automatique
  • Mise à jour fonctionelle (x.Y.z) automatique
  • Mise à jour majeure (X.y.z) automatique

Notifications par courriel

  • Cochez la notification si vous souhaitez recevoir par courriel les mises à jour réalisées
  • Cochez les plugins en attente pour être informé des mises à jour qui ne sont pas effectuées en raison de la configuration de MajPlugins (plugin non sélectionné ou niveau insuffisant)
  • Cochez les messages d’alerte} pour être informé d’éventuels crashs de tables ou de plugins (ou messages auteur). Ils reprennent ceux qui apparaissent dans l’en-tête de l’espace privé dans de telles situations.
  • Ajoutez d’éventuels destinataires autres que le webmaster (systématique)

Traitement périodique

  • Le traitement est lancé par le Cron SPIP sur la tâche majpluginspar défaut toutes les 24 heures. Il est possible de forcer cette valeur en alimentant la constante _MAJPLUGINS_CRON_FREQUENCE (en secondes).
  • Cette première tâche n’a pour fonction que de replanifier une seconde tâche majplugins_cron au cours de laquelle le nombre maximum de tâches simultanées du Cron est forcé à 1, limitant ainsi les risques de conflit d’exécution avec d’autres tâches.
  • La log majplugins.log est alimentée lors des mises à jour:
Actions demandées :Mise à jour du plugin « Liens explicites » (de la version 4.1.0 à 4.1.2)
Actions réalisées:La mise à jour du plugin « Liens explicites » (de la version : 4.1.0 à 4.1.2) s’est correctement déroulée
La configuration MajPlugins  ne permet pas la mise à jour du plugin « Tarteaucitron » (de la version : 1.7.0 à 1.8.0)
  • Les 5 dernières actions réalisées sont également reprises dans l’affichage droit de la page de configuration:

A noter

  • Le plugin MajPlugins repose sur le plugin de la dist SVP dont il reprend les principales Classes (Decider/Actionner/Depoter) et les feuilles de style (Page de configuration),
  • L’autorisation autoriser_plugins_ajouter_dist est surchargée pour l’étendre au traitement Cron identifié par constante _MAJPLUGINS_CRON = true,
  • L’autorisation de configuration de MajPlugins est par défaut autoriser_configurer mais elle peut être modifiée en surchargeant la fonction autoriser_majplugins_configurer_dist
  • Une temporisation du traitement Cron est effectuée à la fin de la mise à jour des plugins afin de s’assurer de la prise en compte des derniers fichiers caches pipelines générés. Elle est par défaut de 2 secondes mais elle peut être modifiée en fonction de l’opcache de votre serveur en alimentant la constante _MAJPLUGINS_OPCACHE_TIME.
  • Quelques libellés du fichier de langue de SVP sont également surchargés pour une meilleure lecture des logs et courriels.
  • Il n’est pas possible de mettre à jour automatiquement le plugin MajPlugins lui-même au risque de faire tomber le traitement Cron en erreur,
  • Afin de permettre la mise à jour éventuelle de plugins d’envoi de courriels (Facteur...), les notifications utilisent la fonction native SPIP inc_envoyer_mail_dist() qui repose elle-même sur la fonction PHP mail() . Vérifier que cette dernière est bien active sur votre serveur.

Discussion

2 discussions

  • 1

    Ca c’est une fonctionalité qui était attendue (du moins chez moi 😁) Merci d’avoir fait le taff !

    Par contre :

    • je plussoie effectivement la possibilité d’activer un choix global, affiné ensuite au cas par cas. Car sur des petits sites, ça se gère encore bien, mais sur des mutualisations avec potentiellement beaucoup de sites et beaucoup de plugins, ça devient vite la purge à suivre 😬
    • Pour les notifications, en plus des 2 cas “en attente” et “crash des tables”, une petite “plugin(s) [truc][machin][bidule] a/ont bien été mis à jour” serait un ’plus’ appréciable pour signaler aux webmestres de faire une petite inspection de routine 🙂
    • Merci @Loiseau2nuit de ce retour sympa :)
      -  L’action globale de configuraton a l’air de s’imposer. Peux-tu créer un ticket ? histoire de ne pas oublier voire de pouvoir échanger sur la solution la plus efficace ?
      -  Pas certain d’avoir compris le second point. Normalement une notification est envoyée au webmaster lors des mises à jour en reprenant les mêmes messages que lors d’une mise à jour en ligne. Est-ce ça qui ne marche pas (bug ?) oubien souhaites-tu autre chose ?
      Merci de ta contribution à "roder’ le plugin.

    Reply to this message

  • 1

    Bonjour,
    J’ai installé ce plugin hier sur plusieurs sites pour tester.
    Je ne sais pas si la notification fonctionne : je n’ai pas reçu de mail.
    Et je me demande s’il ne serait pas possible d’activer par défaut les mises à jour avec une case à cocher globale, car là il me semble qu’il faut choisir pour chaque plugin installé s’il doit être mis à jour automatiquement en cochant pour chacun le niveau de mise à jour.

    Si l’on choisit “majeure” est-ce que les maj de sécurité seront aussi déclenchées ?
    Est-ce que les notifications par courriel fonctionnent s’il y a des maj dispo mais que l’on ne coche aucune mise à jour ?

    Merci
    dd

    PS Est-ce que cela remplace l’ancien Mise à jour automatique des plugins ?

    • Bonjour DD,
      Merci de ce retour. Une mise à jour a t-elle bien été effectuée sur le site (affichage droit de l’écran de configuration du plugin) ? La tâche majpluginsest-elle bien passée (affichage des tâches de fond) ? Rien dans les SPAM ?
      De mon côté, j’ai bien eu une mise à jour ce matin des plugins:
      « Saisies pour formulaires » (de la version 5.16.2 à 5.16.3) + Mise à jour du plugin «Formidable » (de la version 7.1.3 à 7.1.4) avec son email.
      Les mises à jour dîtes de sécurité des plugins (et uniquement ceux-ci) seront pris en, compte selon votre paramétrage: Le niveau “majeur” (X.y.z) étant le plus élevé.
      La saisie en groupe pourrait effectivement faire l’objet d’une évolution (à l’image de l’écran d’administration des plugins).
      Pour information, ce plugin n’est pas une mise à jour de la lame du couteau suisse éponyme. Il traite du même sujet mais effectue les mises à jour en fonction de sa configuration.
      JMarc

    Reply to this message

Add a comment

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.

Who are you?
[Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom