Files
shuidrop_gui/.gitea
2025-10-09 17:19:50 +08:00
..
2025-10-09 16:52:55 +08:00
2025-10-09 17:19:50 +08:00
2025-10-09 15:37:25 +08:00

🚀 GUI客户端自动化版本管理系统

📋 概述

与后端完全一致的版本管理系统 - 直接连接PostgreSQL数据库

  • 直接数据库操作 - 与后端使用相同方式PostgreSQL
  • 完全一致 - 相同的表、相同的字段、相同的逻辑
  • 极简设计 - 无需API配置一次永久生效
  • 全自动 - 提交代码即可,自动版本递增

🎯 核心特性

存储方式(与后端完全一致)

后端Django                    GUI客户端
     ↓                             ↓
Django ORM                    psycopg2
     ↓                             ↓
     └──────────┬──────────────────┘
                ↓
         PostgreSQL
     web_versionhistory表
特性 后端 GUI
操作方式 Django ORM psycopg2SQL
数据库 PostgreSQL (8.155.9.53) 相同
表名 web_versionhistory 相同
版本类型 "Web端" "水滴智能通讯插件"

🚀 快速开始2步

1 安装依赖

pip install psycopg2-binary

2 提交代码

# 新增功能MINOR版本
git commit -m "[minor] 新增拼多多平台支持"

# 修复BugPATCH版本
git commit -m "[patch] 修复京东连接超时"

# 重大变更MAJOR版本
git commit -m "[major] 重构WebSocket架构"

# 推送触发自动版本发布
git push origin main

就这么简单! 🎉


📖 版本号规则

采用语义化版本Semantic VersioningMAJOR.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 关键词

手动标记(优先级最高)

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          # 快速入门指南

🛠️ 常用命令

查看版本历史

# 查看最近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

本地测试

# 设置数据库连接
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数据库

-- web_versionhistory表与后端共用
INSERT INTO web_versionhistory (
    version,              -- "1.1.0"
    type,                 -- "水滴智能通讯插件"
    content,              -- commit message
    download_url,         -- 下载地址
    release_time,         -- 发布时间
    is_delete            -- FALSE
) VALUES (...);

备份存储本地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

环境变量(已配置好)

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数据库主要

-- 与后端共享web_versionhistory表
SELECT * FROM web_versionhistory 
WHERE type = '水滴智能通讯插件' 
ORDER BY release_time DESC;

本地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]

git commit -m "更新文档 [skip ci]"

Q: 如何验证版本记录?

A:

# 方式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. 查看快速入门指南

cat VERSION_MANAGEMENT_GUIDE.md

2. 查看实施说明

cat IMPLEMENTATION_NOTES.md

3. 初始化系统

python .gitea/scripts/init_version_system.py

📞 完整示例

场景:新增拼多多平台支持

# 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.51.1.0
  5. 插入数据库: INSERT INTO web_versionhistory ...
  6. 保存本地备份: version_history.json
  7. 更新配置: APP_VERSION = "1.1.0"

验证结果

$ 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备份保底

🚀 下一步行动

# 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数据库操作与后端完全一致