Atualização de componente de tema via rake não está funcionando

Temos um componente de tema que instalamos via o comando rake. O plugin e sua instalação via o comando rake funcionam perfeitamente. A atualização também funciona perfeitamente quando feita pela interface de administração, por exemplo, /admin/customize/themes/40. O problema surge quando tentamos atualizá-lo pela linha de comando com aquele comando rake. A saída é exatamente como eu esperaria. No entanto, as alterações não são refletidas. Isso parece ser um bug?

$ rake themes:install -- '--{"discourse-login-modal": {"url": "https://github.com/example/discourse-login-modal.git", "add_to_all_themes": true}}'
discourse-login-modal: já está instalado. Atualizando do remoto.

Resultados:
 Instalados: 0
 Atualizados:   1
 Erros:    0

Fornecendo mais detalhes sobre o problema. A execução do comando rake para atualização não produziu nenhuma mudança visível no meu componente do tema, mas, após isso, a interface de administração (Admin UI) acreditou que a atualização havia sido aplicada (esqueci de capturar a tela).

Após uma alteração subsequente no meu componente do tema, a Admin UI agora mostra que uma atualização está disponível, mas, ao aplicá-la, recebo um aviso de que minhas alterações locais serão sobrescritas. Essas alterações são exatamente o que eu queria aplicar por meio do comando rake install, que, na verdade, não foi aplicado.


.

Oi @markvanlan, obrigado pelo seu trabalho no comando rake para instalar um tema! Você saberia dizer por que a atualização via rake install não está funcionando?

Vou verificar isso um pouco mais tarde nesta semana. Eu não sabia que o comando rake não estava funcionando.

Não consegui entender por que a atualização não está funcionando, mas pensei em uma solução alternativa: adicionar um comando de desinstalação. Desinstalar o tema antes de usar o comando rake install parece estar funcionando.

Abri um PR curto para verificar se essa abordagem é viável: [WIP] FEATURE: Rake task to uninstall theme by chandandi · Pull Request #10138 · discourse/discourse · GitHub

Peço desculpas por não ter retornado sobre isso!

Tenho uma ideia do motivo pelo qual isso pode não estar sendo atualizado. Se eu estiver correto, isso deve ser uma correção muito rápida.

Algo está muito estranho aqui. Quando ThemesInstallTask atualiza um tema remoto, as informações remotas são atualizadas corretamente (o SHA mais recente é exibido e commits_behind é 0, como você observou)

Mas o SCSS não é atualizado no banco de dados. Eu assumia que se tratava de um problema de invalidação de cache, mas não é esse o caso! O SCSS no banco de dados não está sendo atualizado.


O valor deveria ser diferente nesta captura de tela

Analisando como o controlador de temas do administrador lida com atualizações em comparação com a forma como a tarefa atualiza temas remotos, não vejo nenhuma diferença.

:male_detective: :mag:

Vou chegar ao fundo desse mistério.

Cheguei ao fundo do problema e criei um PR. Explico o problema na descrição.

Mesclado! A atualização foi corrigida.