mcpField
R
release-manager

release-manager

github.com/alirezarezvani云与 DevOps28.9k528 次安装2 天前更新
代码仓库

关于 release-manager

release-manager 是面向软件团队的发布管理技能,覆盖从提交分析到部署规划的流程。它提供生成变更日志、分析语义化版本和评估发布准备情况的脚本,并包含热修复与回滚指南。

主要功能

  1. 01基于 Conventional Commits 生成变更日志
  2. 02语义化版本升级分析
  3. 03发布准备情况评估
  4. 04发布规划与协调
  5. 05热修复和回滚指南

适用场景

  1. 01根据 git 历史准备变更日志
  2. 02确定发布所需的版本升级
  3. 03检查发布准备情况并协调相关人员
  4. 04规划紧急修复和回滚流程

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/alirezarezvani/claude-skills --skill release-manager

安装后在 Claude Code 中输入/release-manager确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

changelog_generator.py
README.md
release_planner.py
version_bumper.py
assets/
sample_commits.json
sample_git_log_full.txt
sample_git_log.txt
sample_release_plan.json
expected_outputs/
changelog_example.md
release_readiness_example.txt
version_bump_example.txt
references/
conventional-commits-guide.md
hotfix-procedures.md
release-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
  1. changelog_generator.py - 解析 git 日志并生成结构化变更日志
  2. version_bumper.py - 根据约定式提交确定正确的版本递增方式
  3. 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. 1.0.0-alpha < 1.0.0-alpha.1 < 1.0.0-alpha.beta < 1.0.0-beta
  2. 1.0.0-beta < 1.0.0-beta.2 < 1.0.0-beta.11 < 1.0.0-rc.1
  3. 1.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

版本递增通过分析上一次发布以来的提交来确定:

自动检测规则
  1. MAJOR:任何包含 BREAKING CHANGE 或类型后带 ! 的提交
  2. MINOR:任何不含破坏性变更的 feat 类型提交
  3. PATCH:fix、perf、security 类型的提交
  4. 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

优点:

  • 职责划分清晰
  • 主分支稳定
  • 支持并行功能开发
  • 发布流程结构化

流程:

  1. 从 develop 创建发布分支:git checkout -b release/1.2.0 develop
  2. 完成发布(版本升级、更新变更日志)
  3. 合并到 main 和 develop
  4. 为发布打标签:git tag v1.2.0
  5. 从 main 部署
基于主干的开发
main ← feature/login (short-lived)
    ← feature/payment (short-lived)  
    ← hotfix/critical-fix

优点:

  • 工作流简化
  • 集成速度更快
  • 减少合并冲突
  • 对持续集成友好

流程:

  1. 短期功能分支(1-3 天)
  2. 频繁向 main 提交
  3. 使用功能开关管理未完成的功能
  4. 自动化测试关卡
  5. 从 main 部署,并通过功能开关控制功能
GitHub Flow
main ← feature/login
    ← hotfix/critical-fix

优点:

  • 简单轻量
  • 部署周期快
  • 适合 Web 应用
  • 额外开销极少

流程:

  1. 从 main 创建功能分支
  2. 定期提交和推送
  3. 准备就绪后发起拉取请求
  4. 从功能分支部署以进行测试
  5. 合并到 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)
发布协调
  1. 部署代码,功能置于开关之后(默认关闭)
  2. 逐步向一定比例的用户开放
  3. 监控指标和错误率
  4. 根据数据决定全量发布或快速回滚
  5. 在后续版本中移除开关
发布就绪检查清单
发布前验证
  • 所有计划中的功能均已实现并通过测试
  • 破坏性变更已附迁移指南记录
  • API 文档已更新
  • 数据库迁移已测试
  • 敏感变更已完成安全审查
  • 性能测试已通过阈值要求
  • 国际化字符串已更新
  • 第三方集成已验证
质量关卡
  • 单元测试覆盖率 ≥ 85%
  • 集成测试通过
  • 端到端测试通过
  • 静态分析无问题
  • 安全扫描已通过
  • 依赖审计无问题
  • 负载测试已完成
文档要求
  • CHANGELOG.md 已更新
  • README.md 反映了新功能
  • 已生成 API 文档
  • 已为破坏性变更编写迁移指南
  • 已准备部署说明
  • 回滚流程已记录
干系人审批
  • 产品经理签字确认
  • 工程负责人批准
  • QA 验证完成
  • 安全团队放行
  • 法务审核(如适用)
  • 合规检查(如受监管)
部署协调
沟通计划

内部干系人:

  • 工程团队:技术变更和回滚流程
  • 产品团队:功能描述和用户影响
  • 支持团队:已知问题和故障排查指南
  • 销售团队:面向客户的变更和沟通要点

外部沟通:

  • 面向用户的发布说明
  • 面向开发者的 API 变更日志
  • 破坏性变更的迁移指南
  • 停机通知(如适用)
部署顺序
  1. 部署前(T-24 小时):最终验证,冻结代码
  2. 数据库迁移(T-2 小时):运行并验证结构变更
  3. 蓝绿部署(T-0):逐步切换流量
  4. 部署后(T+1 小时):监控指标和日志
  5. 回滚窗口(T+4 小时):回滚决策节点
监控与验证
  • 应用健康检查
  • 错误率监控
  • 性能指标跟踪
  • 用户体验监控
  • 业务指标验证
  • 第三方服务集成健康状况
热修复流程

热修复用于处理需要立即部署的生产环境关键问题:

严重级别划分

P0 - 紧急:系统完全中断、数据丢失、安全漏洞

  • SLA:2 小时内修复
  • 流程:紧急部署,全员参与
  • 审批:工程负责人 + 值班经理

P1 - 高:重要功能故障,对用户影响重大

  • SLA:24 小时内修复
  • 流程:加急评审与部署
  • 审批:工程负责人 + 产品经理

P2 - 中:次要功能问题,对用户影响有限

  • SLA:在下一个发布周期中修复
  • 流程:常规评审流程
  • 审批:标准 PR 评审
紧急响应流程
  1. 事件声明:通知值班团队
  2. 评估:确定严重级别和影响范围
  3. 热修复分支:从最近的稳定版本创建
  4. 最小化修复:仅针对根本原因进行修复
  5. 加急测试:自动化测试 + 人工验证
  6. 紧急部署:部署到生产环境
  7. 事后复盘:根因分析与预防措施
回滚规划

每次发布都必须有经过测试的回滚方案:

回滚触发条件
  • 错误率飙升: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:面向公众的事件沟通

最佳实践

发布规划
  1. 定期节奏:建立可预测的发布计划
  2. 功能冻结:发布前 48 小时锁定变更
  3. 风险评估:评估变更可能带来的影响
  4. 利益相关方对齐:确保所有团队都已做好准备
质量保障
  1. 自动化测试:全面的测试覆盖
  2. 预发布环境:类生产环境的测试环境
  3. 金丝雀发布:逐步推送给部分用户
  4. 监控:主动发现问题
沟通
  1. 清晰的时间线:尽早沟通排期
  2. 定期更新:在发布过程中提供状态报告
  3. 问题透明:坦诚沟通问题
  4. 事后复盘:从事件中学习并持续改进
自动化
  1. 减少人工步骤:自动化重复性任务
  2. 流程一致:每次都遵循相同的步骤
  3. 审计追踪:记录所有发布活动
  4. 自助服务:让团队能够安全地自行部署

常见反模式

流程反模式
  • 手动部署:容易出错且不一致
  • 临时变更:未经充分测试就引入风险
  • 跳过测试:未经验证即部署
  • 沟通不畅:利益相关方不了解变更
技术反模式
  • 单体式发布:规模大、频率低、风险高的发布
  • 耦合部署:必须一起部署的服务
  • 没有回滚方案:无法快速从问题中恢复
  • 环境漂移:生产环境与预发布环境不一致
文化反模式
  • 指责文化:害怕变更或上报问题
  • 英雄主义文化:依赖个人而非流程
  • 完美主义:为了微小改进而推迟发布
  • 风险规避:因恐惧而避免必要的变更

入门指南

  1. 评估:梳理当前发布流程及痛点
  2. 工具配置:为你的仓库配置脚本
  3. 流程定义:为团队选择合适的工作流
  4. 自动化:实现 CI/CD 流水线与质量门禁
  5. 培训:让团队熟悉新流程和工具
  6. 监控:为发布设置指标与告警
  7. 迭代:基于反馈和指标持续改进

Release Manager 技能可以将混乱的部署转变为可预测、可靠的发布,从而在整个组织中建立信心。

评论

支持 Markdown