====== Backdrop CMS ======
Sources :
* [[https://docs.backdropcms.org/documentation/core-updates|Core Updates]] (en) (backdropcms.org)
* [[https://docs.backdropcms.org/documentation/updates-vs-upgrades|Updates vs Upgrades]] (en) (backdropcms.org)
===== Mises à jour =====
==== Core update ====
La mise à jour du Core effectue également celle des modules compris dans la distribution. Tous les éléments concernés figurent dans le sous-répertoire //core// de l'archive de mise à jour.
Si d'autres fichiers((Tels.htaccess, robots.txt, settings.php…)) doivent également être mis à jour, ils seront indiqués dans les notes de mise à jour (release notes).
- lire les [[https://backdropcms.org/project/backdrop/releases|notes de mise à jour]] (mise à jour possible de certains fichiers((settings.php, .htaccess, robots.txt…)) en dehors du //Core//)
- passer le site en mode maintenance
- dans le root directory,
- renommer le répertoire //core// en //core-old//
- effectuer une sauvegarde du répertoire de configuration, selon le schéma actif((Tel que défini dans la section //Configuration storage// du fichier //settings.php//.)) :
* répertoire //config// hors DocumentRoot\\ ou((Selon //Configuration storage// du fichier //settings.php//.)) sous-répertoire ~/files/config_[hash-code]
- dans un répertoire temporaire
- télécharger l'archive de mise à jour (.zip)
- extraire l'archive %%>>>%% entraîne la création du répertoire "backdrop"
- déplacer le sous répertoire "core" dans le root directory
- lancer la mise à jour : https://mon-site/core/update.php
- si tout s'est bien passé
- supprimer les sauvegarde du //core// et de la configuation: core-old et config.tgz
- supprimer l'archive de mise à jour et son extraction
- remettre le site en mode consultation
=== Commandes typiques ===
À adapter au contexte d'hébergement.
>>> pointer le navigateur sur https://mon-site/admin/config/system/site-information
cd ~user/domains/domain.tld/tmp
wget https://github.com/backdrop/backdrop/releases/download/x.yy.z/backdrop.zip
unzip backdrop.zip
mv ../public_html/core ../public_html/core-old
mv backdrop/core/ ../public_html/
tar czf config.tgz ../config⇒ /// autocomplétion
(tar czf config.tgz ../public_html/files/config_[hash-code]) /// avant 1.30.0
////// si OK après update.php effectué (https://mon-site/core/update.php)
rm -Rf backdrop backdrop.zip config.tgz ../public_html/core-old
==== Modules update ====
Sauf mention particulière, les modules se mettent à jour par une simple suppression du répertoire ad hoc et remplacement par le répertoire extrait.
Pour des modules légers tels que //mimemail//, //site_map// et //xmlsitemap//, le plus simple est de les téléverser manuellement.
La procédure est alors la suivante :
- passer le site en mode maintenance
- depuis la page des mises à jour, télécharger les zip sur le poste de travail
- si le serveur de mise à jour est H.S. aller sur la [[https://backdropcms.org/modules|page des modules]] de //Backdrop CMS//
- extraire localement les contenus des zip (chaque zip contient un répertoire éponyme)
- lire la documentation
- sur le serveur, supprimer (rm -Rf les répertoires obsolètes cd ~user/domains/domain.tld/public_html/modules
- copier les répertoires des mises à jour depuis le poste de travail sur le serveur.
- actualiser la page des mises à jour
- remettre le site en mode consultation
=== Commandes typiques ===
À adapter au contexte d'hébergement. Ici, en téléchargement sur le serveur sans passer par la station de travail.
cd ~user/domains/domain.tld/public_html/modules
ls -d */
rm -R
cd ~user/domains/domain.tld/tmp
//// pour tous les modules à mettre à jour
wget
unzip mon-module.zip -d ../public_html/modules/
rm mon-module.zip
==== Fichiers hors Core ====
Certaines mises à jour affectent des fichiers extérieurs au Core tels que .htaccess, robots.txt ou settings.php qui figurent à la racine de l'arborescence de la mise à jour. Les fichiers concernés sont indiqués dans les [[https://backdropcms.org/project/backdrop/releases|notes de mise jour]]. La mise à jour du Core, telle que [[backdrop_cms#core_update|décrite précédemment]], ne fait pas la mise à jour de ces fichiers.
Pour chaque fichier, l'utilisatrice se trouve dans deux cas de figure. Le fichier installé (en cours d'utilisation) est :
- le fichier fournit pas la distribution,
- une version personnalisée.
Dans le premier cas, il suffit de remplacer le fichier installé par celui figurant dans la mise à jour.
Dans le second cas, il faudra reporter les éléments de configuration personnalisés dans la nouvelle version du fichier concerné (//fusion//) avant de remplacer le fichier installé. Il n'existe pas de méthode universelle permettant d'automatiser cette //fusion//((Sauf changement majeur, une fusion par diff/patch est envisageable mais Backdrop CMS ne définissant pas ce que serait un « changement majeur », il est risqué d'automatiser intégralement la mise à jour. Une approche semi-automatisée reste possible : analyse des différences par //diff//, contrôle visuel puis application des modification par //patch// si cela fait sens.)).
=== En pratique ===
Dans la vraie vie, je fais les modifications à la main, depuis une station de travail. Pour les fichiers concernés :
- téléchargement des fichiers installés
- téléchargement de l'archive de mise à jour
- diff sur les fichiers
- selon les modifications à apporter :
* fusion des fichiers en local, puis téléversement des fichiers fusionnés sur le serveur\\ **ou**
* modification directe des fichiers installés