我注意到,我的 Discourse 站点偶尔会发送电子邮件通知我有新版本可供安装,但每次版本号都是“x.y.z.beta 某数字”。因此我想了解:Discourse 是否始终处于“测试版”状态?它是否适合在生产环境中安装(即用于服务数百甚至数千名用户)?还是说这仅适用于免费版,而不适用于“云”版本?
这里对我们使用的分支有一个很好的解释:
因此,Discourse 始终处于测试版状态,这意味着我们一直在开发新功能和进行优化。在我们的情况下,beta 并不意味着不稳定;我们在 tests-passed 和 beta 版本上托管着每月数百万页面浏览量的站点。
补充 @awesomerobot 的发言:
我们的命名习惯与其他软件公司略有不同。当我们发布 beta 版本时,意味着我们正在发布一个新的增量版本。我们会说:“目前的变更已经足够,现在通知各站点进行更新。”
因此,对我们而言,beta 代表次要版本升级,而 version 代表主要版本升级。它们是我们为自己设立的里程碑,用以庆祝已完成的工作。我们通常每年发布两个主要版本,但这完全取决于功能开发等实际情况。我们并不热衷于设定虚假的截止日期。
关于分支
“稳定版/beta 版”并不一定比“测试通过版”更“稳定”。这里的区别主要在于已知 bug 的情况。在“测试通过版”中,可能会引入新的 bug,然后在几次提交后修复。
“测试通过版”与市面上大多数软件发布模式并无太大差异,后者通常每两周发布一次小更新。而我们几乎每天都会提交新变更,并通过“测试通过版”提供这些更新。
我加入这个帖子是因为同样的原因。
为什么安装说明没有告诉我们安装稳定分支?
我该如何切换到稳定分支,或者既然我已经在使用“更高版本”,是否为时已晚?
说明可以更新吗?
如果为时已晚,我该如何在稳定分支更新后继续使用它?
我需要不断地进行增量更新直到到达那里吗?
在它赶上之前,你无法切换到稳定版。Discourse 不支持降级。
更好的问题是:你为什么要这样做?
稳定版的使用范围不那么广泛,开发重点是 tests-passed。
假设你不是盲目升级生产站点,并且在部署前对每次升级进行测试,那么功能最丰富、支持最好的版本将是默认版本。
抱歉,这一定是某种语言障碍问题,但开发重点是指:
- Discourse 本身的开发以及分支的构建方式
- 其他所有人主要都在开发 Discourse
第一个意思是,注重功能和稳定性的论坛的生产站点应该使用 test-passed。
第二个意思是,生产站点(产品论坛,而非编码)应该使用 stable。
是的。我非常需要一些英语课程,因为这些细微差别对我来说并不完全清楚。
但如果第一个猜测是正确的,为什么还会有 stable 分支,如果它不打算被使用的话?
我们在托管上生产环境运行 tests-passed。它 100% 是为生产站点设计的。
Stable 意味着所有软件错误都是已知的。在下一个稳定版本发布之前,你不会得到任何新东西(包括新错误,但也有错误修复)。这只是站点偏好——想要随之而来的功能?使用 tests-passed。想要一个绝对稳定的版本,除了主要版本更新外不会改变?使用 stable。
我还要加上“想等6到8个月来修复一个bug,但它不被视为安全风险吗?”使用stable。
这并非完全属实。有许多错误修复被向后移植到了稳定版。
确实如此,我敢肯定。
但夸张手法是最好的东西!
确实如此,那些致命的错误。较小的错误则没有。
如果通用说明中能有类似 LibreOffice 或 Debian 的下载选项就好了。
我将网站托管在 DO 上,但我的联合所有者最初来自 discoursehosting.net,使用的是子域名,他看到所有这些维护工作,就说:“我们为什么不直接使用 discourse 托管呢?”
我告诉他我们有自己的域名、服务器、更高级的插件(如表情符号点赞和 Google 登录)以及其他东西。我告诉他他可能使用的是旧版 discourse,而且从未更新过。
我也宁愿只使用稳定版,然后几个月后再去管它。我是 Ubuntu 的日常用户,但输入那些构建命令时还是会有点紧张。而且我重建时服务器会宕机五分钟。
另一方面,我将请求集成备份功能,并乐意加入测试版 ![]()
为了避免任何猜测:在 Communiteq(前身为 discoursehosting.net),您可以获得自己的主机名,在 Professional 计划及以上版本中选择插件,我们还会为您备份和更新论坛。所以是的,使用托管服务确实可以解决您的大部分问题。
原始问题是在 github 安装说明 中提供稳定的构建选项。我看到您为客户提供稳定版本。也许您可以解释一下如何克隆和安装稳定版本?这也是我最初的问题。
作为一个小型且半私密的团体,没有任何理由不使用 DO 5 美元的服务器。但是,您每月 40 美元提供专业版或基础版,这是一个很棒的服务。祝您好运。与官方 discourse 计划相比,这是一个很好的交易。对于那些负担得起的人来说,所有选项都很好。这就是 FOSS 的伟大之处。
我相信默认情况下在测试通过后进行安装的决定是相当故意的。
在单个软件级别支持新安装要容易得多。由于这里提供的支持是基于社区的,并且在大多数情况下是 100% 免费的,因此没有充分的理由使其复杂化。
标准的安装说明之所以简化,是有原因的。
运行 stable 被认为是一种高级设置,因此您需要手动编辑 app.yml。您可以搜索“version”并查看文档中说明的操作。
修改 discourse-setup 以包含此选项会使大多数人感到困惑,因此我认为它不会被添加到那里。
也许一个有用的比喻是,“stable”分支就像基于磁盘的 Microsoft Office,而“tests-passed”分支就像基于云的 Office 365。两者都是可行的选择,并且最终都会收到更新,但对于一个本质上已经在线并且支持团队很小的产品来说,能够指示人们更新他们的安装到当前代码会更有效率,这样就可以及时测试和修复错误。作为论坛管理员,能够报告一个错误并在几天内(有时甚至第二天)更新到修复它的版本是非常棒的。我还没有使用过任何其他响应速度像它一样快的 Web 应用程序。(并不是说每个错误都能立即修复,但很多都可以。)
@pfaffman,我点击了链接以及它指向的链接,但没有看到任何关于将配置设置为 stable 的内容。我错过了什么?您的意思是“在 app.yml 文件中搜索‘version’”吗?
但我认为你不能从 test-passed 回到 stable(因为你会回退提交,并且可能需要在数据库中撤销一些迁移,除非你的 test-passed 版本足够旧,可以被最新的 stable 版本覆盖
)。
感谢您的快速回复!
我本来以为更新会暂停,直到下一个 stable 发布周期。
对此有什么见解吗?为什么仅仅切换 #version 开关就会立即改变任何事情?