[Development] Qt modules, API changes and Qt 6

Olivier Goffart olivier at woboq.com
Sat Jan 26 08:09:14 CET 2019


On 25.01.19 14:12, Frederik Gladhorn wrote:
> Hi all,
> 
> I'd like to start another discussion around our development workflow.
> We arrived at our current model of Qt modules (in the git repository sense)
> and using qt5.git as a container for all of them through a series of steps and
> changes. Mix in the evolution of the testing environment over time and we have
> something that has grown in interesting ways.
> 
> I will try to describe the problem in this mail. I also have discussed with a
> bunch of people (inside The Qt Company) about potential solutions. After
> brainstorming and some back and forth, we had five suggestions on a whiteboard
> and picked our favorite. In a separate mail I'll try to describe these and
> what we concluded with as our favorite. All of this is up for discussion, so
> I'm hoping for someone to come up with even better ideas.

In my opinion, I think it would be much easier to merge a bunch of repository 
together. Maybe modularisation went to far.
QtQuick is a very important part of Qt, and therefore it would make sense to 
merge qtdeclarative into qtbase.  Also small repository could go back in qtbase.
Of course, I wouldn't want to merge big repository such as qtwebengine into 
qtbase. IMHO there are these factor that should come into play:
  - How much is that module important for Qt?
  - How big is that module?
  - How much of private API is that module using (and is it possible to use 
less of private API?)
  - ...


I think the "monorepo" is clearly a good approach. And git is evolving with 
shadow clones and partial checkout. LLVM/Clang recently choose the monorepo 
approach as it moves to git.


Of one problem is that this will make CI integration slower because each CI run 
now have to test both qtbase and qtdeclarative tests.
We have to say how much this is a problem compared the the simplicity of 
development.
I'd claim this in some respect, it is actually an advantage, for changes in qtcore.
Maybe CI bot could have a simple list of directory that white, or blacklist 
tests to run depending on the touched directories.

-- 
Olivier

Woboq - Qt services and support - https://woboq.com - https://code.woboq.org



More information about the Development mailing list