From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id mElrDfIIkWDbfAAAgWs5BA (envelope-from ) for ; Tue, 04 May 2021 10:42:26 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1 with LMTPS id yKwJCfIIkWBSOQAAbx9fmQ (envelope-from ) for ; Tue, 04 May 2021 08:42:26 +0000 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 CE9F0D629 for ; Tue, 4 May 2021 10:42:25 +0200 (CEST) Received: from localhost ([::1]:55362 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ldqdL-0004LT-8R for larch@yhetil.org; Tue, 04 May 2021 04:42:23 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:34282) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ldqOy-0000ki-9Y for guix-devel@gnu.org; Tue, 04 May 2021 04:27:33 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:46481) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ldqOx-0007vq-VD; Tue, 04 May 2021 04:27:31 -0400 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=57314 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1ldqOw-0005rV-Q2; Tue, 04 May 2021 04:27:31 -0400 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: Christopher Baines Subject: Re: Bringing substitutes from the Guix Build Coordinator to users References: <878s4ye116.fsf@cbaines.net> <87eeeo24a9.fsf@gnu.org> <87r1iocdok.fsf@cbaines.net> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 15 =?utf-8?Q?Flor=C3=A9al?= an 229 de la =?utf-8?Q?R?= =?utf-8?Q?=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Tue, 04 May 2021 10:27:28 +0200 In-Reply-To: <87r1iocdok.fsf@cbaines.net> (Christopher Baines's message of "Mon, 03 May 2021 11:30:19 +0100") Message-ID: <87r1imsy33.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: guix-devel@gnu.org Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: "Guix-devel" X-Migadu-Flow: FLOW_IN ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1620117745; 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; bh=HpZxEtY+UJMfYj3ChUpf/2KpANLukiepMGHvulumpqU=; b=VqHQsenx8z+dQGaWfwfqkLqDjZ2R4nBisfJ42rod6twy3JcAz0Wvb+Sb6ujuP/yqYqjl94 /lKybq8tO+VEtFGis02U5dayMt6D/q3dBYwiHDDz8Y9ZYDIbS8vhDbFMFiFooXf4agRI+p ON95+/Zs4d+F0FTyWbOama3SQ12wQ5dYF/A8j9m5KXPZIgXRlyN/de7x10bJIhFpxzESry bmmATDrP+oZbYoC/CGpc8h6pkLM+eENaCCMT23KWvfRckOwcK05+n4C2xQDj0FMa489ZTW FykPzxv2hNfID4jiYIGgAqiejnlCUv5rpQtHSeTTAFLyUKKmhk+e45GAbiQJaQ== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1620117745; a=rsa-sha256; cv=none; b=IEEXa/2vqf48/8dcRFqi5lHyT+wZcGQClXwEfUrm6s296JQnZB4T+1EcvNZ2ROKTFSyEkD kIuBhvPrtvCul17pKyMn4bO2blXnQR0SwMU/6DcJ7F/NiBD3iuY3OBGwBq/b33V3WB7dyq L1LVjczZDZOPtLqursXBXrCRDdpto2UVvzBYOMBtlJFbtXPsqwvfRgCkY3zWkO6w3wJVV9 yPzP/O2SjYAcA8tfkCNa/M/w0X2FGEwBUE5yttNFL9qh0G80d7Zs/WGmhClIE8FYGbFU95 uIh3/ovjtLCxPKaHCTX5N5gfPSGCJ1Prt/gl4h1Z3UWXcG/QR1aXSiz828Bhkw== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=none; dmarc=pass (policy=none) header.from=gnu.org; spf=pass (aspmx1.migadu.com: domain of guix-devel-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-devel-bounces@gnu.org X-Migadu-Spam-Score: -2.96 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=pass (policy=none) header.from=gnu.org; spf=pass (aspmx1.migadu.com: domain of guix-devel-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-devel-bounces@gnu.org X-Migadu-Queue-Id: CE9F0D629 X-Spam-Score: -2.96 X-Migadu-Scanner: scn0.migadu.com X-TUID: cCG1wVWE5f1w Hi Chris, Christopher Baines skribis: > Ludovic Court=C3=A8s writes: [...] >> My understanding is that, to build substitutes, we need more than the >> Coordinator; we also need something to perform evaluations, similar to >> the =E2=80=9Ctop half=E2=80=9D of Cuirass and the Data Service, right? = How would you >> envision setting it up? > > The queue builds script bundled in with the guix-build-coordinator seems > to work fine, that's how bayfront is currently set up: > > (service guix-build-coordinator-queue-builds-service-type > (guix-build-coordinator-queue-builds-configuration > (systems '("x86_64-linux")))) > > https://git.savannah.gnu.org/cgit/guix/maintenance.git/tree/hydra/bayfron= t.scm#n781 Oh, right. [...] > There's been some progress, albeit slow progress with the patch testing > setup I've been working on, but I've been viewing that as a way to test > branches as well. Given changes happen through patches and branches, I > think this makes sense, and I think the Guix Data Service has some nice > features for helping with this, like comparing two revisions and working > out what breakages have occurred. > > However, with patches and branches, this is very much a continuous > integration tooling issue, much more than substitutes. Cuirass is > already building branches, and it's been gaining features previously > found in the Guix Data Service, like tracking the history of which > derivations relate to which revision, and separating out packages from > system tests so that it's easier to look at them. Yes, though to be fair, the system test separation is a separate jobset, not a =E2=80=9Cfeature=E2=80=9D of Cuirass. >From what I can see Cuirass is in the footsteps of Hydra in terms of design, which was somewhat ad-hoc at times, focusing on answering developer questions. > As people are going to Cuirass to look at the build status for packages, > system tests and various branches, the problem is similar to that of > substitutes. It doesn't matter if the Guix Build Coordinator seems to do > some things better, when the question comes up about whether something > has built yet, or whether a branch is ready to merge, Cuirass on > ci.guix.gnu.org is where people are going, and that seems unlikely to > change (at least less likely than the setup for providing substitutes). > > The Guix Data Service in the center, making it easier to do various > things by providing the data, this was the idea when it started, but the > reality recently is that strategy hasn't been paying off. The Data Service provides a wealth of information that=E2=80=99s underused! I think addressing the interface issue (be it web UI or JSON + CLI) is high priority so we can all start taking advantage of the Data Service. The current interface is generic enough that it allows you to see everything, from lint warnings to version changes to reproducitility rates. We could have interfaces that answer very specific needs: =E2=80=A2 Which packages are broken on x86_64? =E2=80=A2 How does branch X compare to branch Y in terms of build failure= s? =E2=80=A2 Which packages are not reproducible? =E2=80=A2 Which packages are =E2=80=9Cflaky=E2=80=9D? I know all this information is already available from the web UI, but because it=E2=80=99s generic, it can be hard to find out how to answer very concrete issues like this. A QA entry point like you proposed in the thread you mentioned=C2=B9 could certainly help. A reproducibility entry point would be nice too. A package browser for guix.gnu.org like the one Danjela worked on would be great too, possibly with version browsing facilities. And Guix Weekly News! And the security tracker! :-) =C2=B9 https://lists.gnu.org/archive/html/guix-devel/2021-02/msg00096.html It seems to me that all that hard work is already done and what I describe above are rather low-hanging fruits. Taking Conway=E2=80=99s law into account, we may find it easier to recruit = if as much as possible takes place here, things get deployed behind *.guix.gnu.org, and relevant bits are made part of Guix proper. And also, we must regularly advertise progress; one blog post in all of the Guix Data Service=E2=80=99s lifetime is not enough. :-) Thoughts? Ludo=E2=80=99.