Nous avons un composant de thème que nous installons via la commande rake. Le plugin et son installation via la commande rake fonctionnent parfaitement. La mise à niveau fonctionne également parfaitement lorsque nous l’effectuons depuis l’interface d’administration, par exemple /admin/customize/themes/40. Le problème survient lorsque nous tentons de le mettre à niveau depuis la ligne de commande avec cette commande rake. La sortie est exactement celle que j’attendais. Cependant, les modifications ne sont pas prises en compte. Cela ressemble-t-il à un bug ?
$ rake themes:install -- '--{"discourse-login-modal": {"url": "https://github.com/example/discourse-login-modal.git", "add_to_all_themes": true}}'
discourse-login-modal : déjà installé. Mise à jour depuis le distant.
Résultats :
Installé : 0
Mis à jour : 1
Erreurs : 0
Fournir plus de détails sur le problème. L’exécution de la commande rake pour la mise à niveau n’a apporté aucun changement visible à mon composant de thème, mais après cela, l’interface d’administration Admin pense que la mise à niveau a été appliquée (j’ai oublié de capturer la capture d’écran).
Après un changement ultérieur dans mon composant de thème, l’interface d’administration Admin indique maintenant qu’une mise à niveau est disponible, mais lorsque je l’applique, j’obtiens cet avertissement selon lequel mes modifications locales seront écrasées. Ces modifications sont exactement celles que je voulais appliquer via la commande rake install, qui n’a en réalité rien appliqué.
Bonjour @markvanlan, merci pour votre travail sur la commande rake permettant d’installer un thème ! Savez-vous pourquoi la mise à jour via rake install ne fonctionne pas ?
Je n’ai pas compris pourquoi la mise à jour ne fonctionne pas, mais j’ai pensé à une solution de contournement : ajouter une commande de désinstallation. Désinstaller le thème avant d’exécuter la commande rake install semble fonctionner.
Quelque chose de très étrange se passe ici. Lorsque ThemesInstallTask met à jour un thème distant, les informations distantes sont correctement mises à jour (le dernier SHA est affiché et commits_behind est 0, comme vous l’avez noté)
Mais le fichier SCSS n’est pas mis à jour dans la base de données. J’avais supposé qu’il s’agissait d’un problème de non-invalidation du cache, mais ce n’est pas le cas ! Le SCSS dans la base de données ne se met pas à jour.
La valeur devrait être différente sur cette capture d’écran
En examinant la manière dont le contrôleur de thème admin gère les mises à jour par rapport à la façon dont la tâche met à jour les thèmes distants, je ne vois aucune différence.