我们像以前一样更新了一个现有的 Discourse 设置:在拉取 discourse_docker 仓库的当前修订版后,我们运行了以下命令:
./launcher rebuild app
它在没有错误的情况下运行并通过了,并且启动了新的容器——看起来一切正常。
但在检查运行中的应用程序的 HTML 源代码时,我们发现它仍然声称是 v3.5.2(更新前的版本)——而不是预期的 v2025.11.0
我们的程序与以前的更新相同。唯一明显改变的是 v2025.11.0 引入的版本编号方案——也许与此更改有关?
我检查了 Discourse 源代码中是否忘记了增加版本字符串,但事实并非如此,请看这两个提交:
- v3.5.2 的提交 Bump version to v3.5.2 · discourse/discourse@cc8d3f6 · GitHub
- v2025.11.0 的提交 DEV: Bump version on `release/2025.11` to `v2025.11.0` (#36251) · discourse/discourse@75d61b4 · GitHub
从启动器重建命令的输出中,我注意到它执行了 git pull 并看到了/检测到了新的分支:
(...)
t [tag update] beta -> beta
t [tag update] latest-release -> latest-release
* [new tag] release -> release
* [new tag] v2025.11.0 -> v2025.11.0
* [new tag] v2025.12.0-latest -> v2025.12.0-latest
* [new tag] v3.5.2 -> v3.5.2
* [new tag] v3.6.0.beta2 -> v3.6.0.beta2
Switched to a new branch 'stable'
I, [2025-12-03T12:27:14.785550 #1] INFO -- : branch 'stable' set up to track 'origin/stable'.
但不知何故,感觉它选择了错误(即不是最新的)分支。“stable”分支似乎包含 v3.5.2(根据该分支中的 lib/version.rb)。
重读 2025.11.0 版本公告,这听起来确实像是一个稳定版本,而不仅仅是预览/早期采用者版本。链接的 新版本控制策略 提到了 latest 分支,但我现在对应该期望什么更加困惑了。
我是否遗漏了什么?或者我们可以影响重建过程中选择哪个版本?或者它目前只是没有按预期工作,重建工具需要更改?
不确定这是否有关系,但在 Docker hub 上,“latest”标签是 3.5.2 ——并且按数字降序排序,这可能是很长一段时间内最新的标签……