build: 发版时同步 uv.lock 版本,流程补 uv lock

现象:v0.0.8 发版后 uv.lock 里 study-tool 的 version 仍停在 0.0.1,与 metadata.yaml /
pyproject.toml 的 0.0.8 不一致,需要单独补一次提交。

根因:bumpversion 只配置了 metadata.yaml 和 pyproject.toml 两个文件。另外原有的两处正则
search 有两个坑:一是没开 regex = true(bump-my-version 默认按字面量搜索),二是仓库文件是
CRLF,`^...$` 锚点匹配不到行尾——真跑会直接报「Did not find」而不是改版本。

边界:只改发版配置和流程说明;不动业务代码、不改当前版本号、不打 tag。

运行了什么:`uv tool run bump-my-version bump patch --dry-run --allow-dirty -vv`,确认
metadata.yaml / pyproject.toml / uv.lock 三处都会被改、且 dry-run 没写盘(文件仍是 0.0.8)
没跑什么:没真跑 bump(会改版本号并自动提交、打 tag,留给你发版时执行);没跑测试、没构建
This commit is contained in:
study-tool
2026-11-01 20:50:16 +08:00
parent 4784ac0dcd
commit ecadae581e
2 changed files with 11 additions and 3 deletions
+9 -2
View File
@@ -46,7 +46,7 @@ extend-exclude = ["static", "web"]
select = ["E4", "E7", "E9", "F"]
ignore = ["F403", "F405"]
# 发版:uv tool run bump-my-version bump patch(工作区需干净),自动改 metadata.yaml、提交并打 tag
# 发版:uv tool run bump-my-version bump patch(工作区需干净),自动改 metadata.yaml / pyproject.toml / uv.lock 三处版本、提交并打 tag
[tool.bumpversion]
current_version = "0.0.8"
commit = true
@@ -61,5 +61,12 @@ replace = "version: {new_version}"
[[tool.bumpversion.files]]
filename = "pyproject.toml"
search = '(?m)^version = "{current_version}"$'
regex = true
search = '(?m)^version = "{current_version}"'
replace = 'version = "{new_version}"'
[[tool.bumpversion.files]]
filename = "uv.lock"
regex = true
search = '(?m)(name = "study-tool"\r?\n)version = "{current_version}"'
replace = '\g<1>version = "{new_version}"'