Minimum_discourse_version이 -latest 빌드(예: 2026.8.0-latest.1)에서 확인을 실패합니다

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

다음 링크에서 이 문제를 확인했습니다: Featured Topics - #76 by cogdog 실제로 매칭해야 하는 현재 버전보다 낮은 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不支持日期化版本格式

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

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

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

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

1개의 좋아요

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

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

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

minimumDiscourseVersion: "2026.8.0-latest"

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