From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp11.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms9.migadu.com with LMTPS id 0BNEHgIrWWRqYgEASxT56A (envelope-from ) for ; Mon, 08 May 2023 19:01:54 +0200 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp11.migadu.com with LMTPS id GG4zHgIrWWS10gAA9RJhRA (envelope-from ) for ; Mon, 08 May 2023 19:01:54 +0200 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 524E3203D2 for ; Mon, 8 May 2023 19:01:54 +0200 (CEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pw4Ef-0001L7-8M; Mon, 08 May 2023 13:01:18 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pw4EY-0001Km-V3 for guix-devel@gnu.org; Mon, 08 May 2023 13:01:11 -0400 Received: from mail-qt1-x82f.google.com ([2607:f8b0:4864:20::82f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pw4EW-000689-OM for guix-devel@gnu.org; Mon, 08 May 2023 13:01:10 -0400 Received: by mail-qt1-x82f.google.com with SMTP id d75a77b69052e-3ef2f81a96cso50600101cf.0 for ; Mon, 08 May 2023 10:01:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1683565267; x=1686157267; h=content-transfer-encoding:mime-version:user-agent:message-id :in-reply-to:date:references:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to; bh=2ziB1EItWbYTedkocXc/Z+EZ5+9WQDLsAbG1RAeFv1Y=; b=Fl3O5qSm0XWofzvVEAnlcehUkZBKA9OPhkLyG+9yuEMQs1mtlaaZexJfkt6rphQ42/ /dZ6LZ7izgdlwjmMkklWtKgLdgFzAWpT+adnC0agb301OvcgqZ/LUxxSwGCivik2FM6W 1bLEUvCxMyuuAqemgEN7TQH6hU9cl6W3KI534RJE1usyuG3fBXJpnAyf5eTxyceluUSW DMbid+stzhN0OmNT3YzP25TZOANB7FpyV0G4w24jqUXyxSBqhbwKiK8v1BnBI8Q+Pxf3 7l5r19cs3dzQJH6D2tSUyPQDbkGfdDhMG+uclv4LmzielME7Riw1l1Ccu+TXnm8VYpkz 0UVw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1683565267; x=1686157267; h=content-transfer-encoding:mime-version:user-agent:message-id :in-reply-to:date:references:subject:cc:to:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=2ziB1EItWbYTedkocXc/Z+EZ5+9WQDLsAbG1RAeFv1Y=; b=d6RYw6skNAa2ll36HZfn57EmqTTdLpAeSABefBf2RqbbH0ewrcfB285RCP+EQR/78D zZugYRw3It4rHh+R5smrJ7ObjaC3f7VxEty5PrC/wsi91AgibC2ZnWuw5W7/QOQC52de yR11vEq7RD/Dcq3ed0u85Jtj3Q2wy84jtixVVrjMJAN4KOnXvppmg3op5duMHwVpIqNN 9tly3CDo/ImDzHUeblO/Si9B8giT1f+UTKrk/CeocvQ+wDUXxHMjm4qVgWlFEthu9Jl7 7Itn4YSt2iSrOlNr02ur/Vg2H7Qb2qJ776uNYODvTw5MN1Dv0qYv///4PDCjm9XGaTh9 Q5YA== X-Gm-Message-State: AC+VfDz+r7fDSfVroF4xl+TcT57FGYOeFhAPL2rXkB4QDzpknujvxUxR ytBwrlkMo6N4BCixRDpOQJAJxIxd1TEl8A== X-Google-Smtp-Source: ACHHUZ6r6ml0sbNji7apWmA614hT8oxVUiIX4NRCYHtlaz+Xjz5eMlniCEBLSABzwaMorpHt7JdTJQ== X-Received: by 2002:a05:622a:24f:b0:3f1:fa37:c830 with SMTP id c15-20020a05622a024f00b003f1fa37c830mr18124775qtx.49.1683565267364; Mon, 08 May 2023 10:01:07 -0700 (PDT) Received: from hurd (dsl-10-131-119.b2b2c.ca. [72.10.131.119]) by smtp.gmail.com with ESMTPSA id x10-20020ac8700a000000b003f3937c16c4sm408608qtm.5.2023.05.08.10.01.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 08 May 2023 10:01:07 -0700 (PDT) From: Maxim Cournoyer To: Andreas Enge Cc: Christopher Baines , guix-devel@gnu.org Subject: Re: Feature branches References: <168347913021.32190.10808857919894440138@vcs2.savannah.gnu.org> <20230507170531.26A00C22F14@vcs2.savannah.gnu.org> <87r0rrzjbr.fsf@cbaines.net> <87jzxjvxeg.fsf@gmail.com> <87ild3yltb.fsf@cbaines.net> <87v8h2vpdq.fsf@gmail.com> Date: Mon, 08 May 2023 13:01:05 -0400 In-Reply-To: (Andreas Enge's message of "Mon, 8 May 2023 18:33:53 +0200") Message-ID: <87bkiuvju6.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Received-SPF: pass client-ip=2607:f8b0:4864:20::82f; envelope-from=maxim.cournoyer@gmail.com; helo=mail-qt1-x82f.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: guix-devel-bounces+larch=yhetil.org@gnu.org X-Migadu-Country: US X-Migadu-Flow: FLOW_IN ARC-Seal: i=1; s=key1; d=yhetil.org; t=1683565314; a=rsa-sha256; cv=none; b=WbhTX3gU6ZSBgccKMrjKCm+xGRhnS/XCGLyUTn26SdV8aPPHpO/ss/mzBjlN2BaIsDa7bN DbfjtYYsdb/72VV/LGcf+aFe/DinD64IqUt+2BP9+0aN2PExl//uTcFz9Dw6VgaYBrIu0a VwvypZxZI8twMSiUZt50Ffuw26GcBkBJVcS+8NOeXtJzhGITuUQ9DNu6urLzXmISjVSntM TWA/MZ7DnzjFURtAwuoaYTJ9YTNyFyDFMb6GuMEYEmBNZCv22e7aWt2Ib3NmTJhsZE+mpY sO3G8hxx49Jk1D2kgYT3Cdl0JEz/6KRj/buxXHVexl2BhYf4CuVUYnVUj9K1Tw== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=Fl3O5qSm; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org" ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1683565314; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post:dkim-signature; bh=2ziB1EItWbYTedkocXc/Z+EZ5+9WQDLsAbG1RAeFv1Y=; b=dAFjaozDnKgCyb0Fwv7oe3XLQhQ1VpfWIh8JwEnSVPfxRP2z9yjUTOK5bQ0e7q+jY9g2C9 1FRf2+Pjd3920EZlQTDr5LSXfqSmAuk2e7qte9XHKcoIGSQ31/zLngfhWEz8HxGR7azVxt Xzht3tWbW+gUg5E8+podfPG8xaEaHWmpR9d+c4gCt13D2Mk2XsjSlpEQjBlxvxt10+ElaI A7vMRLHHwmyJ6qLXohnsCkfczcbU3YVV9tGUy7E+YRsMVepV7ixsByi3Sdjykwx6zax36L cHAGRLlZ+ryxrxTBoZKE3JcoRwAquNFftl2gay13cjzELYUKS5s2pzU73x87EA== X-Migadu-Spam-Score: -8.30 X-Spam-Score: -8.30 X-Migadu-Queue-Id: 524E3203D2 X-Migadu-Scanner: scn0.migadu.com Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=Fl3O5qSm; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org" X-TUID: EhcWMysxD4k8 Hi Andreas, Andreas Enge writes: > Hello, > > indeed someone=E2=84=A2 should update the documentation to describe the n= ew > 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-updat= es > 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 subsequen= tly > 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). --=20 Thanks, Maxim