diff --git a/Makefile b/Makefile index e46a9d9..70b2243 100644 --- a/Makefile +++ b/Makefile @@ -51,8 +51,8 @@ version-sync: version-check: go run ./versionctl check +version-bump: BUMP ?= patch version-bump: - @test -n "$(BUMP)$(SET_VERSION)" || (printf '用法: make version-bump BUMP=major|minor|patch 或 make version-bump SET_VERSION=x.y.z\n' && exit 1) @git diff --quiet HEAD || (printf '工作区不干净,请先提交或暂存改动\n' && exit 1) $(eval _BUMP_ARG := $(if $(SET_VERSION),$(SET_VERSION),$(BUMP))) $(eval _NEW_VERSION := $(shell go run ./versionctl bump $(_BUMP_ARG))) diff --git a/openspec/specs/version-bump/spec.md b/openspec/specs/version-bump/spec.md index 1cb34e1..5aca011 100644 --- a/openspec/specs/version-bump/spec.md +++ b/openspec/specs/version-bump/spec.md @@ -90,13 +90,18 @@ ### Requirement: 版本升迁 Makefile 编排 -`make version-bump` SHALL 编排完整的版本升迁流程:工作区干净检查 → `version bump`(含 sync/check/倒退检查)→ git add → git commit → git tag。 +`make version-bump` SHALL 编排完整的版本升迁流程:工作区干净检查 → `version bump`(含 sync/check/倒退检查)→ git add → git commit → git tag。不传 `BUMP` 参数时 SHALL 默认执行 `BUMP=patch`。 #### Scenario: 完整升迁流程 - **WHEN** 执行 `make version-bump BUMP=minor`,工作区干净,当前版本 `0.1.0` - **THEN** Makefile SHALL 依次执行:工作区检查 → `version bump minor` → `git add VERSION frontend/` → `git commit -m "chore: 版本升迁 v0.2.0"` → `git tag v0.2.0` +#### Scenario: 不传 BUMP 默认 patch + +- **WHEN** 执行 `make version-bump`,工作区干净,当前版本 `0.1.0` +- **THEN** Makefile SHALL 等效于执行 `make version-bump BUMP=patch`,将版本更新为 `0.1.1` + #### Scenario: 工作区不干净 - **WHEN** 执行 `make version-bump BUMP=minor`,但工作区有未提交的改动 @@ -107,6 +112,11 @@ - **WHEN** 执行 `make version-bump SET_VERSION=1.0.0` - **THEN** Makefile SHALL 将 `1.0.0` 传递给 `version bump` 子命令 +#### Scenario: SET_VERSION 优先于默认 BUMP + +- **WHEN** 执行 `make version-bump SET_VERSION=2.0.0` +- **THEN** Makefile SHALL 使用 `SET_VERSION=2.0.0` 而非默认的 `BUMP=patch` + #### Scenario: 不自动推送 - **WHEN** `make version-bump` 成功完成