AI工具 Skill技能库 关于道场
NoneBot 版本管理 DevOps GitHub

NoneBot项目发版助手:版本递增到Release全流程

pear-studio/nonebot-dicepp |2026-06-20

NoneBot聊天机器人项目发版助手,自动完成版本递增、Git tag创建、Docker镜像构建、Windows便携版打包、GitHub Release生成全流程,支持RC预发布测试。适用NoneBot/DicePP开发者、DevOps工程师。

【适用场景】

NoneBot聊天机器人项目发版场景。当用户要求创建release、准备上线、递增版本号、打Git tag或构建生产版本时使用。产出符合`version-deploy`技能部署要求的vX.Y.Z release。触发词:发版、创建release、上线准备、递增版本、打tag。适用于NoneBot/DicePP开发者、DevOps工程师。

【操作步骤】

第一步:检查工作区状态

执行 `git status --short`,如有任何未提交文件则拒绝执行release,列出未提交文件要求先清理。

第二步:切换并同步master分支

确认当前分支为master最新状态,如不在master则切换并拉取最新代码。

第三步:读取并更新版本号

读取 `pyproject.toml` 的 `[project].version`,与用户确认新版本号。版本格式为vX.Y.Z(如v3.0.1)。

第四步:生成/更新Release Metadata

在 `docs/releases/vX.Y.Z.md` 创建或更新release文档,填写格式如下: ```markdown

vX.Y.Z

- 镜像: ghcr.io/pear-studio/nonebot-dicepp:vX.Y.Z - Windows: DicePP-vX.Y.Z-win64.zip - 数据变更: yes/no - 配置变更: yes/no

Added/Changed/Fixed/Deprecated/Risk Notes

```

第五步:执行版本递增

使用 `bump-my-version` 递增版本并创建Git tag(vX.Y.Z格式)。

第六步:构建发布物

构建Docker镜像(ghcr.io)、Windows便携版压缩包,打包完成后验证完整性。

第七步:创建GitHub Release

关联上一步tag和 `docs/releases/vX.Y.Z.md` 文件内容创建GitHub Release。

第八步:RC预发布(如适用)

预发布测试版本使用 `vX.Y.ZrcN` 格式tag,创建GitHub Prerelease并推送同名镜像tag,不更新latest。

【代码模板】

Release Metadata模板 ```markdown

vX.Y.Z

- 镜像: ghcr.io/pear-studio/nonebot-dicepp:vX.Y.Z - Windows: DicePP-vX.Y.Z-win64.zip - 数据变更: yes/no - 配置变更: yes/no

Added

- 新增的功能

Changed

- 行为调整

Fixed

- Bug修复

Deprecated

- 废弃或移除的内容

Risk Notes

- 升级注意事项、数据迁移步骤、配置变更细节 ```

核心命令 ```bash

检查工作区

git status --short

递增版本并打tag

bump-my-version version {{new_version}}

构建Docker镜像

docker build -t ghcr.io/pear-studio/nonebot-dicepp:vX.Y.Z .

构建Windows版本

python3 -m build && zip DicePP-vX.Y.Z-win64.zip dist/* ```

【复盘要点】

1. 单一版本源:`pyproject.toml`的`[project].version`是唯一手工维护版本,禁止多处硬编码 2. 工作区干净:未提交文件时拒绝执行,防止将非目标代码纳入release 3. 数据/配置变更标记:任一风险字段无法确认时,`version-deploy`按最坏情况处理(要求备份+用户确认) 4. 预发布RC流程:rc tag创建GitHub Prerelease,推送同名镜像tag但不更新latest,避免影响生产 5. Windows便携版:打包为zip而非installer,方便用户直接解压使用

来源:SkillsMP https://skillsmp.com/skills/version-release