Comprendre les mises à jour automatiques de WordPress

Je te propose un petit cours d’histoire en guise d’introduction. Vraiment petit promis. Parce que l’histoire et moi… ça fait 15.

Les mises à jour automatiques sont disponibles depuis la version 3.7 de WordPress. Donc ça remonte un peu. Octobre 2013 plus exactement… oui ça nous rajeunit pas tout ça mais bon, ça a du sens là, promis.

Ces mises à jour ont alors été découpé en 4 :

  • celles du Core (le noyau de WordPress)
  • celles des extensions
  • celles des thèmes
  • celles des traductions

Et celles du noyau de WordPress peuvent encore être subdivisé en 3 :

  • les mises à jour de développement (disponible uniquement pour les installations de développement) ;
  • les mises à jour majeures (nouvelles fonctionnalités, maintenance et sécurité) ;
  • ises à jour mineures (correctifs et améliorations de l’existant).

Attends un peu, ça devient intéressant.

Il est bien sûr possible de désactiver toutes les mises à jours automatiques grâce à une constante que tu peux rajouter dans le wp-config.php :

define( 'AUTOMATIC_UPDATER_DISABLED', true );

Sache qu’il en existe une autre qui permet de contrôler plus spécifiquement les mises à jour liées au Core : WP_AUTO_UPDATE_CORE. Sur la plupart des installations classiques cette constante est à “minor”, qui veut dire que tu n’autorises que les mises à jour automatiques mineures de WordPress. Il est possible d’aller plus loin et configurer tout ça plus finement selon les besoins. Je te contre-glisse la main de Marie-Joëlle la doc à ce sujet.

Il existe l’équivalent avec des hooks, je te laisse scroller un peu plus bas sur la documentation. Notamment si tu veux plus de granularité dans les thèmes, extensions sur ce qui est mis à jour (ou pas) en automatique, c’est pratique !

Euh je comprends pas… pourquoi tu nous parles de désactiver les mises à jour plutôt que de les laisser telles quel ?

Malheureusement, ça m’est arrivé (plusieurs fois) à mes débuts lors d’une maintenance pour un client de cliquer trop vite sur mettre à jour une extension, en me disant oh ça va elle est utilisée par des millions de gens c’est stable… Boum, plus de site.

Ce serait pas drôle si c’était pas en prod… Depuis, je me suis guéri j’utilise un environnement de pré-production pour casser les sites de mes clients sans conséquences fâcheuses.

Mais ca veut dire qu’en automatique ça peut se produire bien plus souvent qu’on ne le pense. Et oui, l’erreur reste humaine : que ce soit les contributrices et contributeurs au Core ou bien les développeuses ou développeurs de thèmes et extensions, tous sont susceptibles de laisser traîner une erreur quelque part.

Et quid des extensions ou des thèmes qui ne feront pas forcément des mises à jour en même temps ? L’extension elle le sera, le thème non ou vice versa, y’aurait-il pas des problèmes de compatibilité tôt ou tard ?

En résumé, je te conseille dans l’ordre de désactiver les mises à jours auto (en tout cas sur la prod) pour t’éviter quelques e-mails agréables de clients mécontents car leur site est down. De faire des sauvegardes des sites régulièrement, le “au cas où” est le bienvenue. Puis (et uniquement après avoir fait une sauvegarde) de mettre à jour sur un environnement détaché de la production.

Alors on ne va pas se leurrer il faut que les environnements soient identiques pour que ce soit pertinent, mêmes versions de PHP, de base de données, et si possible synchroniser le contenu de la prod sur la pré-prod. Enfin, si tout est OK, là on peut faire les changements sur le site en live.

Bon et si tout ça existe depuis fin 2013, pourquoi je t’en parle que maintenant ?

Déjà, les piqûres de rappel ça fait pas de mal. Et, 7 ans plus tard, la communauté s’est arraché les cheveux sur une extension “WordPress auto-update” pour ne pas la nommer. Avant d’être intégrée au Core, les nouvelles fonctionnalités sont souvent testées sous forme de plugins, puis validées par la communauté et enfin merge au noyau de WordPress.

Et qu’est-ce qu’il va arriver à ce plugin à ton avis ?

Dans le mille, la prochaine mise à jour de WordPress va intégrer les fonctionnalités de cette extension : https://make.wordpress.org/core/2020/05/02/merge-announcement-plugins-themes-auto-updates/

Et c’est un petit frenchy (on est chauvin ou on l’est pas ?), J.B. Audras, qui est porteur de ce plugin donc chapeau et félicitations pour tout ce boulot abattu.

Alors il y a quoi dans cette extension WordPress :

  • La possibilité de s’abonner aux mises à jour des thèmes et des extensions. En automatique du coup, tu l’as compris je t’aurais pas bassiné avec ça depuis le début sinon… La possibilité d’activer/désactiver cette fonctionnalité par plugin et/ou par thème. Tu te souviens de la granularité dont je parlais taleur ? Et ben c’est ça 😅
  • Une notification par e-mail de toutes les mises à jour effectuées (et rien que ça nos chefs de projet vont adorer)
  • Et toujours plus, de hooks, constantes pour contrôler tout ça avec minutie lorsqu’on dev.

C’est pas beau tout ça ? Allez, je rend l’antenne.