Skip to content

发布流程 ​

本文档描述 Gaia Assembler 项目的版本发布流程和规范。

版本策略 ​

语义化版本 ​

我们遵循 语义化版本 2.0.0 规范:

  • 主版本号 (MAJOR): 不兼容的 API 修改
  • 次版本号 (MINOR): 向下兼容的功能性新增
  • 修订号 (PATCH): 向下兼容的问题修正

版本分支策略 ​

main (稳定版本)
├── develop (开发分支)
├── release/v0.3.0 (发布分支)
└── hotfix/v0.2.1 (热修复分支)

发布准备 ​

1. 版本规划 ​

  • 确定发布范围和功能
  • 创建 GitHub Milestone
  • 分配 Issue 和 PR 到 Milestone

2. 代码冻结 ​

bash
# 创建发布分支
git checkout develop
git pull origin develop
git checkout -b release/v0.3.0
git push origin release/v0.3.0

3. 版本号更新 ​

更新以下文件中的版本号:

bash
# 更新 Cargo.toml 文件
find . -name "Cargo.toml" -exec sed -i 's/version = "0.2.0"/version = "0.3.0"/g' {} \;

# 更新文档版本
sed -i 's/version: "0.2"/version: "0.3"/g' .vitepress/config.ts

4. 变更日志 ​

更新 CHANGELOG.md:

markdown
## [0.3.0] - 2024-01-15

### Added
- 新增 PE 后端支持
- 添加调试信息生成
- 支持增量编译

### Changed
- 优化 JVM 字节码生成
- 改进错误信息显示

### Fixed
- 修复 CLR 后端内存泄漏
- 解决符号解析问题

### Deprecated
- 废弃旧的 API 接口

### Removed
- 移除过时的实验性功能

### Security
- 修复潜在的安全漏洞

发布执行 ​

1. 质量检查 ​

bash
# 运行完整测试套件
cargo test --all

# 代码格式检查
cargo fmt --check

# 代码质量检查
cargo clippy -- -D warnings

# 文档生成测试
cargo doc --no-deps

# 基准测试
cargo bench

2. 构建验证 ​

bash
# 清理构建
cargo clean

# 发布构建
cargo build --release --all

# 交叉编译验证
cargo build --target x86_64-pc-windows-gnu
cargo build --target x86_64-unknown-linux-gnu
cargo build --target x86_64-apple-darwin

3. 集成测试 ​

bash
# 运行集成测试
cargo test --test integration_tests

# 端到端测试
./scripts/e2e-tests.sh

# 性能回归测试
./scripts/performance-tests.sh

4. 文档更新 ​

bash
# 生成 API 文档
cargo doc --all --no-deps

# 构建用户文档
cd gaia-document
npm run build

# 部署文档预览
npm run preview

发布部署 ​

1. 创建发布标签 ​

bash
# 合并到主分支
git checkout main
git merge release/v0.3.0

# 创建标签
git tag -a v0.3.0 -m "Release version 0.3.0"
git push origin main
git push origin v0.3.0

2. GitHub Release ​

  1. 访问 GitHub Releases 页面
  2. 点击 "Create a new release"
  3. 选择标签 v0.3.0
  4. 填写发布标题和说明
  5. 上传构建产物
  6. 发布 Release

3. 包发布 ​

bash
# 发布到 crates.io
cargo publish -p gaia-types
cargo publish -p gaia-assembler
cargo publish -p pe-assembler
cargo publish -p clr-assembler
cargo publish -p jvm-assembler
cargo publish -p wasi-assembler

4. 文档部署 ​

bash
# 部署文档到 GitHub Pages
cd gaia-document
npm run deploy

发布后维护 ​

1. 监控和反馈 ​

  • 监控下载量和使用情况
  • 收集用户反馈和问题报告
  • 跟踪性能指标

2. 热修复流程 ​

如果发现严重问题:

bash
# 创建热修复分支
git checkout v0.3.0
git checkout -b hotfix/v0.3.1

# 修复问题
# ... 进行必要的修复 ...

# 发布热修复版本
git tag -a v0.3.1 -m "Hotfix version 0.3.1"
git push origin hotfix/v0.3.1
git push origin v0.3.1

# 合并回主分支和开发分支
git checkout main
git merge hotfix/v0.3.1
git checkout develop
git merge hotfix/v0.3.1

3. 版本支持策略 ​

  • 当前版本: 完全支持,包括新功能和修复
  • 前一个主版本: 安全修复和严重错误修复
  • 更早版本: 仅安全修复

发布检查清单 ​

发布前检查 ​

  • [ ] 所有计划功能已完成
  • [ ] 所有测试通过
  • [ ] 文档已更新
  • [ ] 变更日志已完成
  • [ ] 版本号已更新
  • [ ] 性能测试通过
  • [ ] 安全扫描通过

发布时检查 ​

  • [ ] 发布分支已创建
  • [ ] 标签已创建并推送
  • [ ] GitHub Release 已发布
  • [ ] 包已发布到 crates.io
  • [ ] 文档已部署

发布后检查 ​

  • [ ] 下载链接可用
  • [ ] 文档网站正常
  • [ ] 示例代码可运行
  • [ ] 社区通知已发送
  • [ ] 监控系统正常

回滚策略 ​

如果发布出现严重问题:

  1. 立即响应: 在 GitHub 上标记问题版本
  2. 通信: 通知用户和社区
  3. 修复: 快速修复或回滚到稳定版本
  4. 验证: 确保修复版本正常工作
  5. 重新发布: 发布修复版本

相关资源 ​

Released under the MIT License.