调整项目架构,让框架更优化

This commit is contained in:
2026-07-20 21:39:01 +08:00
parent 987b16fd41
commit 121928733b
16 changed files with 866 additions and 689 deletions

View File

@@ -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、storageLocal/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