ScreenLockDetector/PACKAGING_CHECKLIST.md

348 lines
7.9 KiB
Markdown
Raw Normal View History

2025-11-07 14:57:13 +08:00
# DEB 打包检查清单
## 📋 打包前检查
### 环境检查
- [ ] linuxdeployqt 工具存在:`$HOME/dev/sunvpack-py/bin/linuxdeployqt`
- [ ] Qt 5.15.2 已安装:`$HOME/sdk/qt-5.15.2`
- [ ] dpkg-dev 已安装:`dpkg-deb --version`
- [ ] 项目可以正常编译:`./build.sh`
- [ ] 程序可以正常运行:`./run.sh`
### 文件检查
- [ ] `screenlockdemo.desktop` 文件存在且配置正确
- [ ] `debian/control` 包信息完整
- [ ] `debian/copyright` 版权信息正确
- [ ] `debian/changelog` 版本号正确
- [ ] 图标文件准备好(可选):`icon.png`
### 版本检查
- [ ] 版本号已更新(如果是新版本)
- [ ] `make_deb.sh` 中的 VERSION
- [ ] `build_deb.sh` 中的 VERSION
- [ ] `debian/changelog` 中的版本号
- [ ] `CMakeLists.txt` 中的 VERSION
---
## 🔨 打包过程检查
### 执行打包
- [ ] 脚本有执行权限:`chmod +x make_deb.sh`
- [ ] 运行打包脚本:`./make_deb.sh`
- [ ] 打包过程无错误
- [ ] DEB 文件生成成功:`deb_package/screenlockdemo_1.0.0_amd64.deb`
### 包内容检查
```bash
# 查看包信息
dpkg -I deb_package/screenlockdemo_1.0.0_amd64.deb
# 查看文件列表
dpkg -c deb_package/screenlockdemo_1.0.0_amd64.deb
```
- [ ] 包信息正确(名称、版本、架构、依赖)
- [ ] 包含主程序:`./opt/screenlockdemo/bin/ScreenLockDemo`
- [ ] 包含 Qt 库:`./opt/screenlockdemo/lib/libQt5*.so*`
- [ ] 包含 Qt 插件:`./opt/screenlockdemo/plugins/platforms/libqxcb.so`
- [ ] 包含启动脚本:`./opt/screenlockdemo/screenlockdemo.sh`
- [ ] 包含系统命令:`./usr/bin/screenlockdemo`
- [ ] 包含 desktop 文件:`./usr/share/applications/screenlockdemo.desktop`
- [ ] 包含图标:`./usr/share/icons/hicolor/256x256/apps/screenlockdemo.png`
- [ ] 包含控制脚本:`./DEBIAN/control`, `./DEBIAN/postinst`
---
## 🧪 安装测试
### 基本安装
```bash
sudo dpkg -i deb_package/screenlockdemo_1.0.0_amd64.deb
```
- [ ] 安装成功,无错误
- [ ] 如有依赖问题,运行:`sudo apt-get install -f`
- [ ] 文件已安装到正确位置
### 文件验证
```bash
# 检查安装的文件
ls -la /opt/screenlockdemo/
ls -la /usr/bin/screenlockdemo
ls -la /usr/share/applications/screenlockdemo.desktop
```
- [ ] `/opt/screenlockdemo/` 目录存在
- [ ] `/opt/screenlockdemo/bin/ScreenLockDemo` 可执行
- [ ] `/opt/screenlockdemo/lib/` 包含所有 Qt 库
- [ ] `/usr/bin/screenlockdemo` 命令存在
- [ ] 桌面文件已安装
### 依赖验证
```bash
# 检查库依赖
ldd /opt/screenlockdemo/bin/ScreenLockDemo
```
- [ ] 所有依赖都能找到not found = 0
- [ ] Qt 库指向 `/opt/screenlockdemo/lib/`
- [ ] 系统库正确链接
---
## 🚀 功能测试
### 启动测试
- [ ] 命令行启动:`screenlockdemo` 成功
- [ ] 直接运行:`/opt/screenlockdemo/screenlockdemo.sh` 成功
- [ ] 无错误信息,无崩溃
- [ ] 窗口正常显示
### 界面测试
- [ ] 主窗口正常显示
- [ ] 动画正常播放(旋转圆圈、波浪效果)
- [ ] 状态信息显示正确
- [ ] 按钮响应正常
### 功能测试
- [ ] **锁屏检测**锁定屏幕Ctrl+Alt+L
- [ ] 检测器状态显示正常
- [ ] 屏幕锁定状态显示为 "🔒 LOCKED"
- [ ] 动画自动停止Paint 事件禁用)
- [ ] **解锁检测**:解锁屏幕
- [ ] 屏幕锁定状态显示为 "🔓 UNLOCKED"
- [ ] 动画自动恢复Paint 事件启用)
- [ ] **手动控制**
- [ ] "Disable Painting" 按钮可以停止动画
- [ ] "Enable Painting" 按钮可以恢复动画
- [ ] "Reset Frame Count" 按钮可以重置计数器
- [ ] **帧数统计**:计数器正常工作
### DBus 连接测试
```bash
# 查看程序输出
screenlockdemo 2>&1 | grep -i "dbus\|screensaver\|connected"
```
- [ ] 至少一个 DBus 接口连接成功
- [ ] GNOME ScreenSaver 或 systemd-logind 连接正常
- [ ] 无致命错误
### 应用菜单测试
- [ ] 在应用程序菜单中可以找到 "Screen Lock Demo"
- [ ] 图标显示正常(或默认图标)
- [ ] 从菜单启动成功
---
## 🖼️ 界面测试
### 桌面集成
- [ ] 桌面快捷方式可用
- [ ] 应用图标显示(更新图标缓存:`sudo gtk-update-icon-cache -f /usr/share/icons/hicolor`
- [ ] 窗口标题正确
- [ ] 任务栏图标正确
---
## 🔄 卸载测试
### 卸载
```bash
sudo dpkg -r screenlockdemo
```
- [ ] 卸载成功,无错误
- [ ] `/opt/screenlockdemo/` 已删除
- [ ] `/usr/bin/screenlockdemo` 已删除
- [ ] 桌面文件已删除
- [ ] 图标已删除
### 清理验证
```bash
# 检查残留文件
ls -la /opt/screenlockdemo/
ls -la /usr/bin/screenlockdemo
```
- [ ] 无残留文件
- [ ] 应用菜单中已移除
---
## 🌍 兼容性测试
### 不同 Ubuntu 版本
- [ ] Ubuntu 18.04 LTS
- [ ] Ubuntu 20.04 LTS
- [ ] Ubuntu 22.04 LTS
- [ ] Ubuntu 23.10 / 24.04
### 不同桌面环境
- [ ] GNOME
- [ ] KDE Plasma
- [ ] XFCE
- [ ] Unity如适用
### 架构
- [ ] x86_64 (amd64)
- [ ] 其他架构(如需要)
---
## 📊 性能测试
### 资源占用
```bash
# 监控资源使用
top -p $(pgrep ScreenLockDemo)
```
- [ ] CPU 使用率合理(空闲时 < 5%动画时 < 20%
- [ ] 内存使用合理(< 100MB
- [ ] 无内存泄漏(长时间运行)
### 稳定性
- [ ] 运行 1 小时无崩溃
- [ ] 多次锁屏/解锁循环测试(> 10 次)
- [ ] 快速锁定/解锁测试
- [ ] 无僵死进程
---
## 📦 包质量检查
### 包大小
```bash
du -h deb_package/screenlockdemo_1.0.0_amd64.deb
```
- [ ] 包大小合理(通常 50-80MB
- [ ] 如需优化,考虑 strip 符号
### 包结构
```bash
# 检查 LintianDebian 包检查工具)
lintian deb_package/screenlockdemo_1.0.0_amd64.deb
```
- [ ] 无严重错误E:
- [ ] 警告W:)可接受
- [ ] 信息I:)已知晓
### 元数据
- [ ] 包名称正确:`screenlockdemo`
- [ ] 版本号正确:`1.0.0`
- [ ] 架构正确:`amd64`
- [ ] 维护者信息完整
- [ ] 描述清晰准确
- [ ] 依赖列表正确
---
## 📝 文档检查
### 用户文档
- [ ] README.md 完整且最新
- [ ] DEB_PACKAGE.md 说明清晰
- [ ] PACKAGING_README.md 快速入门完整
### 技术文档
- [ ] 打包脚本有注释
- [ ] desktop 文件配置正确
- [ ] control 文件信息准确
---
## 🚢 发布准备
### 最终检查
- [ ] 所有功能正常
- [ ] 无已知 bug
- [ ] 文档完整
- [ ] 版本号正确
- [ ] changelog 已更新
### 发布材料
- [ ] DEB 包文件
- [ ] 校验和MD5/SHA256
```bash
md5sum deb_package/screenlockdemo_1.0.0_amd64.deb
sha256sum deb_package/screenlockdemo_1.0.0_amd64.deb
```
- [ ] 安装说明
- [ ] 发布说明
- [ ] 已知问题列表(如有)
---
## ✅ 最终确认
在发布前,确认以下声明:
- [ ] ✓ 我已在测试环境中完整安装并测试了 DEB 包
- [ ] ✓ 所有核心功能都经过验证并正常工作
- [ ] ✓ 包可以正常安装和卸载,无残留
- [ ] ✓ 至少在一个目标 Ubuntu 版本上测试通过
- [ ] ✓ 文档准确反映了当前版本的功能
- [ ] ✓ 版本号和 changelog 已更新
- [ ] ✓ 无已知的严重 bug
---
## 📞 问题跟踪
如果发现问题,记录以下信息:
- 问题描述:
- 重现步骤:
- 系统环境:
- 错误信息:
- 解决方案:
---
## 🎯 快速命令参考
```bash
# 打包
./make_deb.sh
# 查看包信息
dpkg -I deb_package/screenlockdemo_1.0.0_amd64.deb
dpkg -c deb_package/screenlockdemo_1.0.0_amd64.deb
# 安装
sudo dpkg -i deb_package/screenlockdemo_1.0.0_amd64.deb
sudo apt-get install -f # 如有依赖问题
# 测试
screenlockdemo
ldd /opt/screenlockdemo/bin/ScreenLockDemo
# 卸载
sudo dpkg -r screenlockdemo
# 校验和
md5sum deb_package/screenlockdemo_1.0.0_amd64.deb
sha256sum deb_package/screenlockdemo_1.0.0_amd64.deb
```
---
**检查完成日期**: ___________
**测试人员**: ___________
**版本号**: ___________
**测试环境**: ___________
**结果**: □ 通过 □ 失败 □ 有条件通过
**备注**: