本文档详细介绍了 etcd 项目的发布流程,包括发布新版本 etcd 所遵循的步骤、角色和程序。它涵盖了版本的发布、规划、准备、执行和公告。有关从源代码构建的信息,请参阅 构建与测试。
etcd 项目遵循 semver.org 定义的语义化版本控制 (MAJOR.MINOR.PATCH)。发布流程包括由指定发布团队管理的规划、准备、执行和公告阶段。不同类型的发布(主要、次要、补丁或预发布版本)流程略有不同。
发布管理由一个指定贡献者团队负责,该团队负责主要/次要版本以及稳定分支的补丁。当前团队由 James Blair 和 Ivan Valdes Castillo 领导,成员如下:
下图展示了高层次的发布流程
来源:Documentation/contributor-guide/release.md38-122
etcd 遵循语义化版本控制,包含以下版本组件:
在主版本或次版本发布之前,etcd 会发布预发布版本。
来源:CHANGELOG/CHANGELOG-3.6.md6-177 CHANGELOG/CHANGELOG-3.5.md1-206
etcd 的分支管理遵循特定的模式,以促进发布流程
来源:Documentation/contributor-guide/branch_management.md1-26
etcd 中的功能会经历一个定义好的生命周期,这会影响发布流程
来源:Documentation/contributor-guide/features.md1-87
满足以下任一条件时,将发布新的补丁版本:
来源:Documentation/contributor-guide/release.md44-52
执行发布前,请确保以下事项:
.go-version 中指定的版本匹配)docker login gcr.iodocker login quay.io来源:Documentation/contributor-guide/release.md53-71
执行发布的详细步骤如下:
对于预发布版本,使用:
来源:Documentation/contributor-guide/release.md72-123 scripts/release.sh
发布期间可能出现的一些已知问题:
--no-upload 标志重新运行。来源:Documentation/contributor-guide/release.md125-131
每次发布都需要在相应的 CHANGELOG 文件中有一个格式正确的 changelog 条目。
[GH XXXX] 格式引用 pull request示例 changelog 结构
clientv3来源:CHANGELOG/CHANGELOG-3.5.md1-206 CHANGELOG/CHANGELOG-3.6.md6-177 Documentation/contributor-guide/release.md38-43
etcd 项目维护着关于哪些版本对生产环境稳定和安全的要求。目前,生产环境的最低推荐版本为 v3.4.22+ 和 v3.5.6+。