A partir de hoje, todas as novas instalações auto-hospedadas do Discourse passarão a usar, por padrão, nossas compilações do Ember CLI em produção.
Temos executado essas compilações em produção há bastante tempo e elas devem ser estáveis e funcionar com todos os principais plugins. Se você encontrar algum problema e precisar desativar essa funcionalidade, edite seu app.yml e remova EMBER_CLI_PROD_ASSETS: 1.
Caso contrário, por favor, reporte qualquer bug para nós e resolveremos rapidamente.
Em um futuro próximo, todas as instalações do Discourse utilizarão as compilações do Ember CLI.
Sim, @Simon_Manning está correto — você pode ativá-lo manualmente se desejar, ou pode aguardar até que ele se torne o padrão. Estamos implementando-o gradualmente para tentar identificar todos os bugs com antecedência.
Browserslist: caniuse-lite está desatualizado. Por favor, execute:
npx browserslist@latest --update-db
Por que você deve fazer isso regularmente:
https://github.com/browserslist/browserslist#browsers-data-updating
Estou super animado com essa mudança e ela é ótima para o futuro do Discourse.
Recomendo apenas o seguinte: se você estiver usando componentes de temas ou plugins de terceiros, por favor, crie uma instância de teste separada com o mesmo conjunto e verifique tudo lá antes de migrar para o Ember CLI no seu site principal.
Acabei de lançar algumas alterações significativas em um dos meus Componentes de Tema, sem as quais o site principal teria quebrado.
A versão resumida é: esta é a maneira oficialmente suportada de desenvolver aplicações Ember e deve facilitar a contribuição de pessoas e nossa atualização do Ember no futuro.
É verdade que os únicos componentes de tema provavelmente afetados por essa alteração são aqueles que contêm JavaScript do Wyeth?
Existe uma maneira fácil de fazer uma consulta para encontrar os componentes de tema que incluem JavaScript? Seja pelo Data Explorer ou uma consulta Rails? Gostaria de ter uma forma de identificar quais sites provavelmente serão impactados por isso e oferecer meu novo produto (gratuitamente, para que finalmente possa conseguir alguns testadores) para que eles instalem um ambiente de staging e realizem um teste antes de atualizar seu site de produção.
Isso é verdade — essa mudança no Ember CLI não afeta as partes HTML ou CSS dos temas/componentes.
Em geral, você pode identificar componentes de tema problemáticos procurando por avisos de descontinuação em amarelo no console de JavaScript do navegador, no antigo ambiente não baseado no Ember CLI. (A migração para o Ember CLI é a razão pela qual temos introduzido essas descontinuações.)
A Meta vem usando o Ember CLI há várias semanas e tem trabalhado para garantir que todos os nossos temas e plugins oficiais estejam funcionando no novo ambiente.
Ok. Então, se eu fizer um pull de /admin/customize/themes.json (ou seja lá qual for o caminho real), ele terá avisos. Achamos que é provável que haja falsos negativos (ou seja, sem avisos, mas falhará ao fazer a atualização)?
Ah, e se falhar, você só precisa desativar a variável de ambiente.
Para plugins, se estou vendo avisos de descontinuação no console do JavaScript, finalmente terei que descobrir o que significam? Parece que eles estavam vindo de componentes que eu estava usando e não do meu código, mas Ember e JavaScript ainda são bastante misteriosos para mim (apesar de ter bastante código que eu, pelo menos, escrevi em grande parte).
Não, os avisos de descontinuação aparecem em tempo de execução no console do seu navegador. Eles não aparecerão na API REST do tema.
Por enquanto, você pode fazer isso. Mas pretendemos tornar isso o padrão não opcional muito em breve, então a melhor solução é corrigir a causa raiz.
Sim, temo que sim. Se você acha que eles estão vindo de componentes principais ou está com dificuldade para encontrar o motivo, por favor, abra um tópico em Dev com os detalhes.
Ha. Se você tiver sorte. Se não tiver tanta sorte, receberá um erro completo e uma interrupção total da execução do JavaScript. O que pode resultar em páginas em branco ou corrompidas.
Até agora, encontrei vários problemas, mas principalmente a perda de alguns atributos do objeto Discourse e, portanto, você tem que encontrar uma maneira diferente de acessar os atributos do site e do usuário. (Dica: estes são acessíveis dentro dos componentes. Você pode ver o trabalho que fiz recentemente no TLP TC)