ecadae581e
现象: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,留给你发版时执行);没跑测试、没构建
73 lines
2.0 KiB
TOML
73 lines
2.0 KiB
TOML
[build-system]
|
|
requires = ["setuptools>=68"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[project]
|
|
name = "study-tool"
|
|
version = "0.0.8"
|
|
description = "东莞市教师培训平台多账号学习控制台"
|
|
requires-python = ">=3.10"
|
|
dependencies = [
|
|
"fastapi>=0.110",
|
|
"uvicorn>=0.27",
|
|
"requests>=2.31",
|
|
"beautifulsoup4>=4.12",
|
|
"lxml>=5.0",
|
|
"playwright>=1.40",
|
|
"ddddocr",
|
|
"python-dotenv>=1.0",
|
|
"sqlalchemy>=2.0",
|
|
]
|
|
|
|
[project.scripts]
|
|
study-tool = "study_tool.app:main"
|
|
|
|
[tool.setuptools]
|
|
package-dir = { "" = "src" }
|
|
|
|
[tool.setuptools.packages.find]
|
|
where = ["src"]
|
|
|
|
# 国内镜像:uv 默认走阿里云源,不再直连 pypi.org。
|
|
# 换源:UV_DEFAULT_INDEX=https://mirrors.cloud.tencent.com/pypi/simple uv sync
|
|
# 想回官方:UV_DEFAULT_INDEX=https://pypi.org/simple uv sync
|
|
# (清华源 pypi.tuna.tsinghua.edu.cn 会 403 uv 的 JSON simple 请求,别用)
|
|
[[tool.uv.index]]
|
|
name = "aliyun"
|
|
url = "https://mirrors.aliyun.com/pypi/simple"
|
|
default = true
|
|
|
|
[tool.ruff]
|
|
line-length = 120
|
|
extend-exclude = ["static", "web"]
|
|
|
|
# 只拦真正的错误(语法 / 未定义名 / 未用导入);历史模块仍有 star import,先不拦 F403 / F405
|
|
[tool.ruff.lint]
|
|
select = ["E4", "E7", "E9", "F"]
|
|
ignore = ["F403", "F405"]
|
|
|
|
# 发版:uv tool run bump-my-version bump patch(工作区需干净),自动改 metadata.yaml / pyproject.toml / uv.lock 三处版本、提交并打 tag
|
|
[tool.bumpversion]
|
|
current_version = "0.0.8"
|
|
commit = true
|
|
tag = true
|
|
tag_name = "v{new_version}"
|
|
message = "chore(release): v{new_version}"
|
|
|
|
[[tool.bumpversion.files]]
|
|
filename = "metadata.yaml"
|
|
search = "version: {current_version}"
|
|
replace = "version: {new_version}"
|
|
|
|
[[tool.bumpversion.files]]
|
|
filename = "pyproject.toml"
|
|
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}"'
|