Compare commits
1 Commits
7585b8e9da
...
v0.0.1
| Author | SHA1 | Date | |
|---|---|---|---|
| 4fe98f2815 |
34
README.md
34
README.md
@@ -53,9 +53,15 @@ go env GOPRIVATE
|
||||
### 2. 安装模块
|
||||
|
||||
```bash
|
||||
go get git.toowon.com/jimmy/go-common
|
||||
# 安装最新版本(推荐用于开发)
|
||||
go get git.toowon.com/jimmy/go-common@latest
|
||||
|
||||
# 安装特定版本(推荐用于生产)
|
||||
go get git.toowon.com/jimmy/go-common@v1.0.0
|
||||
```
|
||||
|
||||
**版本管理说明请参考 [VERSION.md](./VERSION.md)**
|
||||
|
||||
## 使用示例
|
||||
|
||||
详细的使用说明请参考各模块的文档:
|
||||
@@ -216,7 +222,29 @@ logger.Info("Application started")
|
||||
|
||||
更多示例请查看 [examples](./examples/) 目录。
|
||||
|
||||
## 版本
|
||||
## 版本管理
|
||||
|
||||
v1.0.0
|
||||
当前版本:**v1.0.0**
|
||||
|
||||
### 如何指定版本
|
||||
|
||||
在 `go.mod` 文件中指定版本:
|
||||
|
||||
```go
|
||||
require (
|
||||
git.toowon.com/jimmy/go-common v1.0.0
|
||||
)
|
||||
```
|
||||
|
||||
或者使用命令行:
|
||||
|
||||
```bash
|
||||
# 使用最新版本
|
||||
go get git.toowon.com/jimmy/go-common@latest
|
||||
|
||||
# 使用特定版本
|
||||
go get git.toowon.com/jimmy/go-common@v1.0.0
|
||||
```
|
||||
|
||||
**详细版本管理说明请参考 [VERSION.md](./VERSION.md)**
|
||||
|
||||
|
||||
131
VERSION.md
Normal file
131
VERSION.md
Normal file
@@ -0,0 +1,131 @@
|
||||
# 版本管理说明
|
||||
|
||||
## 版本号规则
|
||||
|
||||
本项目遵循 [语义化版本](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
|
||||
|
||||
66
scripts/release.sh
Executable file
66
scripts/release.sh
Executable file
@@ -0,0 +1,66 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 版本发布脚本
|
||||
# 使用方法: ./scripts/release.sh v1.0.0 "Release message"
|
||||
|
||||
set -e
|
||||
|
||||
VERSION=$1
|
||||
MESSAGE=$2
|
||||
|
||||
if [ -z "$VERSION" ]; then
|
||||
echo "错误: 请提供版本号"
|
||||
echo "使用方法: ./scripts/release.sh v1.0.0 \"Release message\""
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -z "$MESSAGE" ]; then
|
||||
MESSAGE="Release $VERSION"
|
||||
fi
|
||||
|
||||
# 验证版本号格式 (v主版本号.次版本号.修订号)
|
||||
if ! [[ $VERSION =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
|
||||
echo "错误: 版本号格式不正确,应为 v主版本号.次版本号.修订号 (例如: v1.0.0)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "准备发布版本: $VERSION"
|
||||
echo "发布信息: $MESSAGE"
|
||||
echo ""
|
||||
|
||||
# 检查是否有未提交的更改
|
||||
if [ -n "$(git status --porcelain)" ]; then
|
||||
echo "警告: 检测到未提交的更改"
|
||||
read -p "是否继续? (y/n) " -n 1 -r
|
||||
echo
|
||||
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# 检查标签是否已存在
|
||||
if git rev-parse "$VERSION" >/dev/null 2>&1; then
|
||||
echo "错误: 版本标签 $VERSION 已存在"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 创建标签
|
||||
echo "创建版本标签..."
|
||||
git tag -a "$VERSION" -m "$MESSAGE"
|
||||
|
||||
# 询问是否推送
|
||||
read -p "是否推送到远程仓库? (y/n) " -n 1 -r
|
||||
echo
|
||||
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
||||
echo "推送标签到远程仓库..."
|
||||
git push origin "$VERSION"
|
||||
echo "版本 $VERSION 已成功发布!"
|
||||
else
|
||||
echo "标签已创建,但未推送。使用以下命令推送:"
|
||||
echo " git push origin $VERSION"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "完成! 调用方现在可以使用以下命令安装此版本:"
|
||||
echo " go get git.toowon.com/jimmy/go-common@$VERSION"
|
||||
|
||||
Reference in New Issue
Block a user