调整项目架构,让框架更优化
This commit is contained in:
139
VERSION.md
139
VERSION.md
@@ -1,136 +1,33 @@
|
||||
# 版本管理说明
|
||||
# 版本管理
|
||||
|
||||
## 版本号规则
|
||||
遵循 [语义化版本](https://semver.org/lang/zh-CN/):`v主.次.修订`。
|
||||
|
||||
本项目遵循 [语义化版本](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"
|
||||
# 推荐:脚本校验并打标签
|
||||
./scripts/release.sh v1.2.0 "Release version 1.2.0"
|
||||
|
||||
# 或手动
|
||||
git tag -a v1.2.0 -m "Release version 1.2.0"
|
||||
git push origin v1.2.0
|
||||
```
|
||||
|
||||
### 方式2:手动创建标签
|
||||
发布前:代码已提交;同步更新本文档与 `README.md` 中的版本号。
|
||||
|
||||
## 消费方引用
|
||||
|
||||
```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
|
||||
go get git.toowon.com/jimmy/go-common@v1.2.0 # 生产固定版本
|
||||
go get git.toowon.com/jimmy/go-common@latest # 开发
|
||||
```
|
||||
|
||||
### 验证标签
|
||||
|
||||
```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.2.0**
|
||||
|
||||
## 版本历史
|
||||
|
||||
- **v1.0.0** (当前版本)
|
||||
- 初始发布
|
||||
- Factory:`Init` / `Default()` + lazy getter(`Logger`、`Database`、`Redis`、`Storage` 等)
|
||||
- HTTP 出参统一由 `http.Handler` 负责
|
||||
- Logger:`Debug/Info/Error(msg, fields)`,Request ID + `FromContext`,异步默认开启
|
||||
- email / sms:异步队列 + `Close()`
|
||||
- 中间件链:Recovery → RequestID → Logging → RateLimit → CORS → Language → Timezone
|
||||
- 模块:migration、tools、middleware、config、storage(Local/MinIO/OSS)、email、sms、excel、i18n
|
||||
|
||||
- **v1.2.0** — DX:`MustInit` / `Warmup` / `MustXxx` / `Close` / `NewHandler`;Option 注入;Excel 每次新建;`templates/server`;`ErrorData`;文档精简
|
||||
- **v1.1.0** — 同上 DX 能力首次合入(见上)
|
||||
- **v1.0.0** — 初始:Factory lazy getter、http.Handler 统一出参、logger / email / sms / storage / middleware / migration / tools / i18n / excel
|
||||
|
||||
Reference in New Issue
Block a user