SuperAPI AI 工具集

apply-semantic-versioning

通用与其它

查看项目

更新于 10-16 08:06

技能介绍

用途:在准备新发布时,根据自上次发布以来的变更确定并应用正确的语义化版本号(SemVer 2.0.0),涵盖 major/minor/patch 分类与预发布标识。

主要能力:读取项目根目录的版本文件(DESCRIPTION、package.json、Cargo.toml、pyproject.toml 或 VERSION);分析自上次发布以来的 Git 提交;将变更分类为破坏性(major)、新功能(minor)或修复(patch);计算新版本号;更新所有版本文件;创建 Git 标签。

使用方式:先读取当前版本,例如 grep "^Version:" DESCRIPTION、grep '"version"' package.json、grep '^version' Cargo.toml、grep 'version' pyproject.toml 或 cat VERSION;再用 git describe --tags --abbrev=0 与 git log --oneline v1.2.3..HEAD 获取变更;按规则分类后计算新版本,更新文件并提交,最后用 git tag -a v1.3.0 -m "Release v1.3.0" 打标签。

适用场景:发布前确定版本号、合并变更后打标签前、判断某变更是否属于破坏性变更、添加 alpha/beta/rc 预发布标识、解决版本号分歧。

限制:需要项目根目录存在版本文件及自上次发布以来的 Git 历史;无版本文件时可从 0.1.0 或 1.0.0 起步;无 Git 历史或标签时需人工描述变更;变更含义不明确时应偏向更高版本;预发布优先级为 alpha < beta < rc < 正式版;构建元数据不影响版本优先级。其他细节暂未提供。