关于 release-manager
release-manager 是面向软件团队的发布管理技能,覆盖从提交分析到部署规划的流程。它提供生成变更日志、分析语义化版本和评估发布准备情况的脚本,并包含热修复与回滚指南。
主要功能
- 01基于 Conventional Commits 生成变更日志
- 02语义化版本升级分析
- 03发布准备情况评估
- 04发布规划与协调
- 05热修复和回滚指南
适用场景
- 01根据 git 历史准备变更日志
- 02确定发布所需的版本升级
- 03检查发布准备情况并协调相关人员
- 04规划紧急修复和回滚流程
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ alirezarezvani/ claude-skills --skill release-manager安装后在 Claude Code 中输入/release-manager确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
changelog_generator.pyREADME.mdrelease_planner.pyversion_bumper.pyassets/sample_commits.jsonsample_git_log_full.txtsample_git_log.txtsample_release_plan.jsonexpected_outputs/changelog_example.mdrelease_readiness_example.txtversion_bump_example.txtreferences/conventional-commits-guide.mdhotfix-procedures.mdrelease-workflow-comparison.md详细介绍
Release Manager
Tier: POWERFUL
Category: Engineering
Domain: Software Release Management & DevOps
Overview
Release Manager 技能提供端到端管理软件发布的全面工具与知识。从解析约定式提交(Conventional Commits)、生成变更日志,到确定版本号递增以及编排发布流程,本技能可确保软件发布可靠、可预测且文档完善。
Core Capabilities
- Automated Changelog Generation 基于约定式提交,从 git 历史自动生成变更日志
- Semantic Version Bumping 基于提交分析和破坏性变更确定语义化版本递增
- Release Readiness Assessment 提供全面的检查清单与验证,评估发布就绪程度
- Release Planning & Coordination 提供利益相关方沟通模板,用于发布规划与协调
- Rollback Planning 提供自动化恢复流程的回滚规划
- Hotfix Management 管理紧急发布的热修复
- Feature Flag Integration 集成功能开关,支持渐进式发布
Key Components
Scripts
- changelog_generator.py - 解析 git 日志并生成结构化变更日志
- version_bumper.py - 根据约定式提交确定正确的版本递增方式
- release_planner.py - 评估发布就绪程度并生成协调计划
Documentation
- 全面的发布管理方法论
- 约定式提交规范与示例
- 发布工作流对比(Git Flow、Trunk-based、GitHub Flow)
- 热修复流程与紧急响应协议
Release Management Methodology
Semantic Versioning (SemVer)
语义化版本遵循 MAJOR.MINOR.PATCH 格式,其中:
- 当你做出不兼容的 API 变更时,递增 MAJOR 版本
- 当你以向后兼容的方式新增功能时,递增 MINOR 版本
- 当你做出向后兼容的缺陷修复时,递增 PATCH 版本
Pre-release Versions
预发布版本的标记方式是在版本号后追加连字符及标识符:
1.0.0-alpha.1- 用于早期测试的 Alpha 版本1.0.0-beta.2- 用于更广泛测试的 Beta 版本1.0.0-rc.1- 用于最终验证的候选发布版本(Release Candidate)
Version Precedence
版本优先级通过逐个比较标识符来确定:
1.0.0-alpha<1.0.0-alpha.1<1.0.0-alpha.beta<1.0.0-beta1.0.0-beta<1.0.0-beta.2<1.0.0-beta.11<1.0.0-rc.11.0.0-rc.1<1.0.0
Conventional Commits
约定式提交为提交信息提供结构化格式,便于自动化工具处理:
Format
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
Types
- feat:新功能(对应 MINOR 版本递增)
- fix:缺陷修复(对应 PATCH 版本递增)
- docs:仅涉及文档的变更
- style:不影响代码含义的变更
- refactor:既不修复缺陷也不新增功能的代码变更
- perf:提升性能的代码变更
- test:新增缺失的测试或修正已有测试
- chore:对构建流程或辅助工具的变更
- ci:对 CI 配置文件与脚本的变更
- build:影响构建系统或外部依赖的变更
- breaking:引入破坏性变更(对应 MAJOR 版本递增)
Examples
feat(user-auth): add OAuth2 integration
fix(api): resolve race condition in user creation
docs(readme): update installation instructions
feat!: remove deprecated payment API
BREAKING CHANGE: The legacy payment API has been removed
Automated Changelog Generation
变更日志基于约定式提交自动生成,并按以下方式组织:
Structure
# Changelog
## [Unreleased]
### Added
### Changed
### Deprecated
### Removed
### Fixed
### Security
## [1.2.0] - 2024-01-15
### Added
- OAuth2 authentication support (#123)
- User preference dashboard (#145)
### Fixed
- Race condition in user creation (#134)
- Memory leak in image processing (#156)
### Breaking Changes
- Removed legacy payment API
Grouping Rules
- Added:新功能(feat)
- Fixed:缺陷修复(fix)
- Changed:现有功能的变更
- Deprecated:即将移除的功能
- Removed:已移除的功能
- Security:安全漏洞修复
Metadata Extraction
- 关联拉取请求与议题:
(#123) - 醒目突出显示破坏性变更
- 按范围分组:
auth:、api:、ui: - 通过 Co-authored-by 致谢贡献者
Version Bump Strategies
版本递增通过分析上一次发布以来的提交来确定:
自动检测规则
- MAJOR:任何包含
BREAKING CHANGE或类型后带!的提交 - MINOR:任何不含破坏性变更的
feat类型提交 - PATCH:
fix、perf、security类型的提交 - NO BUMP:仅包含
docs、style、test、chore、ci、build的情况
预发布处理
# Alpha: 1.0.0-alpha.1 → 1.0.0-alpha.2
# Beta: 1.0.0-alpha.5 → 1.0.0-beta.1
# RC: 1.0.0-beta.3 → 1.0.0-rc.1
# Release: 1.0.0-rc.2 → 1.0.0
多包注意事项
对于包含多个包的 monorepo:
- 独立分析影响每个包的提交
- 支持带作用域的版本升级:
@scope/[email protected] - 生成跨包的协调发布计划
发布分支工作流
Git Flow
main (production) ← release/1.2.0 ← develop ← feature/login
← hotfix/critical-fix
优点:
- 职责划分清晰
- 主分支稳定
- 支持并行功能开发
- 发布流程结构化
流程:
- 从 develop 创建发布分支:
git checkout -b release/1.2.0 develop - 完成发布(版本升级、更新变更日志)
- 合并到 main 和 develop
- 为发布打标签:
git tag v1.2.0 - 从 main 部署
基于主干的开发
main ← feature/login (short-lived)
← feature/payment (short-lived)
← hotfix/critical-fix
优点:
- 工作流简化
- 集成速度更快
- 减少合并冲突
- 对持续集成友好
流程:
- 短期功能分支(1-3 天)
- 频繁向 main 提交
- 使用功能开关管理未完成的功能
- 自动化测试关卡
- 从 main 部署,并通过功能开关控制功能
GitHub Flow
main ← feature/login
← hotfix/critical-fix
优点:
- 简单轻量
- 部署周期快
- 适合 Web 应用
- 额外开销极少
流程:
- 从 main 创建功能分支
- 定期提交和推送
- 准备就绪后发起拉取请求
- 从功能分支部署以进行测试
- 合并到 main 并部署
功能开关集成
功能开关可实现安全、渐进式的发布:
功能开关类型
- 发布开关:控制功能在生产环境中的可见性
- 实验开关:用于 A/B 测试和逐步放量
- 运维开关:熔断器和性能开关
- 权限开关:基于角色的功能访问控制
实施策略
# Progressive rollout example
if feature_flag("new_payment_flow", user_id):
return new_payment_processor.process(payment)
else:
return legacy_payment_processor.process(payment)
发布协调
- 部署代码,功能置于开关之后(默认关闭)
- 逐步向一定比例的用户开放
- 监控指标和错误率
- 根据数据决定全量发布或快速回滚
- 在后续版本中移除开关
发布就绪检查清单
发布前验证
- 所有计划中的功能均已实现并通过测试
- 破坏性变更已附迁移指南记录
- API 文档已更新
- 数据库迁移已测试
- 敏感变更已完成安全审查
- 性能测试已通过阈值要求
- 国际化字符串已更新
- 第三方集成已验证
质量关卡
- 单元测试覆盖率 ≥ 85%
- 集成测试通过
- 端到端测试通过
- 静态分析无问题
- 安全扫描已通过
- 依赖审计无问题
- 负载测试已完成
文档要求
- CHANGELOG.md 已更新
- README.md 反映了新功能
- 已生成 API 文档
- 已为破坏性变更编写迁移指南
- 已准备部署说明
- 回滚流程已记录
干系人审批
- 产品经理签字确认
- 工程负责人批准
- QA 验证完成
- 安全团队放行
- 法务审核(如适用)
- 合规检查(如受监管)
部署协调
沟通计划
内部干系人:
- 工程团队:技术变更和回滚流程
- 产品团队:功能描述和用户影响
- 支持团队:已知问题和故障排查指南
- 销售团队:面向客户的变更和沟通要点
外部沟通:
- 面向用户的发布说明
- 面向开发者的 API 变更日志
- 破坏性变更的迁移指南
- 停机通知(如适用)
部署顺序
- 部署前(T-24 小时):最终验证,冻结代码
- 数据库迁移(T-2 小时):运行并验证结构变更
- 蓝绿部署(T-0):逐步切换流量
- 部署后(T+1 小时):监控指标和日志
- 回滚窗口(T+4 小时):回滚决策节点
监控与验证
- 应用健康检查
- 错误率监控
- 性能指标跟踪
- 用户体验监控
- 业务指标验证
- 第三方服务集成健康状况
热修复流程
热修复用于处理需要立即部署的生产环境关键问题:
严重级别划分
P0 - 紧急:系统完全中断、数据丢失、安全漏洞
- SLA:2 小时内修复
- 流程:紧急部署,全员参与
- 审批:工程负责人 + 值班经理
P1 - 高:重要功能故障,对用户影响重大
- SLA:24 小时内修复
- 流程:加急评审与部署
- 审批:工程负责人 + 产品经理
P2 - 中:次要功能问题,对用户影响有限
- SLA:在下一个发布周期中修复
- 流程:常规评审流程
- 审批:标准 PR 评审
紧急响应流程
- 事件声明:通知值班团队
- 评估:确定严重级别和影响范围
- 热修复分支:从最近的稳定版本创建
- 最小化修复:仅针对根本原因进行修复
- 加急测试:自动化测试 + 人工验证
- 紧急部署:部署到生产环境
- 事后复盘:根因分析与预防措施
回滚规划
每次发布都必须有经过测试的回滚方案:
回滚触发条件
- 错误率飙升:30 分钟内超过基线的 2 倍
- 性能下降:延迟增加超过 50%
- 功能故障:核心功能无法正常使用
- 安全事件:漏洞被利用
- 数据损坏:数据库完整性受损
回滚类型
代码回滚:
- 回退到上一个 Docker 镜像
- 仅允许与数据库兼容的代码变更
- 优先通过关闭功能开关(Feature flag)而非代码回滚
数据库回滚:
- 仅适用于非破坏性迁移
- 迁移前必须备份数据
- 优先采用只向前的迁移(新增列,而非删除列)
基础设施回滚:
- 蓝绿部署切换
- 还原负载均衡器配置
- DNS 变更(传播时间较长)
自动回滚
# Example rollback automation
def monitor_deployment():
if error_rate() > THRESHOLD:
alert_oncall("Error rate spike detected")
if auto_rollback_enabled():
execute_rollback()
发布指标与分析
关键绩效指标
- 交付周期:从提交到生产环境的时间
- 部署频率:每周/每月的发布次数
- 平均恢复时间:从事件发生到解决的时间
- 变更失败率:导致事件的发布所占百分比
质量指标
- 回滚率:被回滚的发布所占百分比
- 热修复率:每次常规发布对应的热修复次数
- 缺陷逃逸率:每次发布产生的生产环境缺陷数
- 问题发现时间:问题被识别的速度
流程指标
- 评审时间:代码评审所花费的时间
- 测试时间:自动化与人工测试的总时长
- 审批周期:从 PR 提交到合并的时间
- 发布准备时间:发布相关活动所花费的时间
工具集成
版本控制系统
- Git:主要版本控制系统,支持解析约定式提交(Conventional Commits)
- GitHub/GitLab:拉取请求自动化与 CI/CD
- Bitbucket:流水线集成与部署门禁
CI/CD 平台
- Jenkins:流水线编排与部署自动化
- GitHub Actions:工作流自动化与发布发布
- GitLab CI:集成流水线与环境管理
- CircleCI:基于容器的构建与部署
监控与告警
- DataDog:应用性能监控
- New Relic:错误追踪与性能洞察
- Sentry:错误聚合与发布追踪
- PagerDuty:事件响应与升级
沟通平台
- Slack:发布通知与协调
- Microsoft Teams:利益相关方沟通
- Email:面向外部客户的通知
- Status Pages:面向公众的事件沟通
最佳实践
发布规划
- 定期节奏:建立可预测的发布计划
- 功能冻结:发布前 48 小时锁定变更
- 风险评估:评估变更可能带来的影响
- 利益相关方对齐:确保所有团队都已做好准备
质量保障
- 自动化测试:全面的测试覆盖
- 预发布环境:类生产环境的测试环境
- 金丝雀发布:逐步推送给部分用户
- 监控:主动发现问题
沟通
- 清晰的时间线:尽早沟通排期
- 定期更新:在发布过程中提供状态报告
- 问题透明:坦诚沟通问题
- 事后复盘:从事件中学习并持续改进
自动化
- 减少人工步骤:自动化重复性任务
- 流程一致:每次都遵循相同的步骤
- 审计追踪:记录所有发布活动
- 自助服务:让团队能够安全地自行部署
常见反模式
流程反模式
- 手动部署:容易出错且不一致
- 临时变更:未经充分测试就引入风险
- 跳过测试:未经验证即部署
- 沟通不畅:利益相关方不了解变更
技术反模式
- 单体式发布:规模大、频率低、风险高的发布
- 耦合部署:必须一起部署的服务
- 没有回滚方案:无法快速从问题中恢复
- 环境漂移:生产环境与预发布环境不一致
文化反模式
- 指责文化:害怕变更或上报问题
- 英雄主义文化:依赖个人而非流程
- 完美主义:为了微小改进而推迟发布
- 风险规避:因恐惧而避免必要的变更
入门指南
- 评估:梳理当前发布流程及痛点
- 工具配置:为你的仓库配置脚本
- 流程定义:为团队选择合适的工作流
- 自动化:实现 CI/CD 流水线与质量门禁
- 培训:让团队熟悉新流程和工具
- 监控:为发布设置指标与告警
- 迭代:基于反馈和指标持续改进
Release Manager 技能可以将混乱的部署转变为可预测、可靠的发布,从而在整个组织中建立信心。