[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: ‘core-updates’ is gone; long live ‘core-packages-team’!
From: |
Marek Paśnikowski |
Subject: |
Re: ‘core-updates’ is gone; long live ‘core-packages-team’! |
Date: |
Fri, 06 Sep 2024 13:35:07 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) |
Andreas Enge <andreas@enge.fr> writes:
> Hello,
>
> Am Fri, Sep 06, 2024 at 11:11:14AM +0200 schrieb Ludovic Courtès:
>> The way I see it, one of the branches would be tested independently.
>> The second one would also be tested independently, but on a limited
>> scope—e.g., x86_64-only, because (1) we usually have more build power
>> for that architecture, and (2) perhaps we know the problems with those
>> branches are unlikely to be architecture-specific.
>> Then we’d rebase that second branch on top of the first one, and build
>> the combination for all architectures.
>
> Once the first branch is good, why not simply merge it to master and then
> rebase the second branch on master and test it, instead of postponing the
> merge? After all, building is costly, not merging.
* What if an unrelated branch gets merged before the two considered in the
example?
I suggest to generalize the process like this:
1. branch based on master, passes QA -> merge
2. branch based on master, fails QA -> fix QA, go to 1
3. branch not based on master, passes QA -> rebase, go to 1
4. branch not based on master, fails QA -> fix QA, go to 3
* What if a branch is worked on for a long time and the rebase itself
becomes non-trivial?
The rebase process could be split into multiple
steps, each corresponding to successive merge commits in the master.
The process could be further made easier by introducing a policy where
each merge commit to master must be tagged with a unique identifier. By
a “merge commit” I mean any commit that brings a branch back to master,
including fast-forwards.
Thanks to the unique tags, not only could other branches rebase without
having to resort to commit hashes, but also users could confidently
point at specific points in the history to base their systems on. For
example, if a new version of an application removes an important
functionality, they could pin the guix channel to the merge tag before
and take their time to implement a solution.
> Notice that with QA, the concept is that the packages will be available
> on the build farm once the branch has been built, so postponing a merge
> has no advantage.
I think that merging reviewed code often is a good practice, because it
could make rebasing in other branches easier to solve in case of
incompatibilities by decreasing the scope of change at any particular step.
signature.asc
Description: PGP signature
- Re: ‘core-updates’ is gone; long live ‘core-packages-team’!, Steve George, 2024/09/01
- Re: ‘core-updates’ is gone; long live ‘core-packages-team’!, Simon Tournier, 2024/09/04
- Re: ‘core-updates’ is gone; long live ‘core-packages-team’!, Vagrant Cascadian, 2024/09/06
- Re: ‘core-updates’ is gone; long live ‘core-packages-team’!, Leo Famulari, 2024/09/06
- Rebasing commits and re-signing before mergeing (Was: ‘core-updates’ is gone; long live ‘core-packages-team’!), Vagrant Cascadian, 2024/09/06
- Re: Rebasing commits and re-signing before mergeing (Was: ‘core-updates’ is gone; long live ‘core-packages-team’!), Leo Famulari, 2024/09/07
- Re: Rebasing commits and re-signing before mergeing (Was: ‘core-updates’ is gone; long live ‘core-packages-team’!), Vagrant Cascadian, 2024/09/07
- Re: ‘core-updates’ is gone; long live ‘core-packages-team’!, Christopher Baines, 2024/09/06
- Naming “build train” instead of “merge train”?, Simon Tournier, 2024/09/09