ScreenLockDetector/PACKAGING_CHECKLIST.md

7.9 KiB
Raw Blame History

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

包内容检查

# 查看包信息
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

🧪 安装测试

基本安装

sudo dpkg -i deb_package/screenlockdemo_1.0.0_amd64.deb
  • 安装成功,无错误
  • 如有依赖问题,运行:sudo apt-get install -f
  • 文件已安装到正确位置

文件验证

# 检查安装的文件
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 命令存在
  • 桌面文件已安装

依赖验证

# 检查库依赖
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 连接测试

# 查看程序输出
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
  • 窗口标题正确
  • 任务栏图标正确

🔄 卸载测试

卸载

sudo dpkg -r screenlockdemo
  • 卸载成功,无错误
  • /opt/screenlockdemo/ 已删除
  • /usr/bin/screenlockdemo 已删除
  • 桌面文件已删除
  • 图标已删除

清理验证

# 检查残留文件
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)
  • 其他架构(如需要)

📊 性能测试

资源占用

# 监控资源使用
top -p $(pgrep ScreenLockDemo)
  • CPU 使用率合理(空闲时 < 5%,动画时 < 20%
  • 内存使用合理(< 100MB
  • 无内存泄漏(长时间运行)

稳定性

  • 运行 1 小时无崩溃
  • 多次锁屏/解锁循环测试(> 10 次)
  • 快速锁定/解锁测试
  • 无僵死进程

📦 包质量检查

包大小

du -h deb_package/screenlockdemo_1.0.0_amd64.deb
  • 包大小合理(通常 50-80MB
  • 如需优化,考虑 strip 符号

包结构

# 检查 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
    md5sum deb_package/screenlockdemo_1.0.0_amd64.deb
    sha256sum deb_package/screenlockdemo_1.0.0_amd64.deb
    
  • 安装说明
  • 发布说明
  • 已知问题列表(如有)

最终确认

在发布前,确认以下声明:

  • ✓ 我已在测试环境中完整安装并测试了 DEB 包
  • ✓ 所有核心功能都经过验证并正常工作
  • ✓ 包可以正常安装和卸载,无残留
  • ✓ 至少在一个目标 Ubuntu 版本上测试通过
  • ✓ 文档准确反映了当前版本的功能
  • ✓ 版本号和 changelog 已更新
  • ✓ 无已知的严重 bug

📞 问题跟踪

如果发现问题,记录以下信息:

  • 问题描述:
  • 重现步骤:
  • 系统环境:
  • 错误信息:
  • 解决方案:

🎯 快速命令参考

# 打包
./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

检查完成日期: ___________

测试人员: ___________

版本号: ___________

测试环境: ___________

结果: □ 通过 □ 失败 □ 有条件通过

备注: