用途:按配置驱动的流程完成软件发布,包括版本规划、就绪检查、变更日志、兼容性审查、版本号写入、提交、打标签与推送,并维护分级兼容策略。适用于用户要求 release、ship it、cut a version、bump version、tag a release 或更新 changelog/COMPATIBILITY 的场景。
主要能力:以 release.config.json 的 surfaces[] 声明公开接口,每个 surface 有 experimental→preview→stable 层级和兼容模式;只有 stable 层级的破坏性变更会强制 major 版本升级,由引擎 enforce_bump 执行。核心机制在 scripts/release.py(仅用标准库、有单元测试)。
使用方式:仓库根目录需有 release.config.json(可从 templates/release.config.json.tmpl 生成)。命令为 /release <patch|minor|major>。步骤依次为:前置条件(releaseBranch 默认 main,需干净且与 origin 同步);用 python3 scripts/release.py --config <cfg> plan <kind> 打印新版本与标签;运行 cfg.gate 与 cfg.extraGate[] 就绪门禁;用 git log <lastTag>..HEAD --format=%s 收集提交并起草 CHANGELOG;审查 COMPATIBILITY.md;用 python3 scripts/release.py --config <cfg> bump <kind> 写入版本文件并刷新 lockfiles;提交 chore(release): v<new>;git tag v<new> 并推送标签与分支;最后报告标签、发布工作流 URL 及关闭的 issue。
限制:无 --dry-run 参数,试运行即执行步骤 1–5 但不做变更,不运行 bump、commit 或 tag;bump 是唯一会写文件的引擎命令。仅在 Tauri + Rust + SvelteKit 仓库(Cull)上经过参考测试,其他技术栈靠配置支持但尚未验证,新栈首次运行应视为试运行。Cull 仓库应使用 $cull-release。cargo-deny / cargo-audit / SBOM 为待办,暂只列出不强制。