Kode-cli/PUBLISH_GUIDE.md
2025-08-31 02:16:59 +08:00

4.1 KiB
Raw Permalink Blame History

发包脚本使用指南

Kode 项目提供了两套发包流程,用于不同的发布场景:

🚀 快速使用

开发版本发布 (测试用)

npm run publish:dev

正式版本发布

npm run publish:release

📦 发包策略

1. 开发版本 (dev tag)

  • 目的: 内部测试和预发布验证
  • 版本格式: 1.1.16-dev.1, 1.1.16-dev.2
  • 安装方式: npm install -g @shareai-lab/kode@dev
  • 特点:
    • 自动递增 dev 版本号
    • 不影响正式版本的用户
    • 可以快速迭代测试

2. 正式版本 (latest tag)

  • 目的: 面向最终用户的稳定版本
  • 版本格式: 1.1.16, 1.1.17, 1.2.0
  • 安装方式: npm install -g @shareai-lab/kode (默认)
  • 特点:
    • 语义化版本控制
    • 严格的发布流程
    • 包含完整的测试和检查

🛠️ 脚本功能详解

开发版本发布 (scripts/publish-dev.js)

自动化流程:

  1. 检查当前分支和工作区状态
  2. 🔢 自动生成递增的 dev 版本号
  3. 🔨 构建项目
  4. 🔍 运行预发布检查
  5. 📤 发布到 npm 的 dev tag
  6. 🏷️ 创建 git tag
  7. 🔄 恢复 package.json (不提交版本变更)

使用场景:

  • 功能开发完成,需要内部测试
  • PR 合并前的最终验证
  • 快速修复验证

安全特性:

  • 临时修改 package.json发布后自动恢复
  • 失败时自动回滚
  • 不污染主分支版本号

正式版本发布 (scripts/publish-release.js)

交互式流程:

  1. 🔍 检查分支 (建议在 main/master)
  2. 🧹 确保工作区干净
  3. 📡 拉取最新代码
  4. 🔢 选择版本升级类型:
    • patch (1.1.16 → 1.1.17): 修复 bug
    • minor (1.1.16 → 1.2.0): 新功能
    • major (1.1.16 → 2.0.0): 破坏性变更
    • custom: 自定义版本号
  5. 确认发布信息
  6. 🧪 运行测试和类型检查
  7. 🔨 构建项目
  8. 📝 提交版本更新
  9. 🏷️ 创建 git tag
  10. 📤 发布到 npm (默认 latest tag)
  11. 📡 推送到 git 仓库

安全特性:

  • 交互式确认,避免误发布
  • 测试失败时自动回滚版本号
  • 完整的 git 历史记录

🎯 最佳实践

开发流程建议

# 1. 开发功能
git checkout -b feature/new-feature
# ... 开发代码 ...
git commit -am "feat: add new feature"

# 2. 发布开发版本测试
npm run publish:dev
# 安装测试: npm install -g @shareai-lab/kode@dev

# 3. 测试通过后合并到主分支
git checkout main
git merge feature/new-feature

# 4. 发布正式版本
npm run publish:release

版本号管理

  • 开发版: 基于当前正式版本自动递增
  • 正式版: 遵循 语义化版本 规范
  • Git 标签: 自动创建,格式 v1.1.16

标签管理

# 查看所有版本
npm view @shareai-lab/kode versions --json

# 查看 dev 版本
npm view @shareai-lab/kode@dev version

# 查看最新正式版本  
npm view @shareai-lab/kode@latest version

🔧 故障排除

常见问题

发布失败怎么办?

  • 脚本会自动回滚 package.json
  • 检查错误信息,修复后重新运行

版本号冲突?

  • 开发版本会自动递增,不会冲突
  • 正式版本发布前会检查是否已存在

权限问题?

  • 确保已登录 npm: npm whoami
  • 确保有包的发布权限

Git 相关错误?

  • 确保有 git 推送权限
  • 检查远程仓库配置: git remote -v

手动清理

# 如果发布过程中断,可能需要手动清理
git tag -d v1.1.16-dev.1  # 删除本地标签
git push origin :v1.1.16-dev.1  # 删除远程标签

📊 监控和分析

# 查看包下载统计
npm view @shareai-lab/kode

# 查看所有版本的详细信息
npm view @shareai-lab/kode versions --json

# 测试安装
npm install -g @shareai-lab/kode@dev
kode --version

通过这套双发包系统,你可以:

  • 🚀 快速发布开发版本进行内部测试
  • 🛡️ 安全发布正式版本给最终用户
  • 📈 保持清晰的版本管理和发布历史
  • 自动化大部分重复操作,减少人为错误