用途:以原子方式完成一次版本发布,包括递增版本号、为 CHANGELOG 段落标注日期、提交并打标签。通过 /cut-release X.Y.Z 调用,版本号由 $ARGUMENTS 传入。
主要能力与流程:
- 预检:运行 git status --porcelain,输出必须为空,否则停止并告知用户。
- 运行 python -c "import mdvw; print(mdvw.version)",版本必须以 .devN 结尾;否则停止并提示先运行 --post-release 或手动修正。
- 确认 CHANGELOG.md 中的 ## [Unreleased] 含有真实说明而非占位注释;若看起来为空,需先向用户确认。
- 运行 /verify 技能,测试不通过则不发布。
- 全部通过后运行 python scripts/release.py $ARGUMENTS。
- 报告生成的提交 SHA 与标签,并原样打印推送命令供用户执行:git push origin main v$ARGUMENTS。
限制与注意事项:不会自动推送;标签推送会触发 release.yml 并发布到 PyPI,需由用户决定。用户推送且发布完成后,可建议运行 python scripts/release.py --post-release <next>.dev0 重新开启开发周期。