关于 release
指导维护者准备并发布 ButterCut 版本的 Skill,涵盖测试、版本更新、变更日志、Git 标签和 GitHub Release;不包含发布到 RubyGems。
主要功能
- 01发布前运行测试
- 02更新项目版本号
- 03编写面向用户的变更日志
- 04创建并推送 Git 标签
- 05发布 GitHub Release
适用场景
- 01发布已合并的功能或修复
- 02准备语义化版本发布
- 03验证已发布的版本
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ barefootford/ buttercut --skill release安装后在 Claude Code 中输入/release确认已加载。
详细介绍
技能:发布 ButterCut
指导完成整个发布流程:提升版本号、更新变更日志、执行 Git 操作,以及创建 GitHub Release。
ButterCut 仅通过 git clone 分发。RubyGems 上的 buttercut gem 已于 0.7.1 弃用,不再发布。请勿在此技能中运行 gem build 或 gem push,这些步骤已移除。
使用时机
- 发布 ButterCut 的新版本
- 合并了应当发布的功能或修复后
工作流
1. 先运行测试
重要:发布前务必运行测试。测试失败时,绝不发布。
bundle exec rspec
如果任何测试失败,请立即停止,并要求用户先修复问题,再继续发布。
2. 检查当前状态
# Read current version
cat lib/buttercut/version.rb
# Check git status (must be clean)
git status
# Check existing tags
git tag -l
如果 git status 不干净,请停止,并要求用户先提交或暂存更改,再继续。
3. 确定新版本号
询问用户要发布哪种版本,遵循 语义化版本规范:
- MAJOR(1.0.0):有不兼容的更改
- MINOR(0.2.0):新增功能,向后兼容
- PATCH(0.1.1):错误修复,向后兼容
根据当前版本和发布类型计算新版本号。
4. 更新版本文件
在 lib/buttercut/version.rb 中编辑新版本号:
class ButterCut
VERSION = "0.8.0" # Update this
end
5. 更新 Gemfile.lock
运行 bundle install,使 Gemfile.lock 反映新版本:
bundle install
继续之前,确认 Gemfile.lock 中的版本号已更新。
6. 收集变更日志内容
阅读上一个标签之后的提交(git log --oneline v<last>..HEAD),并按对用户的意义进行归类。请用户补充任何遗漏:
- 此版本有哪些更改?
- 有哪些新功能?
- 有哪些错误修复?
- 有哪些不兼容的更改?
7. 更新 CHANGELOG.md
变更日志面向客户。读者是视频剪辑师,而不是工程师。每条内容都要写出用户获得的益处,而不是描述代码改了什么。
文风规则:
- 面向客户,不要推销。 描述用户现在可以做什么,或什么问题得到修复。不要使用夸张词语(“快如闪电”“改变游戏规则”“大幅提升”)。
- 直截了当。 使用通俗语言,直接说明内容。
- 遵循 AP Style。 使用句首字母大写格式、使用系列逗号、小于 10 的数字拼写出来等。
- 尽可能使用主动语态。 使用“ButterCut 打开你的时间线”,而不是“时间线被打开”。
- 不要使用 em dash 或 en dash。 改用句号、逗号或括号。
- 使用剪辑师的词汇。 像剪辑师一样交流(剪切、序列、时间线、素材、素材库),而不是开发者。省略内部细节、代码符号、文件路径和类名。如果更改不会对用户产生可见影响(重构、测试覆盖率、仓库清理),则不要写入。
在 ## [Unreleased] 下方新增条目,按 ### New & Improved 和 ### Fixed 分类(仅在用户可见行为发生更改时添加 ### Changed):
## [0.8.0] - 2026-MM-DD
One or two plain sentences on what this release means for the user.
### New & Improved
- **Short benefit headline.** A sentence on what the user can now do.
### Fixed
- **Short benefit headline.** What used to go wrong, and that it now works.
8. 提交版本号更改
git add lib/buttercut/version.rb Gemfile.lock CHANGELOG.md
git commit -m "Bump version to 0.8.0"
9. 创建并推送 Git 标签
git tag v0.8.0
git push origin main
git push origin v0.8.0
10. 创建 GitHub Release
使用 GitHub CLI:
gh release create v0.8.0 \
--title "v0.8.0" \
--notes "[Release notes from changelog]"
如果没有 gh CLI:
指导用户手动创建 Release:
- 前往 https://github.com/barefootford/buttercut/releases/new
- 选择标签:v0.8.0
- 设置标题:v0.8.0
- 在说明中粘贴变更日志内容
- 点击“Publish release”
11. 验证发布
检查以下内容是否正常:
- GitHub Releases:https://github.com/barefootford/buttercut/releases
- Git 标签:
git tag -l
12. 返回成功响应
提供摘要:
✓ ButterCut 0.8.0 released successfully
Version: 0.8.0
Git tag: v0.8.0
GitHub Release: https://github.com/barefootford/buttercut/releases/tag/v0.8.0
Update existing installs with the `update-buttercut` skill, or:
cd /path/to/buttercut && git pull
关键原则
务必先运行测试 —— 测试失败时,绝不发布。
Git 工作区必须干净 —— 发布前不得有未提交的更改。
先推送,再发布 —— 创建 GitHub Release 前,必须先推送标签。
遵循语义化版本规范 —— 严格遵循语义化版本号规则。
必须提供变更日志 —— 每次发布都要记录更改。
不要发布到 RubyGems —— 此 gem 已于 0.7.1 弃用,且 gemspec 已从仓库移除。如果你准备运行 gem build 或 gem push,请停下来重新阅读此技能。
常见问题
**测试失败:**请先让用户修复测试,再继续。 **Git 工作区不干净:**请先让用户提交或暂存更改。 **标签已存在:**确认这不是重复发布。 **未安装 GitHub CLI:**提供手动发布说明。