# 发布流程规范

## 版本规范

### 1. 版本号格式
- 遵循语义化版本 (Semantic Versioning)
- 格式：`主版本号.次版本号.修订号`
  - 主版本号：不兼容的API修改
  - 次版本号：向下兼容的功能性新增
  - 修订号：向下兼容的问题修正

### 2. 预发布版本
- Alpha版本：`x.y.z-alpha.n`
- Beta版本：`x.y.z-beta.n`
- RC版本：`x.y.z-rc.n`

## 发布流程

### 1. 发布准备
- 确认所有待发布功能已完成
- 确保所有测试通过
- 更新版本号和变更记录
- 创建发布分支

### 2. 预发布检查
- 代码审查完成
- 测试覆盖率达标
- 文档更新完整
- 性能测试通过

### 3. 发布步骤
```bash
# 1. 创建发布分支
git checkout -b release/vX.Y.Z

# 2. 更新版本号
pnpm version X.Y.Z

# 3. 更新变更记录
git add CHANGELOG.md
git commit -m "docs: 更新版本 vX.Y.Z 变更记录"

# 4. 构建和测试
pnpm build
pnpm test

# 5. 合并到主分支
git checkout master
git merge release/vX.Y.Z

# 6. 打标签
git tag -a vX.Y.Z -m "版本 X.Y.Z"

# 7. 推送到远程
git push origin master
git push origin vX.Y.Z
```

### 4. 发布后确认
- 确认部署成功
- 验证主要功能
- 监控系统状态
- 收集用户反馈

## 变更记录规范

### 1. CHANGELOG格式
```markdown
# 变更记录

## [X.Y.Z] - YYYY-MM-DD

### 新增
- 新功能描述

### 修改
- 功能变更描述

### 修复
- 问题修复描述

### 移除
- 移除功能描述
```

### 2. 记录要求
- 使用中文描述
- 条目清晰具体
- 包含相关Issue编号
- 标注破坏性变更

## 发布环境

### 1. 开发环境
- 用于日常开发和测试
- 自动部署最新代码
- 允许不稳定版本

### 2. 测试环境
- 用于功能验证
- 部署预发布版本
- 模拟生产配置

### 3. 预发布环境
- 用于发布前验证
- 使用生产配置
- 数据与生产同步

### 4. 生产环境
- 仅部署稳定版本
- 严格控制部署时间
- 保持变更记录

## 回滚机制

### 1. 回滚条件
- 发现严重缺陷
- 性能严重下降
- 系统不可用

### 2. 回滚步骤
```bash
# 1. 确认回滚版本
git tag -l

# 2. 切换到上一版本
git checkout vX.Y.Z-1

# 3. 创建回滚分支
git checkout -b rollback/vX.Y.Z

# 4. 部署上一版本
pnpm deploy:rollback

# 5. 创建回滚记录
git commit -m "revert: 回滚到版本 vX.Y.Z-1"
```

### 3. 回滚后处理
- 通知相关人员
- 分析问题原因
- 制定修复计划
- 更新变更记录 