Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/majiayu000/sage --skill version-management명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SOC 직업 분류 기준
SKILL.md 표시 중
| name | version-management |
| description | Sage 版本管理规范,包含语义化版本、CHANGELOG、发布流程 |
| when_to_use | 当需要更新版本号、发布新版本、查看版本历史时使用 |
| allowed_tools | ["Read","Edit","Write","Bash"] |
| user_invocable | true |
| priority | 95 |
采用语义化版本 (SemVer): MAJOR.MINOR.PATCH
当前阶段使用 0.1.x 系列,每次更新递增 PATCH。
所有 crate 使用统一版本,需要更新以下文件:
# 根 Cargo.toml (workspace)
version = "0.1.X"
# workspace.package 中的版本
[workspace.package]
version = "0.1.X"
# 使用 cargo-edit (推荐)
cargo set-version 0.1.X
# 或手动编辑 Cargo.toml
| 文件 | 说明 |
|---|---|
Cargo.toml | 根 workspace 版本 |
crates/sage-core/Cargo.toml | 继承 workspace 版本 |
crates/sage-cli/Cargo.toml | 继承 workspace 版本 |
crates/sage-sdk/Cargo.toml | 继承 workspace 版本 |
crates/sage-tools/Cargo.toml | 继承 workspace 版本 |
每次版本更新必须更新 CHANGELOG.md:
## [0.1.X] - YYYY-MM-DD
### Added
- 新功能描述
### Changed
- 变更描述
### Fixed
- 修复描述
### Removed
- 移除的功能
发布前确认:
cargo test)cargo clippy)cargo fmt)# 创建版本 tag
git tag -a v0.1.X -m "Release v0.1.X: 简短描述"
# 推送 tag
git push origin v0.1.X
在 scripts/ 目录创建 bump-version.sh:
#!/bin/bash
NEW_VERSION=$1
if [ -z "$NEW_VERSION" ]; then
echo "Usage: ./scripts/bump-version.sh 0.1.X"
exit 1
fi
# 更新 Cargo.toml
sed -i '' "s/^version = \".*\"/version = \"$NEW_VERSION\"/" Cargo.toml
# 运行 cargo check 验证
cargo check
echo "Version bumped to $NEW_VERSION"
echo "Don't forget to:"
echo " 1. Update CHANGELOG.md"
echo " 2. Commit changes"
echo " 3. Create git tag: git tag -a v$NEW_VERSION -m 'Release v$NEW_VERSION'"
每次有意义的更新都递增 PATCH:
重构完成后升级到 0.2.0,表示重大架构变更。
当 API 稳定后发布 1.0.0。
# 登录 (首次)
cargo login
# 发布 (按依赖顺序)
cargo publish -p sage-core
cargo publish -p sage-tools
cargo publish -p sage-sdk
cargo publish -p sage-cli
# 查看当前版本
cargo pkgid
# 查看所有 crate 版本
cargo metadata --format-version 1 | jq '.packages[] | select(.name | startswith("sage")) | {name, version}'