132 lines
2.9 KiB
Markdown
132 lines
2.9 KiB
Markdown
# 版本管理说明
|
||
|
||
## 版本号规则
|
||
|
||
本项目遵循 [语义化版本](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
|
||
|