A CLI tool for semantic version management
Project description
bump-version-py
专为 Python 项目设计的智能语义化版本管理命令行工具。
安装
使用 pip 全局安装(类似 npm install -g)
# 使用 pip
pip install bump-version
# 或使用 pipx(推荐,自动隔离环境)
pipx install bump-version
# 或使用 uv
uv tool install bump-version
开发安装(本地测试)
# 克隆仓库
git clone https://github.com/ai-app-base/bump-version-py.git
cd bump-version-py
# 使用 uv 安装依赖
uv sync # 会自动安装所有依赖(包括开发依赖)并使用 uv.lock 确保版本一致
# 开发模式安装(类似 npm link)
uv pip install -e . # 在当前虚拟环境中安装
# 或者全局安装用于测试(推荐)
uv tool install -e . # 全局安装开发版本,类似 npm link 的效果
uv 开发安装说明
-
uv pip install -e .:在当前虚拟环境中以可编辑模式安装- 只在当前虚拟环境中可用
- 适合项目内部开发测试
-
uv tool install -e .:全局安装开发版本(推荐)- 在任何地方都可以使用
bump-version-py或bvp命令 - 代码修改会立即生效,无需重新安装
- 完全等同于 npm link 的效果
- 工具会被安装到独立的虚拟环境中,避免依赖冲突
- 在任何地方都可以使用
使用方式
安装后,你可以在任何 Python 项目目录中使用:
# 完整命令
bump-version-py
# 简短别名
bvp
Python 全局命令说明
Python 支持多种全局安装 CLI 工具的方式:
1. pip install(传统方式)
pip install bump-version
- 安装到系统 Python 或虚拟环境
- 命令会添加到
~/.local/bin(Linux/Mac)或Scripts(Windows) - 需要确保路径在 PATH 环境变量中
2. pipx(推荐)
# 安装 pipx
python -m pip install --user pipx
python -m pipx ensurepath
# 使用 pipx 安装
pipx install bump-version
- 每个工具自动隔离在独立虚拟环境
- 自动管理 PATH
- 避免依赖冲突
3. uv tool(现代方式)
# 使用 uv 安装全局工具
uv tool install bump-version
- uv 的
tool install命令类似 pipx - 自动创建隔离环境
- 性能更快
功能特性
- ✅ 专为 Python 项目设计
- ✅ 支持 pyproject.toml(现代 Python 项目)
- ✅ 支持 setup.py(传统 Python 项目)
- ✅ 遵循 PEP 440 版本规范
- ✅ 支持预发布版本(alpha、beta、rc、dev)
- ✅ Git 集成(自动提交、打标签、推送)
- ✅ 交互式命令行界面
- ✅ 安全检查(分支、工作区状态)
版本格式
遵循 PEP 440 规范:
1.0.0 # 正式版本
1.0.0a0 # Alpha 版本
1.0.0b0 # Beta 版本
1.0.0rc0 # Release Candidate
1.0.0.dev0 # 开发版本(Python 特有)
配置文件支持
自动检测并更新以下 Python 项目配置文件:
-
pyproject.toml(推荐,现代 Python 项目标准)
[project] version = "1.0.0" # 或 Poetry 项目 [tool.poetry] version = "1.0.0"
-
setup.py(传统 Python 项目)
setup( name="my-package", version="1.0.0", ... )
开发
# 安装所有依赖(包括开发依赖)
uv sync
# 运行测试
uv run pytest
# 代码格式化
uv run ruff format bump_version/
uv run ruff check --fix bump_version/
# 类型检查
uv run pyright bump_version/
构建和发布
# 构建包
uv build
# 发布到 PyPI
uv publish
使用示例
基本使用
假设你有一个 Python 项目,pyproject.toml 内容如下:
[project]
name = "my-python-library"
version = "1.0.0"
description = "My awesome Python library"
运行 bvp 后:
- 选择 "正式版本 (Production)"
- 选择 "Patch (修订号)"
- 确认执行
结果:
pyproject.toml中的版本更新为1.0.1- Git 提交信息:
chore: release 1.0.1 - Git 标签:
v1.0.1
预发布版本
创建 Alpha 版本:
bvp
# 选择 "Alpha 版本"
# 选择 "Minor (次版本号)"
# 版本:1.0.0 → 1.1.0a0(注意是 a0,不是 -alpha.0)
完整工作流程
# 1. 在 Python 项目根目录(包含 pyproject.toml)
cd my-python-project
# 2. 运行版本管理工具
bvp
# 3. 交互式选择版本类型和升级方式
# 4. 工具自动完成:
# - 更新 pyproject.toml 中的版本号
# - git add pyproject.toml
# - git commit -m "chore: release X.Y.Z"
# - git tag -a vX.Y.Z -m "Release X.Y.Z"
# - git push --follow-tags(如果没有设置 BUMP_VERSION_SKIP_PUSH)
# 5. 发布到 PyPI(需要手动执行)
uv build
uv publish
版本号格式对比
| 类型 | JavaScript (npm) | Python (PEP 440) |
|---|---|---|
| 正式版 | 1.0.0 | 1.0.0 |
| Alpha | 1.0.0-alpha.0 | 1.0.0a0 |
| Beta | 1.0.0-beta.0 | 1.0.0b0 |
| RC | 1.0.0-rc.0 | 1.0.0rc0 |
| Dev | - | 1.0.0.dev0 |
命令说明
Python 版本提供两个命令:
bump-version-py:完整命令名bvp:简短别名(bump version python 的缩写)
许可证
ISC
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ai_app_base_bump_version-0.1.0rc0.tar.gz.
File metadata
- Download URL: ai_app_base_bump_version-0.1.0rc0.tar.gz
- Upload date:
- Size: 9.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
541061f9f238aa1441b6f5832d4af9fcb292eddd2bab8735dbec9064ad9a42e1
|
|
| MD5 |
9e5b9afe695323eb477167ac02f869e1
|
|
| BLAKE2b-256 |
83af9025ddaa262e77b75545f4945755e07be1b1be3d2aecfd317f6a1c3a5832
|
File details
Details for the file ai_app_base_bump_version-0.1.0rc0-py3-none-any.whl.
File metadata
- Download URL: ai_app_base_bump_version-0.1.0rc0-py3-none-any.whl
- Upload date:
- Size: 11.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
26cdde1e5ac2a683027932538bfad994f7a635df5269faae60fce4d2d26989da
|
|
| MD5 |
d96d9b7463042994c7bbb5017bc003c6
|
|
| BLAKE2b-256 |
0c69b634e0a9bee6799604418cf5539fd02b1ada0c353ecd5ca6fa959e2602e3
|