# Minimum\_discourse\_version이 -latest 빌드(예: 2026.8.0-latest.1)에서 확인을 실패합니다

**URL:** https://meta.discourse.org/t/minimum-discourse-version-fails-its-check-on-latest-builds-e-g-2026-8-0-latest-1/411985
**Category:** Bug
**Created:** [9월 9, 2026, 10:55오전 UTC](https://meta.discourse.org/t/minimum-discourse-version-fails-its-check-on-latest-builds-e-g-2026-8-0-latest-1/411985 "2026-09-09T10:55:49Z")
**Posts on this page:** 8
**Page:** 1

<div class="post-metadata">

### Author: ![manuel](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/manuel/32/468169_2.png) [@manuel](https://meta.discourse.org/u/manuel)
#### Post date: [9월 9, 2026, 10:55오전 UTC](https://meta.discourse.org/t/minimum-discourse-version-fails-its-check-on-latest-builds-e-g-2026-8-0-latest-1/411985/1 "2026-09-09T10:55:49Z")

</div>

기본 `latest` 채널의 테마/컴포넌트는 자동으로 비활성화되며, 테마 개발자는 직관적이지 않은 우회 방법을 사용해야 합니다.

다음 링크에서 이 문제를 확인했습니다: [Featured Topics - #76 by cogdog](https://meta.discourse.org/t/featured-topics/217580/76?u=manuel) 실제로 매칭해야 하는 현재 버전보다 낮은 `xxx.x.999` 형식의 최소 버전 형식을 사용해야 한다는 점은 매우 직관적이지 않습니다.

## **플랫폼**

- `latest` 브랜치를 사용하는 자체 호스팅 Discourse
- Discourse 버전: `2026.8.0-latest.1`
- 영향 범위: 테마/테마 컴포넌트 작성(`about.json` 메타데이터) 및 테마 호환성 검사

## **설명**

**실제 결과:**  
`about.json`에 `"minimum_discourse_version": "2026.8.0"`이 설정된 테마는 사이트가 `2026.8.0-latest.1`이라는 `-latest` 빌드를 실행 중일 때 호환되지 않는 것으로 간주되어 자동으로 비활성화됩니다. 테마를 활성화 상태로 유지하는 유일한 방법은 `"minimum_discourse_version": "2026.7.999"`와 같이 더 낮은 버전을 설정하는 것입니다.

`minimum_discourse_version`을 `-latest` 스타일의 값(예: `2025.12.0-latest`)으로 설정한 테마를 가져오는 경우에도 유사한 문제가 발생합니다. 이러한 값은 유효하지 않다고 거부됩니다 — 기존 보고서 참조: [主题配置文件中minimum\_discourse\_version不支持日期化版本格式](https://meta.discourse.org/t/minimum-discourse-version/392120)

**기대 결과:**  
`2026.8.0-latest.1`은 `2026.8.0` 릴리스 라인의 `-latest` 빌드이므로, `2026.8.0`의 최소 요구 사항을 충족해야 합니다. Latest 빌드는 해당 릴리스된 버전보다 오래된 것이 아니라 더 새로운 것입니다.

---

<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: [9월 9, 2026, 11:17오전 UTC](https://meta.discourse.org/t/minimum-discourse-version-fails-its-check-on-latest-builds-e-g-2026-8-0-latest-1/411985/2 "2026-09-09T11:17:22Z")

</div>

> [@manuel](#):
>
> `2026.8.0-latest`는 `2026.8.0` 릴리스 라인 _의_ `-latest` 빌드이므로, `2026.8.0`의 최소 요구 사항을 충족해야 합니다.

하지만 `-latest` 버전은 해당 버전의 정식 릴리스 _이전_의 버전입니다. 호환성 항목들은 수년간 이 기준에 따라 작성되어 왔습니다.

> [@david](#):
>
> 아니요. 3.5.0은 사전 릴리스 버전인 "3.5.0.beta8-dev"보다 “높은” 버전으로 간주됩니다.

`<2026.7.999`로 처리한 방식은 직관적이지 않아 보이지만, 왜 `<2026.8.0-latest`를 명시하지 않았나요?

2026.8 개발 중에 추가된 특정 커밋이 필요할 경우, 2026.8 릴리스를 사용하는 모든 사용자가 해당 커밋을 가지고 있다는 것을 확신할 수 있지만, 2026.8-latest를 사용하는 모든 사용자가 그것을 가지고 있다는 확신은 할 수 없습니다. 어쩌면 그들의 마지막 업데이트가 특정 커밋이 추가되기 전에 이루어졌을 수 있으니까요. 따라서 2026.8이 기본적으로 2026.8-latest를 포함하게 된다면 문제가 발생할 수 있습니다. 필수 커밋이 없어서 문제가 생길 위험을 감수하기보다는, 관리자가 테마를 사용하거나 업데이트할 수 있도록 몇 주를 기다리는 것이 더 낫다고 생각합니다.

---

<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: [9월 9, 2026, 11:22오전 UTC](https://meta.discourse.org/t/minimum-discourse-version-fails-its-check-on-latest-builds-e-g-2026-8-0-latest-1/411985/3 "2026-09-09T11:22:58Z")

</div>

> [@Moin](#):
>
> 하지만 `-latest` 버전은 해당 버전의 릴리스 이전의 버전입니다.

네, 맞습니다. `2026.8.0-latest`는 `2026.8.0`보다 낮은 버전입니다. Semver 파서를 사용하여 확인할 수 있습니다. 예를 들어 ruby에서:

```plaintext
irb(main):001> Gem::Version.new("2026.8.0-latest") < Gem::Version.new("2026.8.0")
=> true

```

> [@manuel](#):
>
> `minimum_discourse_version`을 `-latest` 스타일의 값(예: `2025.12.0-latest`)으로 설정하는 테마는 잘못된 값으로 거부됩니다.

이를 수정해야 합니다. 테마 개발자는 다음과 같이 할 수 있어야 합니다:

```plaintext
minimumDiscourseVersion: "2026.8.0-latest"

```

다만 @moin이 언급했듯이, `-latest`는 수많은 다른 커밋을 가리킬 수 있으므로 위험할 수 있습니다. 따라서 완벽한 세상에서는 테마/플러그인이 새로운 코어 기능을 의존하기 전에 다음 릴리스를 기다려야 합니다.

---

<div class="post-metadata">

### Author: ![manuel](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/manuel/32/468169_2.png) [@manuel](https://meta.discourse.org/u/manuel)
#### Post date: [9월 9, 2026, 11:35오전 UTC](https://meta.discourse.org/t/minimum-discourse-version-fails-its-check-on-latest-builds-e-g-2026-8-0-latest-1/411985/4 "2026-09-09T11:35:23Z")

</div>

어떤 면에서는 이해하기가 조금 어렵다는 느낌을 받습니다. 호환성 파일에서도 `x.999` 방식을 사용해야 하는 것 같습니다. 예를 들어, 현재 제 컴포넌트에서는 다음과 같이 보입니다:

```plaintext
2026.7.999: 93b5b22
2026.4.999: 0321b6d

```

아마도 2026.5.0에 기능이 추가되었는데, 이를 맞추려면 2026.4.999를 사용해야 하는 건가요?

---

<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: [9월 9, 2026, 11:37오전 UTC](https://meta.discourse.org/t/minimum-discourse-version-fails-its-check-on-latest-builds-e-g-2026-8-0-latest-1/411985/5 "2026-09-09T11:37:56Z")

</div>

요즘에는 사용하지 않았지만, Discourse 팀의 예시에서는 보통 .999가 붙은 이전 릴리스가 아니라 현재 버전과 -latest 접미사를 사용했습니다.

> <https://github.com/discourse/DiscoTOC/blob/9edab586bf6d71af382ffa8376a959fc833a36eb/.discourse-compatibility#L1>

---

<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: [9월 9, 2026, 11:38오전 UTC](https://meta.discourse.org/t/minimum-discourse-version-fails-its-check-on-latest-builds-e-g-2026-8-0-latest-1/411985/6 "2026-09-09T11:38:34Z")

</div>

> [@manuel](#):
>
> 왜냐하면 2026.5.0에 기능이 추가되었고, 그와 맞추려면 2026.4.999를 사용해야 하는 것 같으니까요?

과거에는 그랬습니다. 그래서 여전히 그렇게 하고 있는 오래된 테마/플러그인이 몇 개 있습니다(그리고 인간/로봇들이 레거시 패턴을 계속 복사하고 있다고 추측합니다).

하지만 요즘에는 호환성 파일의 왼쪽에 `<` 또는 `>` 표시자를 사용할 수 있습니다. 따라서 다음과 같이 사용할 수 있습니다.

```yaml
<2026.7.0-latest: 93b5b22

```

또한, 요즘에는 호환성 파일을 거의 사용하지 않으려고 합니다. 대신 과거 버전과의 호환성을 자동으로 처리하는 `d-compat/*` 분기에 의존합니다.

구식과 신식 패턴에 대한 문서가 여기 있습니다:

> [@구형 Discourse 설치에서 플러그인 및 테마 버전 고정 (d-compat 브랜치)](https://meta.discourse.org/t/pinning-plugin-and-theme-versions-for-older-discourse-installs-d-compat-branches/272665):
>
> open_book 배경 테마 및 플러그인 개발자는 일반적으로 Discourse의 latest 릴리스를 대상으로 개발하되, 하위 호환성에 대해 걱정하지 않으려는 경향이 있습니다. 하지만 구버전 Discourse를 실행 중인 사이트들은 해당 환경에서 작동하는 테마/플러그인 버전이 여전히 필요합니다. 이 간극을 메우기 위해, Discourse에 테마/플러그인의 이전 ‘고정(pinned)’ 버전을 체크아웃하도록 지시할 수 있습니다. 이를 위한 두 가지 메커니즘이 있으며, 순서대로 확인됩니다: 테마/플러그인 저장소 내 d-compat/\<YYYY\>.\<M\> git 브랜치 (주요 방법 — 모든 새로운 고정(pinning)에 권장됨). 저장소 루트 디렉터리에 있는 .discourse-compatibility YAML 파일 (원래 메커니즘이며, 여전히 폴백으로 지원됨). 두 가지가 모두 존재하는 경우, 브랜치가 우선합니다. herb d-compat/\<YYYY\>.\<M\> 브랜치 시스템 D…

---

<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: [9월 9, 2026, 11:49오전 UTC](https://meta.discourse.org/t/minimum-discourse-version-fails-its-check-on-latest-builds-e-g-2026-8-0-latest-1/411985/7 "2026-09-09T11:49:21Z")

</div>

> [@david](#):
>
> 이 문제를 수정해야 합니다. 테마 개발자가 다음을 수행할 수 있어야 합니다:
> 
> ```plaintext
> minimumDiscourseVersion: "2026.8.0-latest"
> 
> ```

> <https://github.com/discourse/discourse/pull/43459>
>
> Discourse builds are versioned as \`2026.8.0-latest\` and \`2026.8.0-latest.1\` betw…een releases, but the \`about.json\` validation for \`minimum\_discourse\_version\` and \`maximum\_discourse\_version\` only accepted \`X.Y.Z\` and \`X.Y.Z.betaN\`. Gem::Version treats \`-latest\` as a pre-release, so a theme that needs \`2026.8.0\` was disabled on \`2026.8.0-latest.1\`, and authors could not express the intended constraint \`2026.8.0-latest\` because the import rejected it.
> 
> \- \`Discourse::VERSION\_REGEXP\` now allows \`-latest\` and \`-latest.N\` suffixes.
> \- Add specs for the regexp, for \`has\_needed\_version?\` ordering of \`-latest\` builds, and for the \`RemoteTheme\` validation.
> 
> See https://meta.discourse.org/t/411985

---

<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: [9월 12, 2026, 7:00오전 UTC](https://meta.discourse.org/t/minimum-discourse-version-fails-its-check-on-latest-builds-e-g-2026-8-0-latest-1/411985/8 "2026-09-12T07:00:13Z")

</div>

이 주제는 44시간 후 자동으로 닫혔습니다. 더 이상 새 답변을 작성할 수 없습니다.
