Site quebrado devido à atualização do ember 5

MUITO CEDO!

Eu perdi completamente o anúncio desta mudança porque ela se misturou com as férias de inverno, e como hobbyista, eu não leio este fórum com muita frequência. Só notei quando a atualização de hoje quebrou o site. Agora não tenho como voltar porque EMBER_VERSION já está desativado, e não tenho como avançar para corrigir o que quer que precise ser corrigido porque não consigo ver os avisos de depreciação (que não apareceram da última vez que precisei fazer manutenção ativa, antes das férias), nem que eu saiba muito sobre Ember de qualquer maneira.

Isso está seriamente me fazendo considerar extrair o banco de dados e mudar para uma solução de fórum diferente, uma onde a versão padrão é realmente segura para usar por hobbyistas que não podem ficar de olho nos fóruns de desenvolvimento como um falcão.

Alguém consegue pensar em outra solução, dado que eu não tenho ideia do que está quebrando o Ember 5 ou por quê? O console Javascript não é útil.

2 curtidas

Na verdade, o console JavaScript é geralmente muito útil.

Talvez você preferisse stable, mas agora é um pouco tarde, eu aprecio.

Sugiro remover todas as suas personalizações e, talvez, usar uma instância de staging, recolocá-las uma por uma e descobrir quais estão causando os problemas e descartá-las ou trabalhar nelas.

Muitos plugins populares e componentes de tema já estão em conformidade.

2 curtidas

Ele apenas diz “Ember not found”, a tela é um ícone de carregamento infinito.

Instalei a versão padrão do Discourse, a versão padrão da Digital Ocean. Em nenhum momento me perguntaram qual branch eu queria, e eu assumi que isso me colocaria em uma versão LTS. Ter um recurso que quebra funcionalidades sendo lançado e depois tornado obrigatório em menos de 2 meses NÃO é o que considero LTS; no WordPress ou Linux, você nem faria isso para lançamentos não-LTS. Por favor, mude isso para todas as novas instâncias da DigitalOcean e coloque um aviso de que os hobbyistas devem ficar longe.

Você vai odiar esta resposta, mas a DO faz o que a DO quer e está fora do alcance de outros. Então você deveria perguntar isso a eles.

E em todos os lugares fora da DigitalOcean, sempre se alerta para não usar a instalação deles.

3 curtidas

Pelo erro no console, você geralmente pode descobrir de qual componente do tema o erro foi emitido. Você pode colar o erro completo aqui (expandindo o erro), ou se for possível, você se importaria de compartilhar o URL do seu fórum aqui (ou por mensagem privada, se preferir)?

3 curtidas

Você precisa conversar com a DO então :slight_smile:

Dito isso, na instalação padrão (não a versão da DO) tests-passed (o padrão) não é LTS, stable é. Acredito que a CDCK tenta incentivar isso como padrão porque aproveita a comunidade para testar a versão mais recente. Acho que isso é uma compensação razoável por obter software gratuito? Mas você tem a escolha.

2 curtidas

O modo de segurança pode ajudar. Talvez você possa simplesmente desativar os temas que estão com defeito.

Vejo que fiz algo por você há alguns anos. Eu ia ver se conseguia encontrar uma solução rápida, mas não tenho mais uma conta no seu site.

3 curtidas

O modo de segurança deve funcionar, de qualquer forma, você já tentou isso, então você pode isolar o tema ou plugin do problema

É muito difícil ajudar sem nenhuma informação extra

Quais temas você está usando? Quais plugins? Qual deles está quebrado?

3 curtidas

Olá @Judith

Sinto muito que isso tenha sido uma surpresa para você. :cry: Separei isso em um tópico dedicado para que possamos nos concentrar em colocá-la de volta em funcionamento novamente.

Você fez algum progresso? :crossed_fingers:

3 curtidas

Obrigado a todos!

Identifiquei os plugins com defeito como os responsáveis por enviar notificações push do Discourse para iPhones (onde o método padrão do Discourse não funciona), nomeadamente o GitHub - featheredtoast/discourse-pushover-notifications: Pushover notifications for Discourse de @featheredtoast, bem como o meu GitHub - Sprachprofi/discourse-fcm-notifications: Send Discourse push notifications through FCM to any custom app. O código Ember é idêntico em ambos e muito simples, apenas alguns campos extras no admin e um campo extra no perfil do usuário, com verificações se as notificações push já estão ativas ou não. Dado que a aposentadoria do switch EMBER_VERSION significa que não consigo ver avisos de depreciação ou mensagens de erro que possam me ajudar a reduzir qual dessas poucas linhas é um problema, pedi ao Github Copilot conselhos sobre o que pode ter mudado entre Ember 3 e Ember 5 e estou tentando essas sugestões. Se você tiver ideias, estou ouvindo.

Deixe-me apenas reiterar que esta não é a forma como uma alteração drástica deve ser implementada e estou profundamente decepcionado com o Discourse. Várias políticas que vão contra toda a sabedoria:

  • colocar pessoas não técnicas na versão tests-passed em vez da LTS por padrão
  • agravar isso ao não mencionar sequer a possibilidade de se colocar em uma versão mais estável no guia de instalação oficial; é conhecido apenas por insiders do fórum que presumivelmente precisam menos disso
  • impossibilitar a reversão para uma versão anterior e funcional
  • agravar isso também garantindo que a compatibilidade retroativa do projeto seja inferior a dois meses, através da remoção deliberada da flag EMBER_VERSION. Outros projetos têm compatibilidade retroativa de um ano, e esses são projetos onde também é possível reverter para versões mais antigas.
2 curtidas

Para seu próprio plugin, acho que o (único?) problema é que você está usando um global do Ember

export default Ember.Component.extend({

que deve ser reestruturado para

import Component from "@ember/component";
export default Component.extend({

(Seria ainda melhor reestruturá-lo para a sintaxe de classe, mas isso não é necessário para colocar seu site de volta em funcionamento)

O ChatGPT é capaz de identificar coisas como essa, aliás.

4 curtidas

Sim, concordo com o @RGJ. Com base no erro ‘Ember not found’ mencionado acima, o problema mais provável é a depreciação do ‘ember-global’. Mais detalhes sobre isso aqui (linkado do anúncio original). Nesses plugins, parece que isso está sendo usado para Ember.Component, e também para algumas chamadas Ember.computed.*.

Aqui estão algumas Pull Requests rápidas. É possível que existam outros problemas que se revelarão após a correção, mas não vejo nada óbvio ao analisar o código JS.

Obrigado pelo feedback sobre o processo de lançamento! Estamos constantemente trabalhando para encontrar o equilíbrio certo entre progresso e estabilidade. Definitivamente, levaremos o que aprendemos com este lançamento e o aplicaremos em futuros projetos de atualização/refatoração.

10 curtidas

Obrigado @david! Desativei as Notificações Pushover por enquanto para reduzir o espaço de erro e puxei a versão mais recente do plugin Discourse FCM Notifications, mas uma nova compilação ainda me dá o erro “Ember not defined”.

Para constar, a sugestão do Copilot foi:

A parte sobre set / setProperties parece estar errada - verifiquei que essas funções ainda existem no Ember 5. Mudar this._super para super também não funcionou, deu uma mensagem de erro durante a compilação. A sintaxe computed também mudou agora, atualmente não é nem a original nem a que o Copilot recomendou. Então, estou sem ideias do que mais pode ter mudado no Ember 5. Eu não uso Ember em nenhum dos meus outros projetos.

Mais alguma ideia?

3 curtidas

Desculpe, foi falha minha - deixei passar um detalhe :facepalm:. Isso deve resolver: Fixup Ember.Component usage by davidtaylorhq · Pull Request #2 · Sprachprofi/discourse-fcm-notifications · GitHub

Sim, acho que a IA pode ter dificuldade em diferenciar entre novos padrões não essenciais (coisas como sintaxe de classe nativa, this.set/get, etc.) e correções de depreciação essenciais. As sugestões da IA ainda podem ser úteis, mas apenas se você tiver contexto suficiente para saber o que confiar/ignorar.

Pessoalmente, eu sempre iria a uma fonte autoritativa como \u003chttps://deprecations.emberjs.com/v3.x\u003e primeiro.

7 curtidas

O site está no ar novamente! Muito obrigado por me ajudar a consertar isso em tempo real!!! Eu realmente aprecio.

@featheredtoast, por favor, aceite também o pull request para que os fóruns que usam notificações Pushover também possam ser atualizados com segurança.

5 curtidas

As correções de notificação do Pushover também foram mescladas a partir de hoje :white_check_mark:

9 curtidas

Este tópico foi fechado automaticamente após 3 dias. Novas respostas não são mais permitidas.