3.7 KiB
3.7 KiB
版本控制和发布
BMad方法使用一个简化的发布系统,具有手动控制和自动生成发布说明的功能。
🚀 发布工作流
命令行发布(推荐)
创建带有精美发布说明的发布的最快方法:
# 预览发布内容
npm run preview:release
# 创建一个发布
npm run release:patch # 5.1.0 → 5.1.1 (错误修复)
npm run release:minor # 5.1.0 → 5.2.0 (新功能)
npm run release:major # 5.1.0 → 6.0.0 (重大更改)
# 观察发布过程
npm run release:watch
一行命令发布
npm run preview:release && npm run release:minor && npm run release:watch
📝 自动发生的事情
当您触发发布时,GitHub Actions工作流会自动:
- ✅ 验证 - 运行测试、linting和格式检查
- ✅ 提升版本 - 更新
package.json和安装程序版本 - ✅ 生成发布说明 - 将自上次发布以来的提交分类:
- ✨ 新功能 (
feat:,Feature:) - 🐛 错误修复 (
fix:,Fix:) - 🔧 维护 (
chore:,Chore:) - 📦 其他更改 (其他所有内容)
- ✨ 新功能 (
- ✅ 创建Git标签 - 标记发布版本
- ✅ 发布到NPM - 带有
@latest标签供用户安装 - ✅ 创建GitHub发布 - 带有格式化的发布说明
📋 示例发布说明
工作流会自动生成如下专业的发布说明:
## 🚀 v5.2.0的新功能
### ✨ 新功能
- feat: 添加团队协作模式
- feat: 通过交互式提示增强CLI
### 🐛 错误修复
- fix: 解决安装路径问题
- fix: 处理代理加载中的边缘情况
### 🔧 维护
- chore: 更新依赖项
- chore: 改进错误消息
## 📦 安装
```bash
npx bmad-method install
```
完整变更日志: https://github.com/bmadcode/BMAD-METHOD/compare/v5.1.0...v5.2.0
## 🎯 用户安装
任何发布后,用户可以立即通过以下方式获取新版本:
```bash
npx bmad-method install # 总是获取最新版本
```
## 📊 发布前预览
始终预览您的发布中将包含的内容:
```bash
npm run preview:release
```
这将显示:
- 自上次发布以来的提交
- 分类的更改
- 估计的下一个版本
- 发布说明预览
## 🔧 手动发布(GitHub UI)
您也可以通过GitHub Actions触发发布:
1. 转到**GitHub Actions** → **Manual Release**
2. 点击**"Run workflow"**
3. 选择版本提升类型(patch/minor/major)
4. 其他所有事情都会自动发生
## 📈 版本策略
- **Patch** (5.1.0 → 5.1.1): 错误修复、次要改进
- **Minor** (5.1.0 → 5.2.0): 新功能、增强
- **Major** (5.1.0 → 6.0.0): 重大更改、重大重新设计
## 🛠️ 开发工作流
1. **自由开发** - 将PR合并到main而不会触发发布
2. **测试未发布的更改** - 克隆存储库以测试最新的main分支
3. **准备好后发布** - 使用命令行或GitHub Actions来发布
4. **用户获取更新** - 通过简单的`npx bmad-method install`命令
这使您可以完全控制何时发布,同时自动化所有繁琐的部分,如版本提升、发布说明和发布。
## 🔍 故障排除
### 检查发布状态
```bash
gh run list --workflow="Manual Release"
npm view bmad-method dist-tags
git tag -l | sort -V | tail -5
```
### 查看最新发布
```bash
gh release view --web
npm view bmad-method versions --json
```
### 如果需要版本同步
如果发布后您的本地文件与已发布版本不匹配:
```bash
./tools/sync-version.sh # 自动将本地文件与npm最新版本同步
```
### 如果发布失败
- 检查GitHub Actions日志:`gh run view <run-id> --log-failed`
- 验证NPM令牌是否已配置
- 确保分支保护允许工作流推送