# 版本管理说明 ## 版本号规则 本项目遵循 [语义化版本](https://semver.org/lang/zh-CN/) 规范: - **主版本号(MAJOR)**:当你做了不兼容的 API 修改 - **次版本号(MINOR)**:当你做了向下兼容的功能性新增 - **修订号(PATCH)**:当你做了向下兼容的问题修正 版本格式:`v主版本号.次版本号.修订号`,例如:`v1.0.0`、`v1.1.0`、`v2.0.0` ## 发布新版本 ### 方式1:使用发布脚本(推荐) ```bash # 使用发布脚本(会自动验证版本格式、检查未提交更改等) ./scripts/release.sh v1.0.0 "Release version 1.0.0" ``` ### 方式2:手动创建标签 ```bash # 1. 确保所有更改已提交 git add . git commit -m "Prepare for release v1.0.0" # 2. 创建版本标签 git tag -a v1.0.0 -m "Release version 1.0.0" # 3. 推送标签到远程仓库 git push origin v1.0.0 # 或者一次性推送所有标签 git push origin --tags ``` ### 验证标签 ```bash # 查看所有标签 git tag -l # 查看标签详情 git show v1.0.0 # 查看标签列表(带注释) git tag -l -n ``` ## 调用方如何使用版本 ### 方式1:使用最新版本(推荐用于开发) ```bash go get git.toowon.com/jimmy/go-common@latest ``` ### 方式2:使用特定版本(推荐用于生产) ```bash # 使用具体版本号 go get git.toowon.com/jimmy/go-common@v1.0.0 # 使用版本范围(自动选择最新版本) go get git.toowon.com/jimmy/go-common@v1.0 ``` ### 方式3:在 go.mod 中指定版本 ```go module your-project require ( git.toowon.com/jimmy/go-common v1.0.0 ) ``` 然后运行: ```bash go mod tidy ``` ### 方式4:更新到最新版本 ```bash # 更新到最新版本 go get -u git.toowon.com/jimmy/go-common@latest # 更新到最新补丁版本(如从 v1.0.0 更新到 v1.0.1) go get -u=patch git.toowon.com/jimmy/go-common # 更新到最新次版本(如从 v1.0.0 更新到 v1.1.0) go get -u=minor git.toowon.com/jimmy/go-common ``` ## 版本发布流程 1. **开发完成**:确保所有功能已实现并通过测试 2. **更新版本号**:在 `README.md` 和 `VERSION.md` 中更新版本号 3. **提交代码**:提交所有更改到 Git ```bash git add . git commit -m "Prepare for release v1.0.0" ``` 4. **创建并推送标签**: ```bash # 使用脚本(推荐) ./scripts/release.sh v1.0.0 "Release version 1.0.0" # 或手动创建 git tag -a v1.0.0 -m "Release version 1.0.0" git push origin v1.0.0 ``` 5. **验证**:在其他项目中测试是否能正确获取该版本 ```bash # 在新项目中测试 go get git.toowon.com/jimmy/go-common@v1.0.0 ``` ## 当前版本 当前版本:**v1.0.0** ## 版本历史 - **v1.0.0** (当前版本) - 初始版本 - 包含所有基础工具类:migration、datetime、http、middleware、config、storage、email、sms、factory、logger