用途
Release Manager 是一个软件发布管理与 DevOps 技能,用于端到端管理软件发布流程。它帮助团队从解析约定式提交到生成变更日志、确定版本升级、编排发布过程,确保发布可靠、可预测且文档完善。
主要能力
- 基于 git 历史和约定式提交自动生成变更日志
- 根据提交分析和破坏性变更进行语义化版本升级
- 通过检查清单和验证进行发布就绪评估
- 发布规划与协调,含利益相关者沟通模板
- 回滚规划与自动恢复流程
- 紧急发布的热修复管理
- 功能开关集成,支持渐进式发布
关键组件
脚本:
- changelog_generator.py:解析 git 日志并生成结构化变更日志
- version_bumper.py:根据约定式提交确定正确的版本升级
- release_planner.py:评估发布就绪度并生成协调计划
文档:
- 全面的发布管理方法论
- 约定式提交规范与示例
- 发布工作流对比(Git Flow、Trunk-based、GitHub Flow)
- 热修复流程与紧急响应协议
发布管理方法论
语义化版本(SemVer)
格式为 MAJOR.MINOR.PATCH:
- MAJOR:不兼容的 API 变更
- MINOR:向后兼容的功能新增
- PATCH:向后兼容的缺陷修复
预发布版本通过连字符和标识符表示:1.0.0-alpha.1、1.0.0-beta.2、1.0.0-rc.1。版本优先级示例:1.0.0-alpha < 1.0.0-alpha.1 < 1.0.0-alpha.beta < 1.0.0-beta < 1.0.0-beta.2 < 1.0.0-beta.11 < 1.0.0-rc.1 < 1.0.0。
约定式提交
格式:<type>[optional scope]: <description>,可带可选正文和脚注。
类型:feat(新功能,对应 MINOR)、fix(缺陷修复,对应 PATCH)、docs、style、refactor、perf、test、chore、ci、build、breaking(破坏性变更,对应 MAJOR)。
示例:
feat(user-auth): add OAuth2 integrationfix(api): resolve race condition in user creationfeat!: remove deprecated payment API配合BREAKING CHANGE: The legacy payment API has been removed
自动变更日志生成
变更日志按以下结构组织:Added、Changed、Deprecated、Removed、Fixed、Security。分组规则:feat 归入 Added,fix 归入 Fixed,破坏性变更突出显示。元数据提取包括关联 PR/issue(#123)、scope 分组、Co-authored-by 贡献者识别。
版本升级策略
自动检测规则:
- MAJOR:任何含 BREAKING CHANGE 或类型后带 ! 的提交
- MINOR:任何无破坏性变更的 feat 提交
- PATCH:fix、perf、security 类型提交
- 不升级:仅 docs、style、test、chore、ci、build
预发布处理示例:1.0.0-alpha.1 → 1.0.0-alpha.2;1.0.0-alpha.5 → 1.0.0-beta.1;1.0.0-beta.3 → 1.0.0-rc.1;1.0.0-rc.2 → 1.0.0。
多包(monorepo)场景:独立分析影响各包的提交,支持作用域版本升级(@scope/package@1.2.3),生成跨包协调发布计划。
发布分支工作流
- Git Flow:main ← release/1.2.0 ← develop ← feature/login,另有 hotfix 分支。流程:从 develop 创建 release 分支、定稿发布、合并到 main 和 develop、打标签、从 main 部署。
- Trunk-based:短生命周期特性分支(1-3 天),频繁提交到 main,用功能开关处理未完成功能,自动化测试门禁,从 main 部署。
- GitHub Flow:从 main 创建特性分支,定期提交推送,就绪后开 PR,从特性分支部署测试,合并到 main 并部署。
功能开关集成
类型:发布开关、实验开关、运维开关、权限开关。实现策略:代码带开关部署(禁用)、逐步对部分用户启用、监控指标和错误率、根据数据全量发布或快速回滚、后续发布中移除开关。
发布就绪检查清单
- 发布前验证:功能实现并测试、破坏性变更文档与迁移指南、API 文档更新、数据库迁移测试、安全审查、性能测试、国际化字符串更新、第三方集成验证。
- 质量门禁:单元测试覆盖率 ≥ 85%、集成测试通过、端到端测试通过、静态分析干净、安全扫描通过、依赖审计干净、负载测试完成。
- 文档要求:CHANGELOG.md 更新、README.md 反映新功能、API 文档生成、破坏性变更迁移指南、部署说明、回滚流程文档。
- 利益相关者批准:产品经理、工程负责人、QA、安全团队、法律(如适用)、合规(如受监管)。
部署协调
沟通计划涵盖内部(工程、产品、支持、销售团队)和外部(用户发布说明、开发者 API 变更日志、迁移指南、停机通知)。部署序列:T-24h 最终验证与代码冻结、T-2h 数据库迁移、T-0 蓝绿部署切换流量、T+1h 监控指标与日志、T+4h 回滚决策点。监控与验证包括应用健康检查、错误率、性能指标、用户体验、业务指标、第三方服务集成健康。
热修复流程
严重性分类:
- P0 严重:系统完全中断、数据丢失、安全漏洞。SLA 2 小时内修复,紧急部署,需工程负责人 + 值班经理批准。
- P1 高:主要功能损坏、显著用户影响。SLA 24 小时内修复,加急审查部署,需工程负责人 + 产品经理批准。
- P2 中:次要功能问题、有限用户影响。下个发布周期修复,正常审查流程。
紧急响应流程:事件声明、评估、从最后稳定版本创建热修复分支、最小修复、加急测试、紧急部署、事后根因分析。
回滚规划
回滚触发条件:错误率 30 分钟内超过基线 2 倍、延迟增加超过 50%、核心功能损坏、安全事件、数据损坏。
回滚类型:
- 代码回滚:回退到之前的 Docker 镜像,仅数据库兼容的代码变更,优先功能开关禁用。
- 数据库回滚:仅用于非破坏性迁移,迁移前需数据备份,优先前向迁移(加列而非删列)。
- 基础设施回滚:蓝绿部署切换、负载均衡配置回退、DNS 变更(传播时间较长)。
发布指标与分析
关键绩效指标:前置时间(提交到生产)、部署频率、平均恢复时间、变更失败率。质量指标:回滚率、热修复率、缺陷逃逸率、检测时间。流程指标:审查时间、测试时间、批准周期、发布准备时间。
工具集成
版本控制:Git、GitHub/GitLab、Bitbucket。CI/CD:Jenkins、GitHub Actions、GitLab CI、CircleCI。监控告警:DataDog、New Relic、Sentry、PagerDuty。沟通平台:Slack、Microsoft Teams、Email、状态页。
最佳实践
发布规划:固定节奏、发布前 48 小时功能冻结、风险评估、利益相关者对齐。质量保证:自动化测试、类生产预发环境、金丝雀发布、主动监控。沟通:提前传达时间线、定期状态更新、问题透明、事后复盘。自动化:减少手动步骤、流程一致、审计追踪、自助部署。
常见反模式
流程:手动部署、最后一刻变更、跳过测试、沟通不畅。技术:单体大发布、耦合部署、无回滚计划、环境漂移。文化:指责文化、英雄文化、完美主义、风险规避。
入门步骤
评估当前发布流程与痛点、为仓库配置脚本、选择合适工作流、实现 CI/CD 管道与质量门禁、培训团队、设置指标与告警、基于反馈持续迭代。
适用场景与限制
适用于需要规划发布、管理变更日志、协调部署、创建发布分支或自动化版本管理的团队。该技能依赖约定式提交格式和 git 历史;具体脚本的运行环境、依赖和安装方式暂未提供。