From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp10.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id WIR0CTM84WFXXAEAgWs5BA (envelope-from ) for ; Fri, 14 Jan 2022 10:02:43 +0100 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp10.migadu.com with LMTPS id EHBQAjM84WGlDAAAG6o9tA (envelope-from ) for ; Fri, 14 Jan 2022 10:02:43 +0100 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 629DD2D39A for ; Fri, 14 Jan 2022 10:02:42 +0100 (CET) Received: from localhost ([::1]:41526 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n8ITp-0002OL-DF for larch@yhetil.org; Fri, 14 Jan 2022 04:02:41 -0500 Received: from eggs.gnu.org ([209.51.188.92]:42366) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n8IGc-0002Wj-Di for bug-guix@gnu.org; Fri, 14 Jan 2022 03:49:02 -0500 Received: from debbugs.gnu.org ([209.51.188.43]:42622) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1n8IGc-0007sM-4m for bug-guix@gnu.org; Fri, 14 Jan 2022 03:49:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1n8IGc-0003ey-2b for bug-guix@gnu.org; Fri, 14 Jan 2022 03:49:02 -0500 X-Loop: help-debbugs@gnu.org Subject: bug#53224: Cookbook recipe about profile collisions Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Fri, 14 Jan 2022 08:49:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 53224 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Leo Famulari Received: via spool by 53224-submit@debbugs.gnu.org id=B53224.164215008713971 (code B ref 53224); Fri, 14 Jan 2022 08:49:02 +0000 Received: (at 53224) by debbugs.gnu.org; 14 Jan 2022 08:48:07 +0000 Received: from localhost ([127.0.0.1]:35525 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1n8IFi-0003dH-MH for submit@debbugs.gnu.org; Fri, 14 Jan 2022 03:48:06 -0500 Received: from hera.aquilenet.fr ([185.233.100.1]:54316) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1n8IFd-0003bs-9k for 53224@debbugs.gnu.org; Fri, 14 Jan 2022 03:48:05 -0500 Received: from localhost (localhost [127.0.0.1]) by hera.aquilenet.fr (Postfix) with ESMTP id 69CC6242; Fri, 14 Jan 2022 09:47:54 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at aquilenet.fr Received: from hera.aquilenet.fr ([127.0.0.1]) by localhost (hera.aquilenet.fr [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id y_BPN6fp7GyG; Fri, 14 Jan 2022 09:47:53 +0100 (CET) Received: from ribbon (91-160-117-201.subs.proxad.net [91.160.117.201]) by hera.aquilenet.fr (Postfix) with ESMTPSA id E1B0423C; Fri, 14 Jan 2022 09:47:52 +0100 (CET) From: Ludovic =?UTF-8?Q?Court=C3=A8s?= References: Date: Fri, 14 Jan 2022 09:47:52 +0100 In-Reply-To: (Leo Famulari's message of "Wed, 12 Jan 2022 19:11:59 -0500") Message-ID: <87v8ym4sav.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-Spamd-Bar: / X-Rspamd-Server: hera X-Rspamd-Queue-Id: 69CC6242 X-Spamd-Result: default: False [-0.10 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[3]; TO_DN_SOME(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_GOOD(-0.10)[text/plain]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; RCVD_COUNT_TWO(0.00)[2]; RCVD_TLS_ALL(0.00)[]; MID_RHS_MATCH_FROM(0.00)[] X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-guix@gnu.org List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: 53224@debbugs.gnu.org, Matt Errors-To: bug-guix-bounces+larch=yhetil.org@gnu.org Sender: "bug-Guix" X-Migadu-Flow: FLOW_IN X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1642150962; 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:resent-cc: resent-from:resent-sender:resent-message-id:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post; bh=CL7vqGylbAodYAS/mvjLK3zitWaDkiKCa4qgNmnua0s=; b=aTTrxPQE70VxyT5UFvjPqGIboEJrHAH9h4INpjPBS2mHPlUUwaeA+rDz0EuyUaQhDKm0Er fn8uYNYrcb7Ox11S7gLv0Ue6dOEiMo5JLNWuCxfvJik5ct1HJS5IGKT+DWofXnWuHCSBJt xhPR7qMNcGpzYHpQwr44RRFjYizshT1VqjjnyWOqGbsFmYTUBtCSd0hOSKNllKhQ+bY0m4 ZUaAGjvS5sKFayZjCP+ICu/9JJ/OIxIs8l1iFekPknLx7SKlOrIEM77EhziHrhCtK2NXkQ l5BbZDqCqslE26JqosEe2RnR5ksGbiBLG1XvloG857hRnWw9jTlp5hffETbEww== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1642150962; a=rsa-sha256; cv=none; b=WethZ8ycqVtr8FUjdAp8AGY1neSE0PNE5c14wc0EtFfDZy9tP8Upg5RxjTlDo0hN8daaaC s44zGBiHOa8DUYX+GAHCsGqdV1vKtDihUDfpWLux1pELmb11+22fCUci/Rsb2CEQBtn7fj rmiVaCxujqzybecoTVCVzYOS4S2nxmd9OLiSeplgrWspqANg9Bv4BdjRvvLxtYIid5H0Ut a9Bgnz9/K51+tg3zTIsaRRg9vywW5z8lKz4jHl1+ZAsrgqjXSHjeItpS4OFmoWN8oShJG/ WSvxIJKwo6df1qVhJlcYEd7DdoM2H6Spt6XtWhiULmSx36IyBVs/v3LTEMK8bg== 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 "bug-guix-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="bug-guix-bounces+larch=yhetil.org@gnu.org" X-Migadu-Spam-Score: -3.92 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=pass (policy=none) header.from=gnu.org; spf=pass (aspmx1.migadu.com: domain of "bug-guix-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="bug-guix-bounces+larch=yhetil.org@gnu.org" X-Migadu-Queue-Id: 629DD2D39A X-Spam-Score: -3.92 X-Migadu-Scanner: scn0.migadu.com X-TUID: SHjeJlxMOPsz Hi, Leo Famulari skribis: > Recently, Matt pointed out that profile collisions can be confusing and > difficult to resolve: > > https://lists.gnu.org/archive/html/guix-devel/2022-01/msg00115.html I don=E2=80=99t see the words =E2=80=9Cprofile=E2=80=9D and =E2=80=9Ccollis= ion=E2=80=9D here; maybe that was upthread? > Specifically see this blog post: > http://excalamus.com/2021-10-06-guix-debug.html > > I think we should add a Cookbook chapter on the subject. > > This particular error state seems unavoidable given the size of the > distro and the number of packages that use propagation. > > So, let's help users understand it and give them the knowledge to even > help resolve such collisions as contributors. > > Speaking as somebody who understands intimately what a profile is, what > propagated inputs are, and how they can interact to cause "profile > contains conflicting entries", I am sympathetic. > > Although I know exactly how to resolve such errors, I have also > explained the situation to new Guix users several times on IRC. Yeah, we need to get a good understanding of when that happens, and what=E2=80=99s confusing. Currently, on profile collisions, the error message shows where the collision originates and a hint on how to work around it. Perhaps the hint is sometimes wrong (in which cases?), or perhaps it=E2=80=99s too ters= e? Can it be improved? > Many people come to Guix, install some packages, use them, then want to > upgrade them, and they have never learned what a profile is or how it is > the fundamental mechanism by which Guix implements package management. > > It also seems to me that plenty of people would prefer not to ask for > help, but rather go searching online and in the documentation, which > does not include the string "contains conflicting entries". > > I envision a Cookbook chapter that explains what a profile is, what > propagation does, what profile generations are, and then how they all > combine to cause this error state. And an example of a resolution, > whether by adjusting a package definition, uninstalling a package, etc. > > There are some older Guix presentation videos that I think do a great > job of explaining profiles and generations, including slides with good > illustrations of the subject. It would be nice to try using that style > of illustration, as I found it clear and illuminating when I first > learned about Guix. The definition of what a profile is is another topic. Currently the term =E2=80=9Cprofile=E2=80=9D is defined in =E2=80=9CGetting Started=E2=80= =9D: https://guix.gnu.org/manual/en/html_node/Getting-Started.html#index-profi= le It=E2=80=99s very much defined in passing though. How can we improve on th= at? In some early talks we had illustrations of the symlink forest of a profile borrowed from Eelco Dolstra=E2=80=99s own talks on the matter; see = for instance p. 17 of . I stopped using it because I think those symlinks are an implementation detail and it doesn=E2=80=99t help to focus on symlinks (and hashes and all that) when giving an overview of the tool. Now, perhaps that illustration could be useful in the manual. WDYT? Thanks, Ludo=E2=80=99.