版本编号
一般项目常用语义化版本,格式为 MAJOR.MINOR.PATCH。对于 Mod,使用 MCVERSION-MAJORMOD.MAJORAPI.MINOR.PATCH 可能更有利于区分破坏世界兼容性与破坏 API 兼容性的更改。
原创说明图,依据 Forge 1.21.x 官方文档 绘制。
注意:Forge 使用 Maven 版本比较规则比较版本字符串,并不完全兼容语义化版本 2.0.0 规范,例如预发布标签。
示例
以下情况可以使对应部分递增:
MCVERSION:始终与 Mod 所支持的 Minecraft 版本一致。MAJORMOD:移除物品、方块、方块实体等;更改或移除已有机制;更新到新的 Minecraft 版本。MAJORAPI:改变枚举的顺序或变量;改变方法返回类型;移除公共方法。MINOR:添加物品、方块、方块实体等;添加新机制;弃用公共方法(这不会破坏 API,因此不增加MAJORAPI)。PATCH:修复错误。
任何一部分递增时,所有较低位都应重置为 0。例如,MINOR 递增时 PATCH 归零;MAJORMOD 递增时,其他部分均归零。
开发中版本
初始开发阶段(正式发布之前),MAJORMOD 和 MAJORAPI 应始终为 0,每次构建只更新 MINOR 和 PATCH。首次正式发布时(通常 API 已稳定),应将 MAJORMOD 增加至版本 1.0.0.0。后续开发阶段参见预发布与候选发布版。
多个 Minecraft 版本
如果 Mod 升级到新版 Minecraft,而旧版只接收错误修复,应基于升级前的版本更新 PATCH。如果新旧 Minecraft 版本都仍在积极开发,建议同步更新两者的构建版本号。例如,因 Minecraft 版本变化而将 Mod 升至 3.0.0.0 时,旧版也应更新至 3.0.0.0:旧版可以是 1.7.10-3.0.0.0,新版则是 1.8-3.0.0.0。如果为新版 Minecraft 构建时完全没有其他更改,除 Minecraft 版本外,各部分应保持不变。
最终版本
停止支持某个 Minecraft 版本时,该版本的最后一次构建应加上 -final 后缀。这表示 Mod 将不再支持该 MCVERSION,玩家应升级到更新的 Mod 版本以继续获得更新和错误修复。
预发布版本
尚未完成的功能也可以预发布,类似 Beta 版本。应添加 -betaX 后缀,其中 X 是预发布版本序号。(原文写作时 -pre 不是 -beta 的有效别名,因此本指南不使用它。)已经发布的版本和首次正式发布之前的版本不能进入预发布;添加 -beta 前应相应更新版本部分,通常是 MINOR,也可以是 MAJORAPI 或 MAJORMOD。首次正式发布之前的版本属于开发中构建。
候选发布版
候选发布版是实际版本变更前的预发布版本。应添加 -rcX 后缀,其中 X 是候选版序号,理论上只在修复错误时增加。已经发布的版本不能再获得候选版;添加 -rc 前应相应更新版本部分,通常是 MINOR,也可以是 MAJORAPI 或 MAJORMOD。将候选版发布为稳定版时,可以与最后一个候选版完全相同,也可以包含少量额外的错误修复。
原文:Versioning。