意图是相反的。兼容分支仅用于 Discourse 的“已发布”分支。Discourse latest 将始终使用你的插件的 main。在那里你将开发新功能。
所以故事是这样的:
Discourse 发布 v2026.2。你插件上的 GitHub actions 会自动检测到这一点并创建一个 d-compat/v2026.2 分支。现在,任何使用 Discourse v2026.2 的人将使用你插件的 d-compat/v2026.2 版本。
你在插件的 main 上发布一个新功能。你不需要考虑向后兼容性,因为 main 分支仅供运行 Discourse latest 的用户使用。
然后,当你啜饮第三杯酒
时,Discourse 发布了 v2026.3。最初没有该版本的插件分支,因此将使用 main。对于 latest 上的用户来说,事情会像以前一样运行。
几小时内,你的 GitHub action 会检测到新版本并冻结 d-compat/v2026.3,为你的下一个插件功能在 main 上发布做好准备,而无需考虑向后兼容性。
这本质上是我们 CDCK 在处理主题/插件的稳定兼容性时使用的流程。每次稳定发布后,我们都会运行一个脚本来处理我们数百个主题/插件,并通过 .discourse-compatibility 将它们冻结。这个基于分支的提议旨在成为该工作流程的一个更轻量级的版本。