太好了,谢谢你的解释。
于是我给自己倒了一杯
,然后尝试使用了 Custom Wizard Plugin。
我按逆序逐个检查了每个标签,从 v2.6.0.beta1 开始。我发现以下 git 命令很有帮助:
git tag --list \\ 例如:git tag --list 'v2.5.0*'
git checkout tags/tag \\ 例如:git checkout tags/v2.5.0.beta7
没过多久,我就找到了一个与当前插件版本不兼容的标签:v2.5.0.beta7 中不包含 discourse/app/components/d-textarea,而自定义向导插件试图导入该文件。
于是,我找到了插件中添加该导入的 提交记录,获取了 前一个提交 的 sha1 值,检出该提交并进行了测试(运行正常),然后将以下内容添加到 .discourse-compatibility 文件中:
v2.5.0.beta7: 802d74bab2ebe19a106f75275342dc2e9cc6066a
接着,我将该更改推送到 包含最新插件代码的分支(这是一个用于测试的分支,通常并不需要),并使用该插件分支和设置为 v2.5.0.beta7 的 version 重新构建了一个 Docker 化的测试服务器。
但这次失败了。随后我意识到,当然,plugin:pull_compatible_all 这个 rake 任务在 v2.5.0.beta7 中并不存在,因此无法向后兼容(这要怪那杯
)。果然,在启动器日志中我看到了以下错误:
Don't know how to build task 'plugin:pull_compatible_all' (See the list of available tasks with `rake --tasks`)
不过,这是否就是你设想的使用方式的核心要点呢?
关于 required_version 方面,我在此也遇到了问题,因为测试服务器上安装了 discourse-legal-tools 插件,该插件的 required_version 设置为 v2.5.0,因此在 v2.5.0.beta7 上最初就失败了。我打算将该插件迁移到这个新系统中。我仍然认为 required_version 在设定绝对基准方面是有用的,正如你所说。