用途:为仓库创建并推送新的语义化版本(semver)发布标签。
主要流程与能力:
- 通过 AskUserQuestion 询问发布类型:patch、minor 或 major。
- 获取远端最新标签:git fetch --tags origin;再用 git tag --sort=-version:refname -l 'v*' | head -1 取最新 semver 标签(假定 v 前缀,如 v1.2.3)。
- 按选择递增版本:patch 为 v1.2.3→v1.2.4,minor 为 v1.2.3→v1.3.0,major 为 v1.2.3→v2.0.0。
- 校验 META.json:读取该文件,确认 version 与 provides.pg_stat_ch.version 都等于新版本号(不含 v 前缀)。不一致则中止,提示用户先更新 META.json,因为 PGXN 使用该文件确定发布版本。
- 验证当前提交存在于远端:git fetch origin;git branch -r --contains HEAD。若无远端分支包含 HEAD 则中止,提示先推送提交。
- 创建并推送标签:git tag -a <new_version> -m "Release <new_version>";git push origin <new_version>。成功后报告新标签名。
版本解析:从 v1.2.3 形式标签中提取 v 前缀后的数字,按点拆分为 major、minor、patch;若无标签则从 v0.1.0 开始。
错误处理:当前提交未推送到远端时提示“Current commit is not pushed to remote. Please push your changes first.”;标签已存在时提示“Tag already exists. Please check existing tags.”;git 操作失败则报告具体错误。
限制:依赖 git 远端可访问,且需先保证 META.json 版本已正确更新。资料未提供安装命令、收费、平台或效果信息。