all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
To: Andreas Enge <andreas@enge.fr>
Cc: Christopher Baines <mail@cbaines.net>,  guix-devel@gnu.org
Subject: Re: Feature branches
Date: Mon, 08 May 2023 13:01:05 -0400	[thread overview]
Message-ID: <87bkiuvju6.fsf@gmail.com> (raw)
In-Reply-To: <ZFkkcQ2MOpku9YaF@jurong> (Andreas Enge's message of "Mon, 8 May 2023 18:33:53 +0200")

Hi Andreas,

Andreas Enge <andreas@enge.fr> writes:

> Hello,
>
> indeed someone™ should update the documentation to describe the new
> process. Probably we should agree on one before doing that as well...
> In principle all big updates should go through a feature branch now.
>
> However, this does not solve the problem of limited build power in our
> two build farms. Having feature branches that regroup several related
> changes should help in not rebuilding too often. In principle it could
> also be okay to regroup unrelated changes (mesa and gcc, for instance),
> as long as responsibilities are clear. It should be known who is going
> to act on what when breakages occur in the branch. And I think there
> should be some kind of "branch manager" and a time frame for the merge
> so that the branches are short lived. The goal is to avoid the core-updates
> experience of random commits being dropped in the same place, while
> hoping that someone at some later point will sort it all out.
>
> So how about this suggestion:
> A feature branch is created upon request by a team, with a branch manager
> designated by the team. It is accompanied by a short description of what
> the branch is supposed to achieve, and in which timeframe.
> The branch manager has the responsibility to communicate regularly with
> guix-devel on the state of the branch and on what remains to be done, and
> requests to merge the branch to master once it is ready, and to subsequently
> delete the branch.
>
> This does not yet explain how the branches interact with continuous
> integration. The branch manager may or may not have commit rights and may
> or may not be able to create specifications for cuirass, so the full
> process should take this into account.
>
> As written in a different thread, right now I would also suggest to first
> build the branch only on x86 and powerpc to not overload our few arm
> machines, but this is a technical detail.

I like your above ideas; I'd like to add:

- I'd make the team branches permanent; e.g. the 'gnome-team' branch
  would always exist, and get synced periodically to master (when enough
  built/deemed stable).  This should reduce the overhead of constantly
  having to adjust the Cuirass specification jobs and serve as an
  integration point for the team (the Cuirass job specs would be defined
  declaratively in the guix-maintenance repository).

- branches judged too experimental to be merged into their team branch
  could be branched from it, with a name such as 'gnome-team/feature-x'
  to make it obvious where it should be merged when deemed ready.
  Cuirass job specifications for such short lived branches would be
  created manually using the Cuirass web interface (users need to be
  authorized as can be done following
  https://issues.guix.gnu.org/63375).

I don't think team branches should be merged together at any point,
ideally, to avoid loosing the benefits of feature branches (limited
scope).

-- 
Thanks,
Maxim


  reply	other threads:[~2023-05-08 17:01 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <168347913021.32190.10808857919894440138@vcs2.savannah.gnu.org>
     [not found] ` <20230507170531.26A00C22F14@vcs2.savannah.gnu.org>
2023-05-08  1:41   ` 04/09: gnu: mesa: Update to 23.0.3 Christopher Baines
2023-05-08 12:08     ` Maxim Cournoyer
2023-05-08 12:56       ` Christopher Baines
2023-05-08 15:01         ` Maxim Cournoyer
2023-05-08 16:33           ` Feature branches (was: 04/09: gnu: mesa: Update to 23.0.3) Andreas Enge
2023-05-08 17:01             ` Maxim Cournoyer [this message]
2023-05-10  9:21               ` Feature branches Andreas Enge
2023-05-10 13:23                 ` Maxim Cournoyer
2023-05-10 13:40                   ` Andreas Enge
2023-05-10 13:55                     ` Andreas Enge
2023-05-11  4:49                       ` Maxim Cournoyer
2023-05-08 17:15             ` Felix Lechner via Development of GNU Guix and the GNU System distribution.
2023-05-10  9:11               ` Andreas Enge
2023-05-10 11:30                 ` Christopher Baines
2023-05-08 16:39           ` 04/09: gnu: mesa: Update to 23.0.3 Christopher Baines
2023-05-09  4:37     ` John Kehayias
2023-05-09  8:39       ` Christopher Baines

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87bkiuvju6.fsf@gmail.com \
    --to=maxim.cournoyer@gmail.com \
    --cc=andreas@enge.fr \
    --cc=guix-devel@gnu.org \
    --cc=mail@cbaines.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.