发布政策
语义化版本
Turian 遵循语义化版本(major.minor.patch —— 例如 v1.9.0)。
- 主版本递增表示破坏性变更——你的项目可能需要手动更新。
- 次版本递增添加功能,但现有代码无需更改即可继续编译。
- 补丁版本递增发布错误修复和性能改进,API 不变。
我们不认为将主版本一直保持在 0 是合理的。Turian 自 v1.0.0 起就处于 v1.x.x,当时已经可以从头创建游戏并将其构建为独立可执行文件。"生产就绪"将是一个项目决策和公告,而从来不是版本号。
Major 版本是技术性的,而非营销
在大多数引擎中,新的 Major 版本是一个事件:数年积累的功能被打包在一个数字背后,在 Keynote 上发布,随后是一场漫长而充满风险的迁移。Turian 则按字面意义对待版本号。Major 版本只意味着一件事——某些改动可能会破坏现有项目——它和其他任何版本一样在同一天发布,有时只包含一个破坏性变更,别无其他。
你可以确信的是:
- 每个 Major 版本都在迁移指南中有对应条目,准确告诉你发生了什么变化,以及(如果有的话)你需要做什么。
- 破坏性的数据格式变更不仅仅是更新日志中的一行,而是配有完整的迁移路径:旧文件仍可加载(并显示警告),批量工具(
turian-cli migrate)会在整个项目中持久化这次转换。 - 由于破坏性变更是随时完成随时发布,而不是攒到某个"大"版本一起发布,因此每次迁移都很小,也便于单独审查。
"Turian 有哪些新功能"这个故事在别处讲述:博客上的定期汇总文章会总结跨越多个版本的功能与修复,与版本号无关。
发布频率
我们每天发布一个新版本(当有代码变更时)。这意味着错误修复和功能在合并当天就能送到你手中,而不是排队等待数月等待下一个"大"版本。
高频发布的优势:
- 你今天报告的错误,明天发布中就修复了——无需等待季度里程碑。
- 回归问题更容易排查,因为连续版本之间的差异很小。
- 你可以始终锁定特定版本,并按自己的节奏升级。
未来项目稳定后,我们可能会降低发布频率,但理念将保持不变:尽早发布,频繁发布。
长期支持
我们不提供长期支持(LTS)版本。该项目处于初期阶段,API 正在快速演变。维护 LTS 分支会拖慢开发速度并分裂社区。保持支持版本的最佳方式是跟随最新版本。
多版本共存
SDK 二进制发布完全可重定位且自包含。每个版本解压到自己的文件夹,因此多个版本可以在同一台机器上共存而不会冲突。SDK 包含引擎源码、编辑器源码、依赖项和 CLI 二进制文件——构建游戏所需的一切。
~/sdks/turian-sdk-linux-x86_64-v1.8.0/turian-cli build mygame # v1.8.0
~/sdks/turian-sdk-linux-x86_64-v1.9.0/turian-cli build mygame # v1.9.0
每个 turian-cli 二进制文件通过旁边的 turian-sdk.json 标记文件解析自己的引擎源文件。你的项目输出始终针对你调用的确切版本进行编译。有关 SDK 布局和版本共存的更多详细信息,请参阅安装页面。