Contexto
Essencialmente, se você estiver usando algo como {{foo}} em um template Handlebars para referenciar uma propriedade no controller/componente, ela precisará ser atualizada para {{this.foo}}.
Informações upstream: Property Fallback Lookup | Ember.js - Deprecations
Para que o Discourse passe pela atualização do Ember 4.x, introduzimos um shim de retrocompatibilidade para que temas e plugins não precisassem apressar essa mudança. No entanto, não é viável manter esse shim indefinidamente, então precisamos que temas e plugins sejam atualizados para a sintaxe moderna.
Depreciação
Na versão mais recente do Discourse, o uso da sintaxe legada causará a exibição de uma mensagem de depreciação no console. Ela se parecerá com algo assim:
DEPRECATION: [PLUGIN discourse-calendar] O caminho da propriedade `loading` foi usado no template `discourse/plugins/discourse-calendar/discourse/templates/admin-plugins-calendar.hbs` sem usar `this`. Esse comportamento de fallback foi depreciado, todas as propriedades devem ser procuradas em `this` quando usadas no template: {{this.loading}}
Assim como em qualquer outra depreciação, aumentaremos gradualmente a visibilidade deste aviso, até que eventualmente removamos o shim de retrocompatibilidade. Estamos visando provisoriamente o segundo trimestre de 2025 para a remoção final, mas ajustaremos isso com base em dados do mundo real.
Atualizando seu código
Para temas/plugins pequenos, você pode atualizar os templates manualmente para adicionar this. antes de qualquer nome de propriedade.
Para facilitar a transição para temas/plugins maiores, introduzimos uma nova regra do ember-template-lint que inclui um auto-corretor.
Portanto, se você usar a versão mais recente de nossa configuração de linting padrão (conforme o esqueleto do plugin e o esqueleto do tema), todo o código afetado será atualizado automaticamente na próxima vez que você executar ember-template-lint --fix.
Se tiver alguma dúvida/preocupação, por favor, nos avise abaixo!