From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0 ([2001:41d0:2:bcc0::]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id +N1lBdFBhWDLFAEAgWs5BA (envelope-from ) for ; Sun, 25 Apr 2021 12:17:53 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0 with LMTPS id 4HsIANFBhWCIVQAA1q6Kng (envelope-from ) for ; Sun, 25 Apr 2021 10:17:53 +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 85A791252F for ; Sun, 25 Apr 2021 12:17:51 +0200 (CEST) Received: from localhost ([::1]:49144 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1labpm-00053S-Ge for larch@yhetil.org; Sun, 25 Apr 2021 06:17:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:50898) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1labpL-00053I-4y for guix-devel@gnu.org; Sun, 25 Apr 2021 06:17:23 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:34859) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1labpK-0007GH-1U; Sun, 25 Apr 2021 06:17:22 -0400 Received: from [2a01:e0a:19b:d9a0:9576:8bbf:4795:82ee] (port=60914 helo=meije) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1labpJ-0003og-HI; Sun, 25 Apr 2021 06:17:21 -0400 From: Mathieu Othacehe To: Vincent Legoll Subject: Re: New blog post on the Guix Build Coordinator: Building derivations, how complicated can it be? References: <878s58gprg.fsf@cbaines.net> <8735vggi91.fsf@cbaines.net> Date: Sun, 25 Apr 2021 12:17:20 +0200 In-Reply-To: (Vincent Legoll's message of "Sat, 24 Apr 2021 11:21:49 +0200") Message-ID: <87czuir7m7.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain 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 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=1619345871; 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:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post; bh=pvlQYZV03PpwT+30X38rMdH0Mc9DoW6lg1iaUVfgmBw=; b=f8N47XOyfmLirxsd4kF+/720rKWZy3bwWJm4gWk71ukn9bnhdkcI3nSXeMfNQOyVyTqWK6 HnO3+h0E0Jy3ylGXfFxOsOcuYzbX2UVFDpB4QA0fzPxGimKVRVQJP00Knouib0hCzEyTB8 dCMM1qeUd7I4rgXayVBlyhKaBeI2Xo3T/Vrv9zuJ2K0N9yQ0vTEJLBdZ5v1v+pD+wmo0hF bPCYX2hJ0eCOvFoqaHdGcJpC9uHdFwiQw8P9nLigV7vAyTZxKtzGGQN5fQwRCzEAMf5yil XIYDFdLAHkR+A5PISEoyWX6LhxC5XOysJXDpDmf+a2Ht2cmGTd2Uu/R8WDa4+g== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1619345871; a=rsa-sha256; cv=none; b=mRqTqGt6yGASfjupePBZRJgxhY5HQx110cB45r2xeNBG0NT+R23GBjUyaToYQ09mhnql3j WBSpHjwhJH4P3Wu8CuvelJAoIklDfS2hitPx/HPkG/zOH+gDFZy+8ppkQaARjVep7GI0HO JqHhecB+ew+LTuRBsanPJJtu8mOg0jm87KtnPjEeg/RVxg8++A1yGGKxyXn3joYhWDLdbF 3RwKBXi0FLyEO9bk7k2ZBs3KP3MphPgO20U+TgJsRfZw5xF724mtwJq68XbYuL/DisDa7D Xj3h3APflV3cRgFRaz9VRP9N7hZ2rbh8B/t7wTqBrAvtOev1PbwDR20EomvnQw== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=none; 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: -1.94 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: 85A791252F X-Spam-Score: -1.94 X-Migadu-Scanner: scn0.migadu.com X-TUID: 5Q4IAnnme2Sj Hello, > On Sat, Apr 24, 2021 at 11:10 AM Christopher Baines wrote: >> I did think about trying to include something about Cuirass, but I don't >> have a clear picture of it's scope or purpose, so I'm not really the >> right person to attempt to write authoritatively about it. > > OK, fair enough, Matthieu, Ludo, or anyone else can shed some light > here ? You can learn more about Cuirass by reading its online manual[1]. The Cuirass server at https://ci.guix.gnu.org currently: * Evaluates new Guix derivations on several branches (master, core-updates, ...). * Builds those derivations on a build farm of 29 machines, some of them connected using a Wireguard VPN. * Reports the build status on the Web interface, by email at guix-ci@gnu.org, though a Web API used by "guix pull" and "guix weather". Maintaining and improving this whole architecture has been keeping me busy for the last year. It involved a constant monitoring of the build farm, upgrading the database, and rewriting Cuirass almost completely, between other things. The situation is now much better. Cuirass offers a nice substitutes coverage, at least for Intel architectures, it is stable, well covered by unit tests and documented. We have already discussed the Cuirass vs Build coordinator situation in the past. I haven't changed by mind on that subject. The Guix Build Coordinator is more or less the equivalent of the Cuirass remote build mechanism[2]. Integrating the Build coordinator in the Berlin build farm would mean hooking in to Cuirass as an alternative to the remote build mechanism. I don't think it would be wise because: * It wouldn't bring any new features as far as I can tell. * It would mean maintaining a new SQLite database. When Cuirass was using an SQLite database, maintaining it was a nightmare. I had to dive into SQLite sources, apply a wide variety of hacks[3] to make it scale. Even if the Build coordinator is updated to use a PostgreSQL database, that would mean having two databases, sitting next to each other, with a very similar content, which is a nonsense in my opinion. * The Build coordinator has no documentation, no unit tests and a large code base that would drastically increase the system administrator burden. It really makes me sad that we have two pieces of software that are stepping on each other toes. The Build coordinator has a nice concept and represents a huge amount of work. However, integrating it to Berlin is not an option for me. I think that the next challenges on the CI front are: * Increase the number of ARM machines in the build farm. * Work on substitutes mirrors. * Find a way to make Cuirass and the Data Service work together. and we should face those issues together, rather than having competing software sharing the few build machines we own. Thanks, Mathieu [1]: https://guix.gnu.org/cuirass/manual/html_node/index.html [2]: https://guix.gnu.org/cuirass/manual/html_node/Build-modes.html#With-the-remote-build-mechanism_002e [3]: https://wiki.mozilla.org/Performance/Avoid_SQLite_In_Your_Next_Firefox_Feature