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? ![]()