我们使用语义化版本标准:
http://semver.org/spec/v2.0.0.html
例如,我们可以有:1.5.1-dev.1,它对应:MAJOR.MINOR.PATCH-PRERELEASE
更详细地说:
MAJOR(主版本):当你做出不兼容的 API / 数据库结构变更时递增。在 AzerothCore 中,我们会偶尔发布一个主版本,并在发布后仅提供安全修复支持(请阅读下面的章节)。因此,这个版本可以更多地被视为一个里程碑(Milestone)。
MINOR(次版本):当你以向后兼容的方式添加功能时递增。这在 AC 上基本不使用,因为我们在发布主版本后不会引入任何新功能。
PATCH(修订版本):当你进行向后兼容的 bug 和安全修复时递增。
PRERELEASE(预发布):这就是 semver 标准中所谓的"元数据"。我们在 master 分支上工作时会使用这部分版本号。每当有新的功能或破坏性变更(无论是代码还是数据库)发布时,这个数字就会增加,以提醒你可能需要采取的行动。请查看如何使用更新日志。
AzerothCore 尚不被视为"已完成"的软件,因此始终处于开发阶段。上述版本管理主要用于提供一种简单的方法,来检查模块、脚本或任何与 AC 相关的内容是否与 AC 兼容,以及如何进行升级。
我们的策略是(按最常见的操作排序):
-dev.x 预发布版本阶段 1:开发阶段:在开发阶段,我们将使用 master 分支,可以自由地对 API、数据库以及所有可能破坏与旧版本兼容性的内容进行更改。在每个开发阶段开始时,我们会清理 sql/updates 文件夹,归档旧的 SQL 文件。
N.B.
阶段 2:仅稳定性与安全修复:在此阶段,我们将停止引入机制/内容修复,只对安全性和稳定性问题提供支持。例如:如果某个函数因空指针导致崩溃,我们会修复它。
如果很多人要求,我们最终可能会延长这一阶段。
阶段 3:生命周期结束(EOL):我们将归档该版本,当然会保留文档和分支。你可以继续使用/下载它,但我们不会提供任何形式的官方支持
注意:此信息已过时,请查看我们在 GitHub 上的发布
| 版本/分支 | 代号 | 描述 | 当前状态 | 发布日期 | 停止支持 |
|---|---|---|---|---|---|
| 0.x | Sunwell | 为 sunwell 做的小改动 | EOL | 2016 Q3 | 2017 Q1 |
| 1.x | Mimiron | 第一个引入模块系统的版本 | EOL | 2017 Q1 | 2019 Q1 |
| 2.x | Gunship | 集成了 CI/CD 和大量修复 | 安全与稳定性 | 2019 Q1 | ~ |
| master (3.x) | ~ | ~ | 开发中 | ~ | ~ |