升级过程
整体工作分为如下几个阶段:
- 调研Qt6和Qt5的差异,收集官方文档和中文相关的资料。
- 梳理产品源码中使用到的Qt5的特性和模块。
- 参照Qt官方文档和产品的构建说明,整理Qt6软件包的构建脚本。
- 按照产品的构建规范,制作软件包。
- 在产品构建脚本中集成Qt6软件包,开始编译,修复编译错误。
- 记录修改点和关联的特性,同时梳理验证方案。
- 开发团队自验证。
- 提交测试团队验证。
总结
- Qt6使用cmake作为构建系统,和产品团队使用的构建工具一致,利于开发人员学习和维护。
- 升级过程中,试用了6.2.X和6.3.2等多个版本。在试用6.2.X版本时,发现存在一些问题,反复尝试后始终无法解决,最后尝试6.3.2版本,发现这部分问题不复现,因此敲定使用6.3.2版本。
- 产品当前大量应用了正则表达式相关的特性,涉及的修改点非常多,开发人员在自验证过程中撰写了大量的UT用例,用于对比验证修改点,有效确保升级成功。
参考资料
- What’s new in Qt 6
- Building Qt 6 from Git
- What’s New in QMetaType + QVariant
- Changes to Qt Core
- Changes to Qt Widgets
- Qt 5 and Qt 6 compatibility
- Qt 5 Core Compatibility APIs
- Porting from Qt 5 to Qt 6 using Qt5Compat library
- Qt Extras Modules in Qt 6
- Obsolete Members for QtWin
- 飞扬青云 / Qt开发经验
- 从QT4、QT5到QT6的版本移植总结