Jagster
(Jakke Flemming)
1
我在升级时发现了这些。嗯,这已经有一段时间了,但这次我记录了日志。
[db:default] 'Messages section for sidebar' - checking...
/tmp/discourse_theme_c64ff70a4cc7d614d9e88b106805c78f 中的版本列表无效
[db:default] 'Unhide composer fullscreen toggle for tablets' - checking...
/tmp/discourse_theme_4f18f6036fb93a7e2c8eca368c66ad09 中的版本列表无效
[db:default] 'Discourse Highlight to Search' - checking...
/tmp/discourse_theme_f7e393183be5f0189adb336c4602f071 中的版本列表无效
[db:default] 'Discourse Wikipedia Lookup' - checking...
/tmp/discourse_theme_8cf76b5d4fe5eac70cd636ee2487be35 中的版本列表无效
[db:default] 'Accent' - checking...
/tmp/discourse_theme_9796e5491667b1c43c7b9c680fc68ff3 中的版本列表无效
我是否应该担心?
不完全是,但也许可以这么说。
出现该错误的原因有很多。最常见的原因可能是 .discourse-compatibility 文件为空 [1],[2],[3]。(开头的 # 是注释行)
实际上,该警告意味着 Discourse 无法确定当前组件/插件的“最新”版本是否与当前的 Discourse 版本兼容,或者是否需要检出该组件/插件的旧版本。
组件/插件的 .discourse-compatibility 文件可以包含 Discourse 版本范围与组件/插件特定修订版之间的映射。如果 Discourse 找到映射,它将使用该修订版而不是最新版本。这就要求开发者在做出与先前 Discourse 版本不兼容的更改时更新该文件。只要您没有做出破坏性更改,该文件就会保持为空,从而产生该警告消息。
组件/插件是否与 Discourse 的最新版本兼容始终只是一个猜测。
我开始为 2026.1 开发一个插件,因此这将是 Discourse 的最低版本。它仍在针对该版本(以及当前最新版本)进行开发和测试。由于没有较旧的支持版 Discourse 版本,.discourse-compatibility 文件为空;因此产生了此警告消息。一旦 2026.1 停止支持,我将转向新的 ESR(扩展支持版本)。到那时,我将不再针对 2026.1 进行测试,因此我会更新 .discourse-compatibility 文件,使其最终非空。只有那时,我的插件才会不再显示此警告。
有关此 .discourse-compatibility 文件的更多信息:Introducing .discourse-compatibility: pinned plugin/theme versions for older Discourse versions
Jagster
(Jakke Flemming)
3
我试了一下。我 fork 了 Discourse Wikipedia Lookup 组件,并在其中添加了 .discourse-compatibility 文件。我从另一个组件复制了内容。那个警告消失了。所以确实就是这个问题。
谢谢。
但我查看了几个其他 TC,它们要么完全缺少 .discourse-compatibility,要么完全为空。然而,它们并没有给出警告。
不过问题已经解决了,生活还得继续。
Moin
4
从另一个组件的兼容性文件中复制内容可能会导致错误,因为为特定 Discourse 版本引用的提交在您复制到的存储库中不存在。
我知道我的存储库中的兼容性分支工作流失败了,因为我尚未添加 Arkshine 在主题骨架中引入的修复。我认为您列表中的我的两个存储库目前都受到了该问题的影响。
david
(David Taylor)
5
这将停止记录仅包含注释的文件的警告:
.discourse-compatibility 仍然受支持,尽管我们现在建议遵循基于 d-compat/* 分支的主题/插件兼容性策略。更多详情见此处:
因此,如果您的文件中没有任何实际条目,建议将其删除。
Jagster
(Jakke Flemming)
6
当然。我并没有实际使用那个分支的计划。那只是为了确认问题原因是否在于模板/样板文件而进行的一次测试。我只是想确保使用实际的提交记录和正确的语法。