> On 14 Jan 2021, at 10:49, Benjamin TERRIER <b.terr...@gmail.com> wrote:
> On Thu, 14 Jan 2021 at 08:21, Nibedit Dey <nibedit....@gmail.com> wrote:
> Thank you everyone for the suggestions.
> I posted in the development group as there was less participation on the 
> topic in the interest group.
> Below are my suggestions:
>       • Create a clean qt6 supermodule for better maintainability. It's still 
> not too late.
>       • If the qt5 supermodule is renamed, then it will still have many qt5 
> branches. This may create confusion while looking for specific branches.
>       • The use of a script is a good idea, but it needs to be mentioned in 
> the README document. Else new Qt developer or contributors may face 
> difficulties while building from source.
> 
> Actually, I agree with Thiago and think that scripts to handle the branches 
> is a bad idea and that the current perl script should be gone.
> All is required for new Qt developers is:
> 1. A good branch naming scheme (this we have)
> 2. Rely on standard git submodule mechanisms
> 3. A clear documentation of the branch naming scheme and branching conventions
> 
> Adding a script only adds a black box and makes things confused. What is the 
> script doing? Is it doing special stuff ? Can I use a git submodule command 
> or will it break the magic the script did and I will have to rebuild 
> everything?
> If the goal is to ease the entry of new developers, the use of industry 
> standard tools is to be favored against the use of helper scripts.
> 
> Also I can see the point of renaming the 'qt5' repo to 'qt' since it contains 
> Qt 6 and Qt 5, but I cannot see the point of splitting the repo in 2 ('qt5' 
> and 'qt6').

If we don’t have any script, then people need to do the gerrit plumbing 
themselves. That’s not exactly lowering the entry level threshold, I think. I 
agree, we should not require scripts beyond that; fetching and managing the 
code should be trivial using standard git commands.

Here’s the specific problem i have with git submodules and worktrees:

$ cd ~/qt
$ git clone git://code.qt.io/qt/qt5.git
$ cd qt5
$ ./init-repository blah
$ git submodule foreach ‘git worktree add ~/qt/5.15/$name 5.15'
$ git submodule foreach ‘git worktree add ~/qt/6.0/$name 6.0’
$ git submodule foreach ‘git worktree add ~/qt/dev/$name dev’

Now I have a lovely set of worktrees, I can work on 5.15 by cd’ing into 
~/qt/5.15, and on dev by cd’ing into 6.0. I can

$ cd ~/qt/5.15/qtbase
$ git cherry-pick -x $commitsh_in_dev

and it works.

But: ~/qt/dev is empty; ~/qt/5.15 is empty. No toplevel build system (see 
earlier reply; in Qt 6 I find it really valuable), and no git submodules (which 
I don’t care about because I never use them; I just fetch and update for each 
worktree when I need to). I can shoehorn them in there, but it’s messy. Maybe 
someone has a better idea how that can be done?

From what I see, what I’d want is for the toplevel build system files to live 
in a separate repository. Then I can just add another worktree for that as 
well, and ignore that we are using git submodules. If I run into issues because 
changes between modules break things, then I can check out a consistent set 
based on the dependencies.yaml data (see earlier email). Those who want to use 
git submodules may do so.


Volker


_______________________________________________
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development

Reply via email to