Aggiornamento del componente del tema installa sempre la vecchia versione (tramite rake o manualmente)

Qualcosa di molto simile a questo sembra essere tornato:

Con Discourse 3.5.2, ogni volta che provo a installare un determinato componente (da sorgente), viene sempre installata una versione precedente dello stesso. Posso confermarlo esportando: contiene il vecchio JavaScript. Inoltre, negli strumenti per sviluppatori del browser, se cerco un file, viene sempre mostrata la vecchia versione del file. Mostra anche il vecchio nome, se costruisco dopo averlo modificato in about.json.

Questo accade sia che lo installi manualmente da GitHub nella pagina dei Componenti, sia che lo installi da app.yml.

In conformità con Install a Theme programatically, la fine del mio app.yml è:

## Qualsiasi comando personalizzato da eseguire dopo la compilazione
run:
  - exec: echo "Inizio dei comandi personalizzati"
  ## Se desideri impostare l'indirizzo email 'Da' per la tua prima registrazione, rimuovi il commento e modifica:
  ## Dopo aver ricevuto la prima email di registrazione, reimposta il commento. Deve essere eseguito solo una volta.
  #- 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
  
  # Repository precedenti - sembra che dovremo crearne uno nuovo per ogni commit a causa di un caching strano?

  #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 "Fine dei comandi personalizzati"

E l’output è:

I, [2025-11-12T01:43:24.323446 #1]  INFO -- : > echo "Inizio dei comandi personalizzati"
I, [2025-11-12T01:43:24.325106 #1]  INFO -- : Inizio dei comandi personalizzati

I, [2025-11-12T01:43:24.327203 #1]  INFO -- : File > /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: installato da https://github.com/toad/discourse-new-topic-button.git

Risultati:
 Installati: 1
 Aggiornati:   0
 Errori:    0
 Saltati:   0

I, [2025-11-12T01:43:32.778262 #1]  INFO -- : > echo "Fine dei comandi personalizzati"
I, [2025-11-12T01:43:32.779694 #1]  INFO -- : Fine dei comandi personalizzati

Se non elimino il componente prima di eseguire rebuild, mostra “Aggiornato” invece di “Installato”. In ogni caso, finiamo con la vecchia versione del componente.

Navigare via dalla pagina, shift+ricarica, ecc., non fa alcuna differenza. Spostarlo in un repository diverso non fa alcuna differenza, quindi non è un caching basato sull’URL (due di quei repository sono identici).

Ho anche provato a costruirlo direttamente con rake all’interno del container.

Qualche idea su come potrei debuggarlo? Sarebbe utile poter vedere il log di compilazione, ma rake con --verbose non mi dĂ  ulteriori informazioni.

La mia configurazione è leggermente insolita (sto usando Docker senza root in produzione, anche se questo è il server di staging).

Aiuto?!

Sembra che venga sempre costruito qualcosa prima del commit 990dec4f3e8411215122c74b2684782244eeffa2, che ha spostato New Topic Button al supporto Glimmer, e sarà richiesto per la versione 3.6. Quindi si romperà quando aggiornerò a 3.6; ho cercato di correggere il nostro fork del componente New Topic Button, ma sembra che anche la versione upstream si romperà.

Ancora una volta, cosa posso fare per debuggarlo? :neutral_face:

1 Mi Piace

Il file di compatibilitĂ  installa una versione specifica per le installazioni di Discourse inferiori alla 3.6

3 Mi Piace

Oops! Grazie. :grinning_face:

Interessante però; la roba di Glimmer dovrebbe essere compatibile con 3.5. Quindi la portazione upstream a Glimmer potrebbe essere ancora immatura. Immagino che la proverò, e magari la esaminerò su 3.6. Grazie.

Aggiornamento: falso allarme, sono state aggiunte altre modifiche specifiche per 3.6, ma la versione 3.5 risolve gli avvisi relativi alla rimozione dei widget. Quindi sono contento.

PS: spostare i pulsanti (mio cambiamento) risolve un bug upstream (la categoria non viene rilevata automaticamente). Vedi qui: