Atualização do componente de tema sempre instala versão antiga (via rake ou manualmente)

Algo muito semelhante a isso parece ter voltado:

Com o Discourse 3.5.2, sempre que tento instalar um componente específico (a partir do código-fonte), ele sempre instala uma versão antiga dele. Posso confirmar isso exportando: ele contém o JavaScript antigo. Além disso, nas ferramentas de desenvolvedor do navegador, se eu procurar por um arquivo, ele sempre mostra a versão antiga do arquivo. Também mostra o nome antigo, se eu compilar após ter alterado no about.json.

Isso acontece tanto se eu instalar manualmente do GitHub na página de Componentes, quanto se eu instalar a partir do app.yml.

De acordo com Install a Theme programatically, o final do meu app.yml é:

## Quaisquer comandos personalizados para executar após a construção
run:
  - exec: echo "Início dos comandos personalizados"
  ## Se você quiser definir o endereço de e-mail 'De' para seu primeiro registro, descomente e altere:
  ## Após receber o primeiro e-mail de inscrição, re-comente a linha. Ela só precisa ser executada uma vez.
  #- 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
  
  # Repositórios antigos - parece que precisaremos criar um novo para cada commit por causa de algum cache estranho?

  #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 "Fim dos comandos personalizados"

E a saída é:

I, [2025-11-12T01:43:24.323446 #1]  INFO -- : > echo "Início dos comandos personalizados"
I, [2025-11-12T01:43:24.325106 #1]  INFO -- : Início dos comandos personalizados

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

Resultados:
 Instalado: 1
 Atualizado:   0
 Erros:    0
 Pulado:   0

I, [2025-11-12T01:43:32.778262 #1]  INFO -- : > echo "Fim dos comandos personalizados"
I, [2025-11-12T01:43:32.779694 #1]  INFO -- : Fim dos comandos personalizados

Se eu não excluir o componente antes de executar o rebuild, ele mostra “Atualizado” em vez de “Instalado”. De qualquer forma, acabamos com a versão antiga do componente.

Navegar para longe da página, shift+recarregar, etc., não faz nenhuma diferença. Mover para um repositório diferente também não faz diferença, então não é cache por URL (dois desses repositórios são os mesmos).

Também tentei construí-lo diretamente com rake dentro do container.

Alguma ideia de como posso depurar isso? Seria útil poder ver o log da construção, mas o rake com --verbose não me dá mais informações.

Minha configuração é um pouco incomum (estou usando Docker sem root em produção, embora este seja o servidor de staging).

Ajuda?!

Parece que ele sempre constrói algo antes do commit 990dec4f3e8411215122c74b2684782244eeffa2, que moveu o New Topic Button para suporte Glimmer, e será necessário para a versão 3.6. Isso quebrará quando eu atualizar para 3.6; tenho tentado corrigir nosso fork do componente New Topic Button, mas parece que até a versão upstream também quebrará.

Mais uma vez, o que posso fazer para depurar isso? :neutral_face:

1 curtida

O arquivo de compatibilidade instala uma versão específica para instalações do Discourse abaixo da versão 3.6

3 curtidas

Ops! Obrigado. :grinning_face:

Interessante, porém; o material do Glimmer deveria ser compatível com a 3.5. Então, a porta upstream para o Glimmer pode estar imatura. Acho que vou testar, e talvez dar uma olhada na 3.6. Obrigado.

Atualização: alarme falso, foram adicionadas mais alterações específicas da 3.6, mas a versão 3.5 corrige os avisos sobre a remoção de widgets. Então estou satisfeito.

PS: mover os botões (minha alteração) resolve um bug upstream (categoria não detectada automaticamente). Veja aqui: