Mise à jour du composant de thème installe toujours l'ancienne version (via rake ou manuellement)

Quelque chose de très similaire à cela semble être revenu :

Avec Discourse 3.5.2, chaque fois que j’essaie d’installer un composant particulier (à partir de la source), il installe toujours une ancienne version. Je peux le confirmer en exportant : il contient le JavaScript ancien. De plus, dans les outils de développement du navigateur, si je recherche un fichier, il affiche toujours l’ancienne version du fichier. Il affiche également l’ancien nom si je le reconstruis après l’avoir modifié dans about.json.

Cela se produit que je l’installe manuellement depuis GitHub sur la page des composants, ou que je l’installe depuis app.yml.

Conformément à Install a Theme programatically, la fin de mon app.yml est :

## Toutes commandes personnalisées à exécuter après la construction
run:
  - exec: echo "Début des commandes personnalisées"
  ## Si vous souhaitez définir l'adresse e-mail 'De' pour votre première inscription, décommentez et modifiez :
  ## Après avoir reçu le premier e-mail d'inscription, re-commentez la ligne. Elle n'a besoin d'être exécutée qu'une fois.
  #- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"

  - file:
      path: /tmp/mythemes.yml
      contents: |
        discourse-new-topic-button:
          url: https://github.com/toad/discourse-new-topic-button-theme-component.git
          add_to_all_themes: true
  
  # Anciens dépôts - il semble que nous devrons en créer un nouveau pour chaque commit en raison d'un cache étrange ?

  #url: https://github.com/toad/discourse-new-topic-button.git
  #url: https://github.com/toad/discourse-new-topic-button-theme-component.git
  #url: https://github.com/toad/discourse-new-topic-button-mod.git

  - exec:
      cd: $home
      cmd: su discourse -c 'bundle exec rake themes:install < /tmp/mythemes.yml'

  - exec: echo "Fin des commandes personnalisées"

Et la sortie est :

I, [2025-11-12T01:43:24.323446 #1]  INFO -- : > echo "Début des commandes personnalisées"
I, [2025-11-12T01:43:24.325106 #1]  INFO -- : Début des commandes personnalisées

I, [2025-11-12T01:43:24.327203 #1]  INFO -- : Fichier > /tmp/mythemes.yml  chmod:   chown: 
I, [2025-11-12T01:43:24.327361 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake themes:install < /tmp/mythemes.yml'
I, [2025-11-12T01:43:32.778093 #1]  INFO -- : discourse-new-topic-button: installé depuis https://github.com/toad/discourse-new-topic-button.git

Résultats :
 Installé : 1
 Mis à jour : 0
 Erreurs : 0
 Ignoré : 0

I, [2025-11-12T01:43:32.778262 #1]  INFO -- : > echo "Fin des commandes personnalisées"
I, [2025-11-12T01:43:32.779694 #1]  INFO -- : Fin des commandes personnalisées

Si je ne supprime pas le composant avant d’exécuter rebuild, il affiche « Mis à jour » au lieu de « Installé ». Dans les deux cas, nous finissons avec l’ancienne version du composant.

Naviguer hors de la page, shift+recharger, etc., ne change rien. Le déplacer vers un autre dépôt ne change rien non plus, donc ce n’est pas un cache par URL (deux de ces dépôts sont identiques).

J’ai également essayé de le construire directement avec rake à l’intérieur du conteneur.

Des idées sur la façon dont je pourrais déboguer cela ? Il serait utile de pouvoir voir le journal de construction, mais rake avec --verbose ne me donne aucune information supplémentaire.

Ma configuration est légèrement inhabituelle (cela utilise Docker sans root en production, bien que ce soit le serveur de préproduction).

Aidez-moi !

Il semble qu’il construise toujours quelque chose avant le commit 990dec4f3e8411215122c74b2684782244eeffa2, qui a déplacé le bouton Nouveau Sujet vers le support Glimmer, et sera requis pour 3.6. Cela se brisera donc lorsque j’upgraderai vers 3.6 ; j’ai essayé de corriger notre fork du composant Nouveau Sujet, mais il semble que même la version amont se brisera.

Encore une fois, que puis-je faire pour déboguer cela ? :neutral_face:

1 « J'aime »

Le fichier de compatibilité installe une version spécifique pour les installations de Discourse inférieures à 3.6

3 « J'aime »

Oups ! Merci. :grinning_face:

Cependant, c’est intéressant ; les fonctionnalités Glimmer devraient être compatibles avec 3.5. Donc, le port vers Glimmer en amont pourrait être encore immature. Je suppose que je vais l’essayer, et peut-être y jeter un œil sur 3.6. Merci.

Mise à jour : fausse alerte, des modifications plus spécifiques à 3.6 ont été ajoutées, mais la version 3.5 corrige les avertissements concernant la suppression des widgets. Donc, je suis content.

PS : déplacer les boutons (mon changement) corrige un bug en amont (la catégorie n’est pas détectée automatiquement). Voir ici :