420 lines
9.3 KiB
Markdown
420 lines
9.3 KiB
Markdown
# 🚀 GUI客户端自动化版本管理系统
|
||
|
||
## 📋 概述
|
||
|
||
**与后端完全一致的版本管理系统** - 直接连接PostgreSQL数据库
|
||
|
||
- ✅ **直接数据库操作** - 与后端使用相同方式(PostgreSQL)
|
||
- ✅ **完全一致** - 相同的表、相同的字段、相同的逻辑
|
||
- ✅ **极简设计** - 无需API,配置一次,永久生效
|
||
- ✅ **全自动** - 提交代码即可,自动版本递增
|
||
|
||
---
|
||
|
||
## 🎯 核心特性
|
||
|
||
### 存储方式(与后端完全一致)
|
||
|
||
```
|
||
后端Django GUI客户端
|
||
↓ ↓
|
||
Django ORM psycopg2
|
||
↓ ↓
|
||
└──────────┬──────────────────┘
|
||
↓
|
||
PostgreSQL
|
||
web_versionhistory表
|
||
```
|
||
|
||
| 特性 | 后端 | GUI |
|
||
|------|------|-----|
|
||
| **操作方式** | Django ORM | psycopg2(SQL) |
|
||
| **数据库** | PostgreSQL (8.155.9.53) | **相同** |
|
||
| **表名** | web_versionhistory | **相同** |
|
||
| **版本类型** | "Web端" | "水滴智能通讯插件" |
|
||
|
||
---
|
||
|
||
## 🚀 快速开始(2步)
|
||
|
||
### 1️⃣ 安装依赖
|
||
|
||
```bash
|
||
pip install psycopg2-binary
|
||
```
|
||
|
||
### 2️⃣ 提交代码
|
||
|
||
```bash
|
||
# 新增功能(MINOR版本)
|
||
git commit -m "[minor] 新增拼多多平台支持"
|
||
|
||
# 修复Bug(PATCH版本)
|
||
git commit -m "[patch] 修复京东连接超时"
|
||
|
||
# 重大变更(MAJOR版本)
|
||
git commit -m "[major] 重构WebSocket架构"
|
||
|
||
# 推送触发自动版本发布
|
||
git push origin main
|
||
```
|
||
|
||
**就这么简单!** 🎉
|
||
|
||
---
|
||
|
||
## 📖 版本号规则
|
||
|
||
采用**语义化版本**(Semantic Versioning):`MAJOR.MINOR.PATCH`
|
||
|
||
| 版本类型 | 说明 | 示例 |
|
||
|---------|------|------|
|
||
| `MAJOR` | 重大架构变更 | 1.0.0 → 2.0.0 |
|
||
| `MINOR` | 新增功能 | 1.0.0 → 1.1.0 |
|
||
| `PATCH` | Bug修复、优化 | 1.0.0 → 1.0.1 |
|
||
|
||
---
|
||
|
||
## 🔍 Commit Message 关键词
|
||
|
||
### 手动标记(优先级最高)
|
||
|
||
```bash
|
||
git commit -m "[major] 重构WebSocket通信架构"
|
||
git commit -m "[minor] 新增拼多多平台支持"
|
||
git commit -m "[patch] 修复京东连接超时问题"
|
||
```
|
||
|
||
### 自动识别关键词
|
||
|
||
**MAJOR**: `重构`, `refactor`, `架构`, `breaking`
|
||
**MINOR**: `新增`, `add`, `feature`, `功能`, `实现`
|
||
**PATCH**: `修复`, `fix`, `bug`, `优化`, `调整`
|
||
|
||
---
|
||
|
||
## 📁 文件结构
|
||
|
||
```
|
||
shuidrop_gui/
|
||
├── .gitea/
|
||
│ ├── workflows/
|
||
│ │ └── gui-version-release.yml # CI/CD工作流
|
||
│ ├── scripts/
|
||
│ │ ├── gui_version_creator.py # ⭐ 核心:版本创建器(直接数据库)
|
||
│ │ ├── view_version_history.py # 版本历史查看
|
||
│ │ └── init_version_system.py # 系统初始化
|
||
│ └── README.md # 本文档
|
||
├── version_history.json # 版本历史本地备份
|
||
├── config.py # 包含 APP_VERSION
|
||
└── VERSION_MANAGEMENT_GUIDE.md # 快速入门指南
|
||
```
|
||
|
||
---
|
||
|
||
## 🛠️ 常用命令
|
||
|
||
### 查看版本历史
|
||
|
||
```bash
|
||
# 查看最近10个版本
|
||
python .gitea/scripts/view_version_history.py --list
|
||
|
||
# 查看最新版本
|
||
python .gitea/scripts/view_version_history.py --latest
|
||
|
||
# 查看特定版本详情
|
||
python .gitea/scripts/view_version_history.py --detail 1.2.3
|
||
|
||
# 导出更新日志
|
||
python .gitea/scripts/view_version_history.py --export
|
||
```
|
||
|
||
### 本地测试
|
||
|
||
```bash
|
||
# 设置数据库连接
|
||
export DB_HOST=8.155.9.53
|
||
export DB_PORT=5400
|
||
export DB_NAME=ai_web
|
||
export DB_USER=user_emKCAb
|
||
export DB_PASSWORD=password_ee2iQ3
|
||
|
||
# 运行版本创建脚本
|
||
python .gitea/scripts/gui_version_creator.py
|
||
```
|
||
|
||
---
|
||
|
||
## 🔄 版本创建流程
|
||
|
||
```
|
||
提交代码
|
||
↓
|
||
git push origin main
|
||
↓
|
||
Gitea Actions触发
|
||
↓
|
||
gui_version_creator.py
|
||
↓
|
||
┌────────────────────────────────┐
|
||
│ 1. 连接PostgreSQL数据库 │
|
||
│ (8.155.9.53:5400/ai_web) │
|
||
│ 2. 查询最新版本 │
|
||
│ SELECT version FROM ... │
|
||
│ 3. 分析commit message │
|
||
│ 识别版本类型 │
|
||
│ 4. 计算新版本号 │
|
||
│ 1.0.5 → 1.1.0 │
|
||
│ 5. 插入数据库 │
|
||
│ INSERT INTO web_versionhistory...│
|
||
│ 6. 保存本地JSON备份 │
|
||
│ 7. 更新config.py │
|
||
│ APP_VERSION = "1.1.0" │
|
||
└────────────────────────────────┘
|
||
↓
|
||
完成!
|
||
```
|
||
|
||
---
|
||
|
||
## 💾 存储策略
|
||
|
||
### 主要存储:PostgreSQL数据库
|
||
|
||
```sql
|
||
-- web_versionhistory表(与后端共用)
|
||
INSERT INTO web_versionhistory (
|
||
version, -- "1.1.0"
|
||
type, -- "水滴智能通讯插件"
|
||
content, -- commit message
|
||
download_url, -- 下载地址
|
||
release_time, -- 发布时间
|
||
is_delete -- FALSE
|
||
) VALUES (...);
|
||
```
|
||
|
||
### 备份存储:本地JSON
|
||
|
||
```json
|
||
// version_history.json(快速查询/离线使用)
|
||
[
|
||
{
|
||
"version": "1.1.0",
|
||
"update_type": "minor",
|
||
"content": "新增拼多多平台支持",
|
||
"author": "张三",
|
||
"release_time": "2025-10-09 14:30:00",
|
||
"stats": {
|
||
"files_changed": 5,
|
||
"lines_added": 234,
|
||
"lines_deleted": 56
|
||
}
|
||
}
|
||
]
|
||
```
|
||
|
||
---
|
||
|
||
## ⚙️ CI/CD配置
|
||
|
||
### 触发条件
|
||
|
||
- **分支**: `main`
|
||
- **事件**: `push`
|
||
|
||
### 环境变量(已配置好)
|
||
|
||
```yaml
|
||
env:
|
||
DB_HOST: 8.155.9.53 # 数据库主机
|
||
DB_PORT: 5400 # 端口
|
||
DB_NAME: ai_web # 数据库名
|
||
DB_USER: user_emKCAb # 用户名
|
||
DB_PASSWORD: password_ee2iQ3 # 密码
|
||
```
|
||
|
||
**这些配置与后端完全一致!**
|
||
|
||
### 执行步骤
|
||
|
||
1. 📦 检出代码
|
||
2. 🐍 设置Python环境
|
||
3. 📦 安装依赖(psycopg2-binary)
|
||
4. 🏷️ 创建版本记录(直接数据库操作)
|
||
5. 📦 自动打包(可选)
|
||
|
||
---
|
||
|
||
## 📊 版本历史格式
|
||
|
||
### PostgreSQL数据库(主要)
|
||
|
||
```sql
|
||
-- 与后端共享web_versionhistory表
|
||
SELECT * FROM web_versionhistory
|
||
WHERE type = '水滴智能通讯插件'
|
||
ORDER BY release_time DESC;
|
||
```
|
||
|
||
### 本地JSON备份
|
||
|
||
```json
|
||
[
|
||
{
|
||
"version": "1.1.0",
|
||
"update_type": "minor",
|
||
"content": "新增拼多多平台支持",
|
||
"author": "张三",
|
||
"commit_hash": "abc123def456...",
|
||
"release_time": "2025-10-09 14:30:00",
|
||
"stats": {...}
|
||
}
|
||
]
|
||
```
|
||
|
||
---
|
||
|
||
## 🔧 常见问题
|
||
|
||
### Q: 为什么不用API?
|
||
|
||
**A**: 直接数据库操作的优势:
|
||
- ✅ 与后端存储方式完全一致
|
||
- ✅ 无需后端开发接口
|
||
- ✅ 更简单、更可靠
|
||
- ✅ 减少中间层故障点
|
||
|
||
### Q: 数据库连接失败怎么办?
|
||
|
||
**A**: 不影响使用!
|
||
- ✅ 本地JSON备份仍会保存
|
||
- ✅ config.py仍会更新
|
||
- ✅ 后续可手动同步数据库
|
||
|
||
### Q: 如何跳过版本发布?
|
||
|
||
**A**: 在commit message中添加 `[skip ci]`:
|
||
```bash
|
||
git commit -m "更新文档 [skip ci]"
|
||
```
|
||
|
||
### Q: 如何验证版本记录?
|
||
|
||
**A**:
|
||
```bash
|
||
# 方式1: 查看本地备份
|
||
python .gitea/scripts/view_version_history.py --latest
|
||
|
||
# 方式2: 查询数据库
|
||
psql -h 8.155.9.53 -p 5400 -U user_emKCAb -d ai_web \
|
||
-c "SELECT * FROM web_versionhistory WHERE type='水滴智能通讯插件' LIMIT 5;"
|
||
```
|
||
|
||
---
|
||
|
||
## 🎓 学习资源
|
||
|
||
### 1. 查看快速入门指南
|
||
|
||
```bash
|
||
cat VERSION_MANAGEMENT_GUIDE.md
|
||
```
|
||
|
||
### 2. 查看实施说明
|
||
|
||
```bash
|
||
cat IMPLEMENTATION_NOTES.md
|
||
```
|
||
|
||
### 3. 初始化系统
|
||
|
||
```bash
|
||
python .gitea/scripts/init_version_system.py
|
||
```
|
||
|
||
---
|
||
|
||
## 📞 完整示例
|
||
|
||
### 场景:新增拼多多平台支持
|
||
|
||
```bash
|
||
# 1. 开发功能
|
||
# 修改: Utils/Pdd/PddUtils.py, config.py 等
|
||
|
||
# 2. 提交代码
|
||
git commit -m "[minor] 新增拼多多平台支持,实现消息收发和自动重连"
|
||
git push origin main
|
||
```
|
||
|
||
**自动执行**:
|
||
1. Gitea Actions检测push
|
||
2. 连接PostgreSQL数据库
|
||
3. 查询最新版本: `1.0.5`
|
||
4. 版本递增: `1.0.5` → `1.1.0`
|
||
5. **插入数据库**: `INSERT INTO web_versionhistory ...`
|
||
6. 保存本地备份: `version_history.json`
|
||
7. 更新配置: `APP_VERSION = "1.1.0"`
|
||
|
||
**验证结果**:
|
||
```bash
|
||
$ python .gitea/scripts/view_version_history.py --latest
|
||
|
||
🏷️ 最新版本: v1.1.0
|
||
📅 发布时间: 2025-10-09 14:30:00
|
||
👤 发布者: 张三
|
||
📝 内容: 新增拼多多平台支持,实现消息收发和自动重连
|
||
```
|
||
|
||
---
|
||
|
||
## 💡 核心优势
|
||
|
||
### 1. 与后端完全一致
|
||
- ✅ 相同的数据库(PostgreSQL)
|
||
- ✅ 相同的表(web_versionhistory)
|
||
- ✅ 相同的字段结构
|
||
- ✅ 相同的时间处理逻辑
|
||
|
||
### 2. 极简设计
|
||
- ✅ 只需安装1个依赖(psycopg2-binary)
|
||
- ✅ 无需后端开发API
|
||
- ✅ 配置一次,永久生效
|
||
|
||
### 3. 全自动
|
||
- ✅ 提交代码自动触发
|
||
- ✅ 自动版本递增
|
||
- ✅ 自动更新配置
|
||
|
||
### 4. 双重保障
|
||
- ✅ PostgreSQL数据库(主要)
|
||
- ✅ 本地JSON备份(保底)
|
||
|
||
---
|
||
|
||
## 🚀 下一步行动
|
||
|
||
```bash
|
||
# 1. 安装依赖(必需)
|
||
pip install psycopg2-binary
|
||
|
||
# 2. 初始化系统(推荐)
|
||
python .gitea/scripts/init_version_system.py
|
||
|
||
# 3. 测试提交
|
||
git commit -m "[patch] 测试版本管理系统"
|
||
git push origin main
|
||
|
||
# 4. 验证结果
|
||
python .gitea/scripts/view_version_history.py --latest
|
||
```
|
||
|
||
---
|
||
|
||
**恭喜!** 🎉 你现在拥有了一套**与后端完全一致**的自动化版本管理系统!
|
||
|
||
**版本**: 3.0(最终版)
|
||
**最后更新**: 2025-10-09
|
||
**核心特点**: 直接PostgreSQL数据库操作,与后端完全一致
|