5.1 KiB
5.1 KiB
PromptX 分支管理策略
分支模型
PromptX采用简化版Git Flow分支策略,包含三种类型分支:
main ──●──●──●──●──●──● (正式版本: v0.1.0, v0.2.0)
↑ ↑ ↑
develop ──●──●──●──●──●──●──● (snapshot: 0.1.0-snapshot.1)
↑ ↑ ↑ ↑ ↑
feature/xxx ●──●──●
feature/yyy ●──●──●
分支说明
🚀 main分支
- 用途: 生产就绪的稳定代码
- 保护: 只能通过PR合并,需要代码审查
- 发布: 自动发布正式版本到npm
- 版本:
v0.1.0,v0.2.0,v1.0.0
🔄 develop分支
- 用途: 日常开发集成分支
- 保护: 可直接推送,但建议通过PR
- 发布: 自动发布snapshot版本到npm
- 版本:
0.1.0-snapshot.1,0.1.0-snapshot.2
🌟 feature分支
- 用途: 功能开发和Bug修复
- 命名:
feature/功能名或fix/bug名 - 合并: 合并到develop分支
- 生命周期: 功能完成后删除
工作流程
1. 功能开发
# 从develop创建功能分支
git checkout develop
git pull origin develop
git checkout -b feature/new-awesome-feature
# 开发功能
# ... 编码 ...
# 提交代码
git add .
git commit -m "feat: add awesome feature"
# 推送分支
git push origin feature/new-awesome-feature
2. 创建PR到develop
- 在GitHub上创建PR:
feature/new-awesome-feature→develop - 填写PR模板,添加changeset
- 等待代码审查和CI通过
- 合并后自动发布snapshot版本
3. 发布正式版本
# 从develop创建PR到main
git checkout develop
git pull origin develop
# 在GitHub上创建PR: develop → main
# 合并后自动发布正式版本
版本发布策略
Snapshot版本(develop分支)
- 触发条件: 推送到develop分支
- 版本格式:
0.1.0-snapshot.1 - npm标签:
@snapshot - 用途: 测试和验证新功能
# 安装snapshot版本
npm install -g dpml-prompt@snapshot
正式版本(main分支)
- 触发条件: 推送到main分支
- 版本格式:
0.1.0,0.2.0,1.0.0 - npm标签:
@latest - 用途: 生产环境使用
# 安装正式版本
npm install -g dpml-prompt@latest
分支保护规则
main分支
- ✅ 需要PR审查
- ✅ 需要CI通过
- ✅ 需要最新代码
- ❌ 禁止直接推送
- ❌ 禁止强制推送
develop分支
- ✅ 需要CI通过
- ⚠️ 建议通过PR(可直接推送)
- ❌ 禁止强制推送
Changeset管理
添加Changeset
# 功能开发时添加changeset
pnpm changeset
# 选择变更类型
# - patch: Bug修复
# - minor: 新功能
# - major: 破坏性变更
Changeset类型对应
| 变更类型 | Changeset | 版本影响 | 示例 |
|---|---|---|---|
| 🐛 Bug修复 | patch | 0.1.0 → 0.1.1 | 修复CLI参数解析错误 |
| ✨ 新功能 | minor | 0.1.0 → 0.2.0 | 添加新的remember命令 |
| 💥 破坏性变更 | major | 0.1.0 → 1.0.0 | 改变CLI命令结构 |
实际操作示例
开发新功能
# 1. 创建功能分支
git checkout develop
git checkout -b feature/memory-search
# 2. 开发功能
# ... 编码 ...
# 3. 添加changeset
pnpm changeset
# 选择: minor
# 描述: "添加记忆搜索功能"
# 4. 提交并推送
git add .
git commit -m "feat: add memory search functionality"
git push origin feature/memory-search
# 5. 创建PR到develop
# 合并后自动发布snapshot版本
发布正式版本
# 1. 确保develop分支稳定
git checkout develop
git pull origin develop
# 2. 运行完整测试
pnpm test:ci
# 3. 创建PR: develop → main
# 在GitHub UI中操作
# 4. 合并PR后自动发布正式版本
紧急修复流程
对于需要紧急修复的bug:
# 1. 从main创建hotfix分支
git checkout main
git checkout -b hotfix/critical-bug
# 2. 修复bug
# ... 编码 ...
# 3. 添加changeset
pnpm changeset
# 选择: patch
# 4. 同时合并到main和develop
# 创建PR到main: hotfix → main
# 创建PR到develop: hotfix → develop
最佳实践
✅ 推荐做法
- 功能开发从develop分支创建
- 每个功能分支专注单一功能
- 提交前运行测试和lint
- 写清晰的提交信息
- 及时添加changeset
❌ 避免做法
- 直接在main分支开发
- 长期存在的功能分支
- 跳过changeset添加
- 强制推送到保护分支
- 合并未经测试的代码
工具和自动化
GitHub Actions
- CI: 每次PR都运行测试
- Snapshot发布: develop分支自动发布
- 正式发布: main分支自动发布
- PR检查: 自动检查changeset
本地工具
# 安装git hooks
pnpm prepare
# 运行完整验证
pnpm validate
# 查看changeset状态
pnpm changeset:status