跳到正文
本页目录

把一个 workspace 作为一个版本发布

Verso 是面向统一版本仓库的原生发布 CLI。它会发现需要发布的 manifest,写入同一个目标版本,按需在 changelog 顶部加入 Conventional Commit 记录,创建 annotated tag,再原子推送当前上游分支和这个准确的 tag。

Shell
# 使用你偏好的 package manager 安装 @amamo/verso,然后:
verso doctor
verso --dry-run

Verso 的契约

text
verso.toml + package manifest + Git 历史
  -> 校验配置、版本、工作区、分支和 upstream
  -> 选择一个 SemVer 目标版本
  -> 更新 package manifest、配置的 Cargo 文件和 changelog
  -> 创建 release commit 和 annotated tag
  -> git push --atomic <upstream> <branch> <exact-tag>
Verso 负责你的仓库负责
发现 package 并检查统一版本通过 hook 运行测试、构建和策略检查
更新 JSON、JSON5、YAML、Cargo 和 changelog管理 registry 凭据并发布 package
创建 release commit、annotated tag 和原子推送响应 tag,生成产物和 GitHub Release
dry-run 和按阶段执行的本地回滚远端推送成功后的恢复决策

适用场景

当所有可发布 package 共用同一个版本和 Git tag 时,Verso 很合适。单包项目也受支持;根目录存在受支持的 package manifest 时,可以不创建配置文件。

如果各 package 独立版本、发布 registry 必须属于本地事务,或远端不支持原子推送,应选择其他发布模型。

安全模型

  • verso doctor 在不开始发布的情况下检查仓库。
  • verso --dry-run 会列出文件、hook 和 Git 命令,但不写入文件,也不执行会修改 Git 的命令。
  • 真正发布要求当前位于有 upstream 的具名分支,且本地分支不能落后于 upstream。
  • 默认要求工作区干净;宽松模式仍要求 index 和所有 release 文件干净。
  • 推送前的执行错误会触发按阶段清理;用户主动取消时,会有意保留已经完成的阶段,避免静默丢弃可见工作。
  • 推送失败会保留本地 commit 和 tag;after_push hook 失败时,远端已经接收两个 ref。

继续阅读

  • 快速开始:安装 Verso 并预览第一次发布。
  • 配置参考:了解所有配置项和发现规则。
  • CLI 参考:查看命令、交互提示、JSON 输出和退出行为。
  • 发布流程:理解确认点、回滚边界和 CI 交接。
Copyright © 2026 白熱.