ScreenLockDetector/PACKAGING_CHECKLIST.md

348 lines
7.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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
```
---
**检查完成日期**: ___________
**测试人员**: ___________
**版本号**: ___________
**测试环境**: ___________
**结果**: □ 通过 □ 失败 □ 有条件通过
**备注**: