---
Description: ""
date: "2026-03-02"
lastmod: ""
tags: []
title: 发布记录 & 迁移指引
weight: 8
---
# 版本管理规范
Go SDK 项目通常遵循 [语义化版本控制](https://semver.org/lang/zh-CN/)(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) | 格式:v{MAJOR}.{MINOR}.{PATCH}示例:v0.1.1v1.2.3 | 发布稳定版本时,确保 API 的稳定性和向后兼容性。严格遵守语义化版本控制:只有在引入重大不兼容变化时才提升主版本号(MAJOR),新增功能时提升次版本号(MINOR),只修复 bug 时提升修订号(PATCH)。确保在发布前进行全面的单元测试、集成测试以及性能测试。在发布时提供详细的发布说明(Release Notes),列出重要的变更、修复、特性以及迁移指南(如有)。 | |
| 预发版(Pre-release)AlphaBetaRC (Release Candidate) | 格式:v{MAJOR}.{MINOR}.{PATCH}-{alpha/beta/rc}.{num}示例:v0.1.1-beta.1v1.2.3-rc.1v1.2.3-rc.2 | Alpha:内部测试版,功能不一定完备,可能会有较多的 bug,不建议用于生产环境。Beta:功能基本完备,但仍可能存在 bug,适合公开测试,不建议用于生产环境。RC(Release Candidate):候选发布版,功能完成且基本稳定,建议进行最后的全面测试。在没有严重 bug 的情况下,RC 版本会转化为稳定版。一般来说,RC 版本的最后一个版本会转换成稳定版本 | |
| 尝鲜版(Canary/Experimental/Dev) | 格式:v{MAJOR}.{MINOR}.{PATCH}-{dev}.{num}示例:v0.1.1-dev.1v1.2.3-dev.2 | 尝鲜版是非常不稳定的版本,通常用于测试新功能或架构的早期实现。这些版本可能会包含实验性功能,甚至会在未来被移除或大幅修改。尝鲜版一般是在仓库的实验性分支上进行 | 一般来说,在字节内部用不到此种版本类型,可能在开源社区中使用 |
# 关于 V0、V1、Vn(n>1)的一些潜在共识