Eino: 发布记录 & 迁移指引
版本管理规范
Go SDK 项目通常遵循 语义化版本控制(Semver)的规范。Semver 的版本号由三部分组成,格式为:
💡 v{MAJOR}.{MINOR}.{PATCH}
- MAJOR:主版本号,表示有重大更新或不兼容的 API 变更。
- MINOR:次版本号,表示新增功能,且与之前的版本保持向后兼容。
- PATCH:修订号,表示向后兼容的 bug 修复。
此外,语义化版本控制也支持预发布版本和元数据标签,用于标记预发版、尝鲜版等非正式版本。其格式为:
💡 v{MAJOR}.{MINOR}.{PATCH}-{PRERELEASE}+{BUILD}
- PRERELEASE:预发布版本标识,例如
alpha、beta、rc(Release Candidate)。 - BUILD:构建元数据(可选),通常用于标识特定的构建,例如 CI 构建号等。
Eino 遵循以上的语义化版本版本规范,会有如下几种版本类型:
| 版本类型 | 版本号格式 | 版本说明 | 备注 |
| 稳定版(Stable Release) | 格式: | ||
| 预发版(Pre-release) | 格式: | ||
| 尝鲜版(Canary/Experimental/Dev) | 格式: | 一般来说,在字节内部用不到此种版本类型,可能在开源社区中使用 |
关于 V0、V1、Vn(n>1)的一些潜在共识
| 标题 | 说明 | 备注 |
| V0大版本内部的不稳定性 | ||
| V1、Vn(n>1)大版本内部的稳定性 | v1.x.x版本会保证不引入不兼容的更改。 v2.0.0。 v1.1.0。 v1.0.1。 |
💡 当前因 Eino 初次发布,虽然 Eino 的 API 已初具稳态,但未经过大规模业务验证,MAJOR 版本暂时定为 V0,经过至少 50+ 业务线验证后,会提升版本至 V1
Release Notes 文档结构
- 一个 {MAJOR}.{MINOR} 次版本单独一篇文档
- 命名格式:“Eino: v1.2.* {标题描述}”
- {MAJOR}.{MINOR} 次版本中记录这个版本下的所有 ChangeLog
- 次版本的子目录中,可选放置每个 PATCH 的详细介绍
.
├── v1.0.*
│ └── bug_fix_1_x.txt
├── v0.2.*
├── v0.1.*
├── bug_fix_1_xxx.txt
├── bug_fix_2_xxxxx.txt
└── bug_fix_3_xxxxxxx.txt