# Preparando-se para a atualização do Discourse para Ember 5

**URL:** https://meta.discourse.org/t/preparing-for-discourses-upgrade-to-ember-5/287211
**Category:** Announcements
**Created:** [7 Dezembro , 2023 13:50 UTC](https://meta.discourse.org/t/preparing-for-discourses-upgrade-to-ember-5/287211 "2023-12-07T13:50:32Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![david](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/david/32/157490_2.png) [@david](https://meta.discourse.org/u/david)
#### Post date: [7 Dezembro , 2023 13:50 UTC](https://meta.discourse.org/t/preparing-for-discourses-upgrade-to-ember-5/287211/1 "2023-12-07T13:50:32Z")

</div>

O Discourse em breve atualizará nossa versão do framework Javascript Ember da versão 3 para a versão 5. A grande maioria do trabalho de preparação está concluída, e muitos sites já estão rodando em Ember 5 (incluindo o Meta!). :ember:

Esta atualização está disponível atrás de uma flag de recurso agora! Esta é a configuração padrão para instalações auto-hospedadas do Discourse a partir de 10 de janeiro. Inicialmente, o suporte ao Ember 3 permanecerá disponível através de uma flag, mas será removido no primeiro trimestre de 2024.

Em nossa hospedagem gerenciada [discourse.org](http://discourse.org), faremos uma implementação gradual da flag nos próximos meses:

| :discourse: Nível de hospedagem [discourse.org](http://discourse.org) | Data de Upgrade |
| --- | --- |
| Básico | 2023-12-07 ✅ |
| Grátis | 2023-12-12 ✅ |
| Pro | 2024-01-15 ✅ |
| Business | 2024-01-22 ✅ |
| Enterprise | (caso a caso) |

## 👀 O que isso significa para mim e meu site?

Se você está rodando o Discourse sem temas, plugins ou componentes de tema extras… você está pronto! Não precisa fazer nada, ou se preocupar com isso.

Da mesma forma, se você usa apenas temas/plugins oficiais, nós cuidamos de você! Garantiremos que todos os nossos temas, componentes de tema e plugins oficiais estejam preparados e prontos para a atualização.

Para aqueles que usam personalizações de terceiros, seus desenvolvedores devem fazer as alterações necessárias para que você possa continuar a usá-los sem problemas durante esta transição.

No entanto, se você tem temas, componentes de tema ou plugins personalizados que criou ou encomendou para seus sites, este post é para você! Abordaremos como identificar e resolver quaisquer problemas antes da atualização.

## 🧐 Identificando problemas

Todos os problemas de atualização relacionados ao ember-5 podem ser identificados antes da atualização verificando o uso de APIs obsoletas. Nas versões recentes do Discourse (a partir do Discourse 3.2.0.beta4-dev), essas depreciações críticas acionarão um banner de aviso para administradores:

 ![Warning banner](https://global.discourse-cdn.com/meta/original/4X/5/4/6/546cb493f90802ed9aa7cd5aac47d1c4077d1d5b.png)

Você pode encontrar mais informações sobre depreciações acionadas no console do desenvolvedor do navegador. Geralmente, é uma boa prática resolver todas as depreciações que você vê. Mas para esta atualização de versão do Ember, as principais a serem resolvidas são:

- `discourse.modal-controllers` (veja [este tópico para mais informações](https://meta.discourse.org/t/converting-modals-from-legacy-controllers-to-new-dmodal-component-api/268057))

- todas as depreciações do Ember (ou seja, aquelas com IDs que não são `-discourse.`)

Ao imprimir depreciações no console, o Discourse tenta identificar o tema/plugin relevante.

Para desenvolvedores e provedores de hospedagem, disponibilizamos algumas ferramentas para identificar depreciações em massa:

- Ao executar testes QUnit, um relatório é impresso no final com uma lista de todas as depreciações não resolvidas. No GitHub actions, uma versão em markdown disso é adicionada à página de resumo do workflow.

- Para provedores de hospedagem, temos o plugin [discourse-deprecation-collector](https://github.com/discourse/discourse-deprecation-collector) que incrementa contadores prometheus sempre que depreciações são atingidas em produção.

## 🧑‍💻 Resolvendo depreciações

Geralmente, a mensagem do console incluirá uma descrição do problema e as etapas necessárias para resolvê-lo. Em alguns casos, eles fornecerão links para recursos externos como o site [Ember deprecations](https://deprecations.emberjs.com/) ou o Discourse Meta.

Se algo não estiver claro, sinta-se à vontade para postar abaixo ou em um tópico dedicado de #Dev e faremos o nosso melhor para ajudar.

## 🚀 Testando no Ember 5

Para testar no Ember 5 em um ambiente de desenvolvimento local, você pode iniciar nosso helper ember-cli com a variável de ambiente EMBER\_VERSION. Por exemplo:

```plaintext
EMBER_VERSION=5 bin/ember-cli -u

```

Para confirmar que as coisas estão funcionando como esperado, verifique a versão do Ember que o Discourse imprime no console do navegador.

Em produção, você pode conseguir o mesmo adicionando `EMBER_VERSION: 5` à seção `env:` do seu arquivo `app.yml`.

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [7 Dezembro , 2023 14:04 UTC](https://meta.discourse.org/t/preparing-for-discourses-upgrade-to-ember-5/287211/3 "2023-12-07T14:04:29Z")

</div>

Parabéns equipe, isso deve ter dado MUITO trabalho! 😅

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [7 Dezembro , 2023 14:06 UTC](https://meta.discourse.org/t/preparing-for-discourses-upgrade-to-ember-5/287211/4 "2023-12-07T14:06:14Z")

</div>

> [@david](#):
>
> Na produção, você pode conseguir a mesma coisa adicionando `EMBER_VERSION: 5` à seção `env:` do seu arquivo `app.yml`.

David, presumo que isso seja totalmente reversível com uma reversão desse atributo e uma reconstrução?

---

<div class="post-metadata">

### Author: ![david](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/david/32/157490_2.png) [@david](https://meta.discourse.org/u/david)
#### Post date: [7 Dezembro , 2023 14:06 UTC](https://meta.discourse.org/t/preparing-for-discourses-upgrade-to-ember-5/287211/5 "2023-12-07T14:06:52Z")

</div>

Sim, totalmente reversível 👍

---

<div class="post-metadata">

### Author: ![haydenjames](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/haydenjames/32/255678_2.png) [@haydenjames](https://meta.discourse.org/u/haydenjames)
#### Post date: [7 Dezembro , 2023 14:16 UTC](https://meta.discourse.org/t/preparing-for-discourses-upgrade-to-ember-5/287211/6 "2023-12-07T14:16:04Z")

</div>

Bom trabalho, pessoal. Como encontro uma lista de temas/componentes oficialmente suportados? Consegui descobrir que 3 ou 4 dos meus componentes de plugin são oficiais. (A tag “oficial” está listada no tópico)

Mas para o 4º, só consegui encontrar este URL: [GitHub - discourse/discourse-full-width-component: Make Discourse occupy the full browser width](https://github.com/discourse/discourse-full-width-component)

Como posso saber se é oficial / não vai quebrar a atualização?

Editar: parece que posso filtrar aqui: [Topics tagged official](https://meta.discourse.org/tags/c/theme-component/120/all/official)

Em seguida, procure um tema específico na lista. Anteriormente, tentei pesquisar no canto superior direito dos fóruns.

Quando pesquiso a lista de tópicos, ela não é listada, mas vejo funcionários como contribuidores do GitHub:

 ![IMG_4652](https://global.discourse-cdn.com/meta/original/4X/2/1/a/21a971684b444db2c100e805c600b3aed6f46c8e.jpeg)

---

<div class="post-metadata">

### Author: ![david](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/david/32/157490_2.png) [@david](https://meta.discourse.org/u/david)
#### Post date: [7 Dezembro , 2023 14:20 UTC](https://meta.discourse.org/t/preparing-for-discourses-upgrade-to-ember-5/287211/7 "2023-12-07T14:20:10Z")

</div>

Como um guia muito geral, se o URL começar com `github.com/discourse/`, nós cuidaremos disso. No caso do `discourse-full-width-component`, não vejo motivo para preocupação - ele deve funcionar bem com o Ember 5.

---

<div class="post-metadata">

### Author: ![EricGT](https://avatars.discourse-cdn.com/v4/letter/e/f1d935/32.png) [@EricGT](https://meta.discourse.org/u/EricGT)
#### Post date: [7 Dezembro , 2023 14:27 UTC](https://meta.discourse.org/t/preparing-for-discourses-upgrade-to-ember-5/287211/8 "2023-12-07T14:27:02Z")

</div>

> [@david](#):
>
> muitos sites já estão rodando no Ember 5

Existe uma maneira de saber se um site hospedado no Discourse em que sou administrador está rodando o Ember 5?

Dei uma olhada na página de administração e não vi nenhuma indicação disso. O site em que sou administrador é

> **[SWI-Prolog](https://swi-prolog.discourse.group/)**
>
> SWI-Prolog forum

---

<div class="post-metadata">

### Author: ![david](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/david/32/157490_2.png) [@david](https://meta.discourse.org/u/david)
#### Post date: [7 Dezembro , 2023 14:30 UTC](https://meta.discourse.org/t/preparing-for-discourses-upgrade-to-ember-5/287211/9 "2023-12-07T14:30:10Z")

</div>

No momento, o Ember 5 está rodando no Meta e em nosso nível básico de hospedagem.

Nas versões recentes do Discourse, imprimimos as informações da versão atual no console. Portanto, você pode abrir o console de ferramentas do desenvolvedor e verificar a primeira linha:

 ![SCR-20231206-jiag](https://global.discourse-cdn.com/meta/original/4X/a/7/a/a7a2148a936202586481f14bd66420c6aa828830.png)

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [7 Dezembro , 2023 14:40 UTC](https://meta.discourse.org/t/preparing-for-discourses-upgrade-to-ember-5/287211/11 "2023-12-07T14:40:28Z")

</div>

Você tem acesso às ferramentas de desenvolvedor em todos os sites da internet! No Windows/Linux no Chrome, você pode pressionar a tecla F12. Para Mac, está em . . . algum menu.

---

<div class="post-metadata">

### Author: ![EricGT](https://avatars.discourse-cdn.com/v4/letter/e/f1d935/32.png) [@EricGT](https://meta.discourse.org/u/EricGT)
#### Post date: [7 Dezembro , 2023 14:43 UTC](https://meta.discourse.org/t/preparing-for-discourses-upgrade-to-ember-5/287211/12 "2023-12-07T14:43:02Z")

</div>

Obrigado.

Eu estava pensando que significava o console do Discourse ao qual se tem acesso se você instalar o site no prompt de comando do sistema operacional.

* * *

Passos

1. Abra o navegador de Internet (Chrome para este exemplo)
2. Navegue até o site do Discourse ([https://swi-prolog.discourse.group/](https://swi-prolog.discourse.group/) para este exemplo)
3. Pressione F12
4. Se a aba `Console` no topo não estiver ativa, selecione a aba `Console`.
5. A primeira linha deve indicar a versão do Ember.

 ![image](https://global.discourse-cdn.com/meta/original/4X/1/3/2/132c135ae42e71c8ae73545045637e8e8ee8450d.png)

---

<div class="post-metadata">

### Author: ![Jagster](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jagster/32/192154_2.png) [@Jagster](https://meta.discourse.org/u/Jagster)
#### Post date: [7 Dezembro , 2023 15:24 UTC](https://meta.discourse.org/t/preparing-for-discourses-upgrade-to-ember-5/287211/13 "2023-12-07T15:24:21Z")

</div>

E se alguém estiver tentando fazer coisas no iPad, o console pode ser encontrado (apenas no Safari) por meio de um aplicativo:

[https://apps.apple.com/app/id1064318327](https://apps.apple.com/app/id1064318327)

Ah, não está mais disponível. Que pena.

---

<div class="post-metadata">

### Author: ![Lilly](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/lilly/32/575047_2.png) [@Lilly](https://meta.discourse.org/u/Lilly)
#### Post date: [12 Dezembro , 2023 12:31 UTC](https://meta.discourse.org/t/preparing-for-discourses-upgrade-to-ember-5/287211/14 "2023-12-12T12:31:06Z")

</div>

> [@david](#):
>
> Nas versões recentes do Discourse, imprimimos as informações da versão atual no console. Então você pode abrir o console de ferramentas do desenvolvedor e verificar a primeira linha:

Adorei essa adição. Ótimo trabalho nisso, David e equipe ModernJS. 🚀

> [@pfaffman](#):
>
> Para Mac, está em . . . algum menu.

heh. você pode rodar o Chrome no MacOS e as ferramentas do desenvolvedor são as mesmas. É o iOS e as telas sensíveis ao toque que tornam difícil/quase impossível de usar (ou seja, o iPad no modo desktop tem um inspetor web, mas não é ideal).

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [12 Dezembro , 2023 21:57 UTC](https://meta.discourse.org/t/preparing-for-discourses-upgrade-to-ember-5/287211/15 "2023-12-12T21:57:43Z")

</div>

> [@Lilly](#):
>
> você pode rodar o Chrome no MacOS e as ferramentas de desenvolvedor são as mesmas

Pressionando F12? Eu pensei que sabia que isso não funcionava.

---

<div class="post-metadata">

### Author: ![Lilly](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/lilly/32/575047_2.png) [@Lilly](https://meta.discourse.org/u/Lilly)
#### Post date: [12 Dezembro , 2023 22:00 UTC](https://meta.discourse.org/t/preparing-for-discourses-upgrade-to-ember-5/287211/16 "2023-12-12T22:00:46Z")

</div>

optioncommandJ

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [12 Dezembro , 2023 22:18 UTC](https://meta.discourse.org/t/preparing-for-discourses-upgrade-to-ember-5/287211/17 "2023-12-12T22:18:24Z")

</div>

Não sei como isso é mais difícil de lembrar do que F12. Ambos são praticamente indescobríveis, no entanto. E talvez procurar em um menu, como eu sugeri, não ajudaria.

---

<div class="post-metadata">

### Author: ![Lilly](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/lilly/32/575047_2.png) [@Lilly](https://meta.discourse.org/u/Lilly)
#### Post date: [12 Dezembro , 2023 22:20 UTC](https://meta.discourse.org/t/preparing-for-discourses-upgrade-to-ember-5/287211/18 "2023-12-12T22:20:11Z")

</div>

`option command J` deve ser fácil de lembrar para _você_ 😆

---

<div class="post-metadata">

### Author: ![david](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/david/32/157490_2.png) [@david](https://meta.discourse.org/u/david)
#### Post date: [13 Dezembro , 2023 00:15 UTC](https://meta.discourse.org/t/preparing-for-discourses-upgrade-to-ember-5/287211/19 "2023-12-13T00:15:40Z")

</div>

Meu preferido é sempre [clique com o botão direito] [inspecionar elemento] - acho que isso é consistente para todos os navegadores/sistemas operacionais

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [13 Dezembro , 2023 00:19 UTC](https://meta.discourse.org/t/preparing-for-discourses-upgrade-to-ember-5/287211/20 "2023-12-13T00:19:39Z")

</div>

> [@Lilly](#):
>
> `option command J` deve ser fácil de _você_ lembrar 😆

Certo!

> [@david](#):
>
> Meu atalho é sempre [clique com o botão direito] [inspecionar elemento] - acho que isso é consistente para todos os navegadores/sistemas operacionais

Ah. Isso é fácil e sempre funciona. Bom. E me poupa um monte de cliques, já que é isso que você quer fazer com tanta frequência. Claro, parece que eu sequestrei este #announcements. Desculpe.

---

<div class="post-metadata">

### Author: ![damienalexandre](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/damienalexandre/32/293019_2.png) [@damienalexandre](https://meta.discourse.org/u/damienalexandre)
#### Post date: [13 Dezembro , 2023 15:46 UTC](https://meta.discourse.org/t/preparing-for-discourses-upgrade-to-ember-5/287211/21 "2023-12-13T15:46:18Z")

</div>

Sei que isso vai me custar algum tempo de desenvolvimento 😬 (nova barra lateral, remoção de selos de categoria… é bem frequente - ter um tema personalizado é caro!).

Existe alguma maneira de atualizar para o Ember 5 no meu fórum sem quebrar tudo em produção? Estou no **Plano Business** hospedado.

- Obrigado pelas informações e pelas mensagens de deprecação, de qualquer forma. Mas ao corrigir a deprecação, tenho que codificar meu tema tanto para Ember 3 quanto para Ember 5?
- Temos a opção de atualizar ou não? Ou vocês são os únicos a decidir?

Algum tipo de ambiente “preprod” ou “teste” seria bom, eu acho.

---

<div class="post-metadata">

### Author: ![david](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/david/32/157490_2.png) [@david](https://meta.discourse.org/u/david)
#### Post date: [13 Dezembro , 2023 17:35 UTC](https://meta.discourse.org/t/preparing-for-discourses-upgrade-to-ember-5/287211/22 "2023-12-13T17:35:20Z")

</div>

Olá Damien 👋.

> [@damienalexandre](#):
>
> ao corrigir a depreciação, tenho que codificar meu tema para Ember 3 e Ember 5?

O Discourse e o Ember só depreciam coisas quando há uma alternativa disponível para uso imediato. Portanto, se houver alguma alteração que você precise fazer, ela poderá ser feita imediatamente e funcionará com o Ember 3.

Essa é a abordagem que estamos adotando no core do Discourse e em todos os nossos temas e plugins oficiais. Não estamos criando código separado para Ember 3 / Ember 5.

> [@damienalexandre](#):
>
> Temos a opção de atualizar ou não? Ou você é o único a decidir?

Receio que não seja opcional. Manter as dependências do core do Discourse atualizadas é essencial para nós em termos de segurança, desempenho e recursos. Os recursos que o Ember 5 oferece se tornarão essenciais para futuras melhorias no próprio Discourse.

> [@damienalexandre](#):
>
> Existe uma maneira de usar o Ember 5 no meu fórum sem quebrar tudo em produção? Estou no **Plano Business** hospedado.

Essa é uma boa pergunta! Estamos trabalhando muito no momento para tornar essa transição o mais tranquila possível e estamos desenvolvendo várias melhorias nas ferramentas.

Uma dessas melhorias foi implementada há algumas horas e deve ajudá-lo aqui.

> <https://github.com/discourse/discourse/pull/24870>
>
> This commit adds an additional toggle to our safe-mode system. When enabled, it …will cause all deprecation messages to become exceptions. This gives admins a way to test their themes/plugins against upcoming Discourse changes without needing to use the browser developer tools.
> 
> \<img width="1098" alt="SCR-20231213-mibn" src="https://github.com/discourse/discourse/assets/6270921/f456cf26-60c1-4f8b-84c9-540fe4974e37"\>

Se você acessar `/safe-mode` em seu fórum, agora haverá uma caixa de seleção para “Fazer com que as depreciações de Javascript gerem um erro”.

 ![SCR-20231213-pjrd](https://global.discourse-cdn.com/meta/original/4X/3/5/6/3564a28caef77a9d416bcf6d5be1a0fccc01b534.png)

Isso permitirá que você veja com segurança como seu site funciona com todas as depreciações pendentes convertidas em erros.

_Tecnicamente_, isso não é exatamente o mesmo que “Testar o Ember 5 no fórum”. Mas é uma boa maneira de simular as próximas alterações que quebram a compatibilidade sem a necessidade de um ambiente de staging totalmente separado.

[Próxima página](https://meta.discourse.org/t/preparing-for-discourses-upgrade-to-ember-5/287211.md?page=2)
