原文链接: Kristian Amlie - Status of Qt Modularization
这是一篇去年十月份Qt正走向模块化的后续文章。目前这部分工作正在稳步推进, 现在我们已将大部分的Qt主要组件模块化。
在下图中, 你会看到当前的模块划分。那些本来就不是Qt一部分的模块没有包含在内。
Qt中的大部分已经被模块化, 且可以在Linux上被构建。当前正在进行中的三个主要工作是:在其它平台构建,运行自动化测试和在Qt代码库主分支上采用模块化(当前的工作基于Qt 4.7分支)。
因为模块化对我们来说是一个至关重要的项目, 所以我们希望能够尽可能早的切换过去。 这意味着部分会干扰到本次项目的工作要推迟到切换以后。目前为止还没有确切的日期, 不过初步估计会在1到2个月以内发生。当确定日期后,后续会公布更多消息。
切换时, 当前正在用于开发的Qt代码库讲被关闭并阻止任何代码提交。 然后, 按照上图所示的新代码库将被创建。旧Qt代码库将被归档,从而使用“git graft”机制仍然可以看到旧的代码历史。然而,新代码库起始状态将不包含任何代码历史信息,QtWebKit将是一个例外, 因为它已经是一个独立的基于原始的Webkit代码历史的代码库了。
这意味着代码合并请求要开始进入各个独立的模块,现存的合并请求将很遗憾地需要按照最新的模块分布重新提交。
在一开始将不可避免地会遇到很多困难, 但是希望在理顺这些关系后, 我们会有一个更易于使用和愉快地开发的全新的Qt代码库结构。
-
译者注:
一些未出现在上图中的模块说明:QtHelp属于QtTools代码库的Assistant模块, QtSql仍属于QtKernel代码库