Mises à jour
Comment fonctionne l'outil de mise à jour, ce que signifient les canaux, et ce qui change quand la fenêtre de mises à jour se ferme.
Les mises à jour arrivent sous forme de paquets signés que Bondry vérifie avant de les appliquer. Tout le parcours vit dans System > Updates.
La vérification#
Une fois par jour, la tâche planifiée demande au serveur de licence quelles versions existent pour votre produit, votre canal et votre version actuelle. Si une plus récente est disponible, le panneau affiche une notice que vous pouvez ignorer par version.
La vérification ne liste que les versions publiées à l'intérieur de votre fenêtre de mises à jour. Tout ce qui a été publié pendant que la fenêtre était ouverte reste disponible pour vous pour toujours, même après sa fermeture.
Canaux#
| Canal | À qui il s'adresse |
|---|---|
stable |
Tout le monde. Le canal par défaut. |
beta |
Les personnes qui veulent la prochaine version tôt et acceptent de tomber sur un bug. |
Le canal est un réglage dans System > Updates. Basculer vers
beta sur une communauté en production n'est pas recommandé.
Ce que fait l'outil de mise à jour#
Quand vous appliquez une mise à jour, dans cet ordre :
- Vérification préalable : la nouvelle version est supérieure à la version actuelle, la version actuelle est au moins égale au minimum requis par le paquet, la version PHP convient, les fichiers sont accessibles en écriture et il y a assez d'espace disque.
- Sauvegarde : chaque fichier que le paquet touche est copié à part et la base de données est exportée.
- Mode maintenance : le site affiche l'écran de maintenance.
- Copie : les fichiers sont écrits.
- Migrations : pour le core et pour chaque module installé.
- Caches : la configuration, les routes, les vues et l'OPcache sont vidés.
- Vérification : chaque fichier écrit est contrôlé par rapport au hash du manifeste.
- De retour en ligne.
Si quelque chose échoue après la sauvegarde, l'outil de mise à jour restaure les fichiers et la base de données et vous laisse sur la version de départ. Chaque exécution est enregistrée dans l'historique des mises à jour, étape par étape.
Ce qu'il refuse#
Un paquet est rejeté si la signature ne se vérifie pas, si le hash d'un
fichier ne correspond pas, ou si un chemin qu'il contient est absolu,
contient .., ou tombe en dehors des répertoires qu'une mise à jour est
autorisée à toucher. .env, storage/, public/uploads/ et
bootstrap/cache/ ne sont jamais écrits par une mise à jour.
Hébergements sans réseau sortant#
Deux façons de contourner ça :
- téléchargez le paquet depuis votre compte et envoyez-le dans System > Updates, ce qui exécute exactement la même vérification ;
- lancez
php artisan bondry:update --file=/path/to/package.zipdepuis un terminal, utile quand la requête web dépasserait le délai sur une grosse mise à jour.
Quand la fenêtre se ferme#
Vous conservez le droit d’utiliser vos versions sous licence et de télécharger celles publiées pendant votre période de mises à jour. Une prolongation facultative donne accès aux nouvelles versions. La bibliothèque en ligne de Designer nécessite une licence admissible du socle ou de Designer avec une période de mises à jour active.
Une prolongation ajoute 365 jours à compter de l’échéance actuelle ou de la date d’achat, selon la date la plus tardive. Un renouvellement anticipé préserve le temps restant ; après expiration, il ouvre une nouvelle période de 365 jours à la date d’achat.
Warning Mettez à jour le core avant les modules. Un module déclare la version du core dont il a besoin, et installer un module conçu pour un core plus récent le laisse désactivé jusqu'à ce que le core rattrape son retard.