Mise à jour de WinterCMS avec Composer : Gestion des blocages courants

Lorsque vous mettez à jour WinterCMS via Composer, il peut y avoir différents types de blocages liés à des conflits de dépendances ou à des limitations système. Voici un guide complet des commandes et des solutions pour réussir la mise à jour en gérant les problèmes les plus fréquents.

Mise à jour de Composer vers la version 2

Si vous utilisez encore Composer 1, il est fortement recommandé de passer à Composer 2, qui est plus performant et supporté plus longtemps.

Commande de mise à jour vers Composer 2 :

composer self-update --2

Cette commande met à jour Composer vers la version 2, ce qui est nécessaire pour éviter les futurs blocages liés à la fin de support de Composer 1 en août 2025.

Commandes pour la mise à jour de WinterCMS

Avant de commencer, assurez-vous que Composer est à jour.

Commande principale de mise à jour :

COMPOSER_ROOT_VERSION=1.2.6 php -d memory_limit=-1 /usr/local/bin/composer update --with-all-dependencies

Cette commande permet de forcer la mise à jour de WinterCMS en définissant la version explicitement avec COMPOSER_ROOT_VERSION (1.2.6 dans cet exemple), tout en supprimant les limitations de mémoire (memory_limit=-1). Elle prend en compte toutes les dépendances avec l’option --with-all-dependencies.

Résolution des conflits de plugins : Désinstaller temporairement un plugin qui pose problème

Un des blocages courants survient lorsque un plugin entre en conflit avec la mise à jour. Par exemple, prenons le plugin winter/wn-user-plugin. Dans ce cas, la solution consiste à désinstaller temporairement le plugin, effectuer la mise à jour, puis le réinstaller ensuite.

Étapes pour contourner le conflit :

Retirer temporairement wn-user-plugin de composer.json :
Ouvrez votre fichier composer.json et commentez ou supprimez la ligne suivante :

    "winter/wn-user-plugin": "^2.2.1"

    Exécuter la mise à jour :
    Une fois la ligne retirée, exécutez la mise à jour complète :

      COMPOSER_ROOT_VERSION=1.2.6 php -d memory_limit=-1 /usr/local/bin/composer update --with-all-dependencies

      Réinstaller le plugin wn-user-plugin :
      Après la mise à jour, réinstallez le plugin avec la commande suivante :

           composer require winter/wn-user-plugin

        Conseils supplémentaires pour éviter les blocages

        • Vérifiez la mémoire disponible : Si vous rencontrez des erreurs de mémoire (comme l’erreur « Allowed memory size of X bytes exhausted »), assurez-vous d’avoir suffisamment de mémoire disponible pour Composer. Vous pouvez utiliser un fichier swap sur des environnements limités en mémoire.
        • Dépannage des dépendances : Si des erreurs de dépendance apparaissent, vous pouvez essayer de forcer la mise à jour de toutes les dépendances avec l’option --with-all-dependencies.

        Conclusion

        La mise à jour de WinterCMS peut parfois être compliquée par des conflits de dépendances ou des limitations de mémoire. En suivant ces étapes, notamment en mettant à jour Composer, en définissant explicitement la version avec COMPOSER_ROOT_VERSION, et en désinstallant temporairement les plugins conflictuels, vous pouvez éviter la plupart des blocages.