[Development] Qt6 repo

Volker Hilsheimer volker.hilsheimer at qt.io
Thu Jan 14 15:08:43 CET 2021

> On 14 Jan 2021, at 13:50, Joerg Bornemann <Joerg.Bornemann at qt.io> wrote:
> On 1/13/21 5:28 PM, Thiago Macieira wrote:
>> On Wednesday, 13 January 2021 05:37:21 PST Volker Hilsheimer wrote:
>>> * stop using git submodules
>>> Using them serves no real purposes anymore. We anyway have our own scripting
>>> in form of init-repository to avoid that people have to deal with that
>>> stuff.
>> Please don't. In fact, I recommend the opposite: delete the Perl script and
>> use submodules properly.
>> I do use "git pull --recurse-submodules", "git submodule update", "git
>> submodule foreach", etc. often.
> Same here. Please refrain from cooking up our own git submodule replacement soup.

Hm, but dependencies.yaml already *is* our own “git submodule replacement soup”, to some degree, isn’t it?

You are all correct in pointing out that my case is too simplistic, thanks for that. There evidently are cases where multiple unrelated repos depending on e.g. qtbase can cause problems if all we have are dependencies.yaml files. And yes, .gitmodules provides what we need for those cases, so I retract my statement that we can perhaps get rid of it.

Nevertheless, federating the declaration of the dependencies across modules out to each module is the right idea, I think. It's tradeoff is between (eventual) consistency that allows us to declare a release that includes all packages, and not making a centralized .gitmodules file the bottleneck. The 5 step process that required the qt5.git integrations to succeed twice to make trivial changes in private APIs that were used across modules, is not something I think we want back either.

Take away: .gitmodules and dependencies.yaml can and need to coexist. Neither will work for everybody.

The only problem that remains is that the top-level build system lives in the super module, forcing people that want to use that build system together with worktrees to hack around the mess. If we can solve that by moving the build system out as part of establishing a qt6.git or whatever we end up with, then I’m a happy camper.

So, thanks for adding your perspectives to the discussion, it’s been educational.


More information about the Development mailing list