# Como obter de forma confiável e programática o número da versão mais recente do Discourse?

**URL:** https://meta.discourse.org/t/how-to-reliably-programmatically-get-the-latest-version-number-of-discourse/388336
**Category:** Development
**Created:** [13 Novembro , 2025 02:23 UTC](https://meta.discourse.org/t/how-to-reliably-programmatically-get-the-latest-version-number-of-discourse/388336 "2025-11-13T02:23:56Z")
**Posts on this page:** 11
**Page:** 1

<div class="post-metadata">

### Author: ![FelicianoTech](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/felicianotech/32/120007_2.png) [@FelicianoTech](https://meta.discourse.org/u/FelicianoTech)
#### Post date: [13 Novembro , 2025 02:23 UTC](https://meta.discourse.org/t/how-to-reliably-programmatically-get-the-latest-version-number-of-discourse/388336/1 "2025-11-13T02:23:56Z")

</div>

Como talvez para muitos projetos de código aberto, eu estava procurando por lançamentos no GitHub. [Alguém teve a mesma ideia que eu](https://meta.discourse.org/t/releases-on-github-disappeared/206917?u=felicianotech) e também descobriu que o Discourse não tem Lançamentos no GitHub (mais).

Minha próxima tentativa foi usar tags git no GitHub, que seria a próxima melhor coisa. A partir de hoje, a tag mais recente no GitHub é `v3.6.0.beta2`. Dando uma olhada na página de administração da minha própria instância do Discourse, estou executando `v3.6.0.beta3`. Isso significa que não apenas o lançamento mais recente do Discourse não está marcado no GitHub, mas o próprio Discourse (o software) não deve estar usando tags do GitHub como forma de saber quando há um novo lançamento.

Lembrei-me que minha instalação está rodando em Docker, então decidi seguir essa pista até onde as imagens do Discourse são hospedadas no Docker Hub. Existem algumas convenções de nomenclatura sendo usadas como tags lá (como `2.0.20251113-0018-web-only-stable`), nenhuma que pareça correlacionada ao formato v.X.Y.Z que o Discourse usa publicamente.

* * *

Então, alguém tem alguma recomendação sobre como fazer isso?

---

<div class="post-metadata">

### Author: ![elmuerte](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/elmuerte/32/456517_2.png) [@elmuerte](https://meta.discourse.org/u/elmuerte)
#### Post date: [13 Novembro , 2025 06:21 UTC](https://meta.discourse.org/t/how-to-reliably-programmatically-get-the-latest-version-number-of-discourse/388336/2 "2025-11-13T06:21:44Z")

</div>

A versão usada para exibição é definida em `Discourse::VERSION::String`, que é uma constante codificada:

> <https://github.com/discourse/discourse/blob/main/lib/version.rb>

---

<div class="post-metadata">

### Author: ![Moin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/moin/32/554653_2.png) [@Moin](https://meta.discourse.org/u/Moin)
#### Post date: [13 Novembro , 2025 06:50 UTC](https://meta.discourse.org/t/how-to-reliably-programmatically-get-the-latest-version-number-of-discourse/388336/3 "2025-11-13T06:50:42Z")

</div>

> [@FelicianoTech](#):
>
> . Atualmente, a última tag no GitHub é `v3.6.0.beta2`. Dando uma olhada na página de administração da minha própria instância do Discourse, estou executando `v3.6.0.beta3`

Acho que você está executando o beta3-latest, o que significa uma versão durante o desenvolvimento do beta3. A versão final do beta3 ainda não foi lançada.

> [@Understanding Discourse release channels](https://meta.discourse.org/t/understanding-discourse-release-channels/264400):
>
> bookmark This guide explains the different types of Discourse releases and how different channels are used for updates. person_raising_hand Required user level: All users Release channels Discourse has four primary release channels, each serving a different purpose: main, latest[[1]](#footnote-1286715-1), beta, and stable. The default channel used when installing a production version of Discourse is latest. The naming conventions used by Discourse differ a bit from other software companies: main On GitHub…

Você leu o tópico sobre a nova estratégia de versionamento?

> [@RFC: A new versioning strategy for Discourse](https://meta.discourse.org/t/rfc-a-new-versioning-strategy-for-discourse/383536):
>
> We’re planning to introduce a new versioning system for Discourse. Our goal is to provide more choice & predictability for community administrators, while maintaining our development velocity. We’re also adjusting some terminology to align better with other software. This document will evolve as we receive comments, begin to implement the system, and then expand use of the new release streams. If you have any comments/suggestions at this stage, please let us know by replying to this topic! G…

---

<div class="post-metadata">

### Author: ![FelicianoTech](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/felicianotech/32/120007_2.png) [@FelicianoTech](https://meta.discourse.org/u/FelicianoTech)
#### Post date: [14 Novembro , 2025 15:40 UTC](https://meta.discourse.org/t/how-to-reliably-programmatically-get-the-latest-version-number-of-discourse/388336/4 "2025-11-14T15:40:01Z")

</div>

> [@Moin](#):
>
> Mas você provavelmente usa a versão mais recente

Eu não usei nada. O Discourse me informa quando há atualizações e eu clico no botão para instalá-las na interface do usuário. Estou tentando descobrir de onde o Discourse obtém essas informações.

> [@elmuerte](#):
>
> A versão que é usada para exibição é definida em `Discourse::VERSION::String`, que é uma constante codificada:

Obrigado. Eu me deparei com isso, mas isso exigiria que eu fizesse `git clone` regularmente e inspecionasse esse arquivo, o que não é leve.

---

<div class="post-metadata">

### Author: ![FelicianoTech](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/felicianotech/32/120007_2.png) [@FelicianoTech](https://meta.discourse.org/u/FelicianoTech)
#### Post date: [14 Novembro , 2025 15:46 UTC](https://meta.discourse.org/t/how-to-reliably-programmatically-get-the-latest-version-number-of-discourse/388336/5 "2025-11-14T15:46:34Z")

</div>

> [@Moin](#):
>
> Você leu o tópico sobre a nova estratégia de versionamento?

O primeiro link não me ajuda a obter a(s) versão(ões) mais recente(s) (na verdade, parece que há ainda mais para obter agora), mas este segundo link é bom de saber. Parece que o esquema de versionamento mudará completamente. Obrigado pelo link.

---

<div class="post-metadata">

### Author: ![Moin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/moin/32/554653_2.png) [@Moin](https://meta.discourse.org/u/Moin)
#### Post date: [14 Novembro , 2025 15:57 UTC](https://meta.discourse.org/t/how-to-reliably-programmatically-get-the-latest-version-number-of-discourse/388336/6 "2025-11-14T15:57:03Z")

</div>

> [@FelicianoTech](#):
>
> O primeiro link não me ajuda a obter a versão mais recente.

Pensei que a explicação de que as notificações são enviadas assim que uma nova versão beta é lançada poderia ser útil para você. Quando você atualizar após a notificação para o lançamento 3.6.0.beta3, enquanto seu fórum for baseado em “latest”, você receberá 3.6.0.beta4-latest.

---

<div class="post-metadata">

### Author: ![FelicianoTech](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/felicianotech/32/120007_2.png) [@FelicianoTech](https://meta.discourse.org/u/FelicianoTech)
#### Post date: [14 Novembro , 2025 16:05 UTC](https://meta.discourse.org/t/how-to-reliably-programmatically-get-the-latest-version-number-of-discourse/388336/7 "2025-11-14T16:05:07Z")

</div>

Preciso de algum tipo de URL onde eu possa usar uma linguagem de programação (ou dizer `curl`) para verificar qual é a(s) versão(ões) mais recente(s). Normalmente, isso é algum tipo de feed e tem uma resposta com linguagem estruturada como JSON, XML, YAML, etc.

---

<div class="post-metadata">

### Author: ![RGJ](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/rgj/32/523185_2.png) [@RGJ](https://meta.discourse.org/u/RGJ)
#### Post date: [14 Novembro , 2025 21:25 UTC](https://meta.discourse.org/t/how-to-reliably-programmatically-get-the-latest-version-number-of-discourse/388336/8 "2025-11-14T21:25:17Z")

</div>

Você pode usar a verificação de versão que está no [código do Discourse](https://github.com/discourse/discourse/blob/main/lib/discourse_hub.rb#L6-L15).

`https://api.discourse.org/api/version_check?installed_version=`

onde X é uma versão conhecida no branch sobre o qual você deseja obter informações.

Se você quiser apenas obter os últimos 5 números de versão beta, basta usar uma versão antiga como  
`https://api.discourse.org/api/version_check?installed_version=3.1.0.beta1`

Se você quiser a versão estável mais recente, omita o parâmetro installed\_version  
`https://api.discourse.org/api/version_check`

---

<div class="post-metadata">

### Author: ![FelicianoTech](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/felicianotech/32/120007_2.png) [@FelicianoTech](https://meta.discourse.org/u/FelicianoTech)
#### Post date: [14 Novembro , 2025 22:17 UTC](https://meta.discourse.org/t/how-to-reliably-programmatically-get-the-latest-version-number-of-discourse/388336/9 "2025-11-14T22:17:26Z")

</div>

> [@RGJ](#):
>
> Você pode usar a verificação de versão que está no [código do Discourse](https://github.com/discourse/discourse/blob/main/lib/discourse_hub.rb#L6-L15).
> 
> `https://api.discourse.org/api/version_check?installed_version=X`

Isto. É exatamente o que eu estava procurando e meu Google-fu estava falhando. Obrigado!

Esta API mostra a v3.6.0 beta 2 como a mais recente (assim como as tags do GitHub) e não a beta 3, que é o que meu fórum está executando. Não entendo como isso aconteceu, mas esse é um problema diferente. 😆

Obrigado pela ajuda.

---

<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: [14 Novembro , 2025 23:13 UTC](https://meta.discourse.org/t/how-to-reliably-programmatically-get-the-latest-version-number-of-discourse/388336/11 "2025-11-14T23:13:58Z")

</div>

Os dados fornecidos por `api.discourse.org` são retirados das tags do GitHub, então você pode usar qualquer um deles. Eles sempre darão o mesmo resultado.

> [@FelicianoTech](#):
>
> não beta 3, que é o que meu fórum está executando

Isso ocorre porque você está executando a versão pré-lançamento do beta3:

> [@Moin](#):
>
> versão durante o desenvolvimento do beta3. A versão final do beta3 ainda não foi lançada

O sufixo `-latest` é o indicador de que se trata de uma pré-versão e não corresponde a um commit específico do Discourse.

---

<div class="post-metadata">

### Author: ![system](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/system/32/443519_2.png) [@system](https://meta.discourse.org/u/system)
#### Post date: [14 Dezembro , 2025 23:14 UTC](https://meta.discourse.org/t/how-to-reliably-programmatically-get-the-latest-version-number-of-discourse/388336/12 "2025-12-14T23:14:44Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
