From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id AK/7Nryb6F7ZbgAA0tVLHw (envelope-from ) for ; Tue, 16 Jun 2020 10:15:24 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0 with LMTPS id yKPKMryb6F5ebQAA1q6Kng (envelope-from ) for ; Tue, 16 Jun 2020 10:15:24 +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 9A2089404CC for ; Tue, 16 Jun 2020 10:15:24 +0000 (UTC) Received: from localhost ([::1]:43872 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jl8cl-0007bs-Cd for larch@yhetil.org; Tue, 16 Jun 2020 06:15:23 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52560) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jl8PN-0006G5-NA for guix-devel@gnu.org; Tue, 16 Jun 2020 06:01:33 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:53063) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jl8PL-0004wp-D2; Tue, 16 Jun 2020 06:01:33 -0400 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=43834 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1jl8PK-0001Hz-Jo; Tue, 16 Jun 2020 06:01:31 -0400 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: Edouard Klein Subject: Re: A script to check an edit does not break anything References: <87sgf1r5nk.fsf@alice.lan> <874krewttj.fsf@gnu.org> <874krcbtmc.fsf@alice.lan> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 29 Prairial an 228 de la =?utf-8?Q?R=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, 16 Jun 2020 12:01:28 +0200 In-Reply-To: <874krcbtmc.fsf@alice.lan> (Edouard Klein's message of "Mon, 15 Jun 2020 10:50:19 +0200") Message-ID: <87a713uy6f.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (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-Scanner: scn0 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=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-Spam-Score: -1.01 X-TUID: RSjcmlSUSNL+ Hi Edouard, Edouard Klein skribis: > Ludovic Court=C3=A8s writes: [...] >> However, this is definitely something =E2=80=98guix lint=E2=80=99 could = check with >> something along the lines of the patch below. > > Thank you for pushing profile-collisions, it certainly is helpful for > finding such problems, and it perfectly integrates within guix. > >> >>> - Secondly, it does not limit itself to the dependents (as listed by >>> guix refresh --list-dependents) of the packages one is meddling with, >>> but to the whole reverse bags (as listed by guix graph >>> --type=3Dreverse-bag). >> >> I think it=E2=80=99s equivalent: =E2=80=98guix refresh -l=E2=80=99 simpl= y shows the contour of >> the graph whereas =E2=80=98guix graph=E2=80=99 lists every node. > > The problem lies when the leafs are OK but the nodes in the middle are > not. See for example in the attached image, the failure of jupyter is > masked by r-irkernel being both buildable and installable. When you write =E2=80=9Cthe failure of jupyter=E2=80=9D, you mean failure t= o _install_ jupyter, right? =E2=80=98guix refresh -l=E2=80=99 returns the set of leaves whose closure e= ncompasses all the dependents of the given package. Thus, if you build all the nodes returned by =E2=80=98guix refresh -l jupyter=E2=80=99, you=E2=80=99ll= definitely notice a build failure in jupyter. > Now, the new tool you added to guix lint solves the discoverability > problem. It is now indeed reported that jupyter has a problem. > > Still, it takes around 10 minutes to run on my (admittedly underpowered) > machine, and one has to rummage to the output (or diff with a previous > run) to see if a specific action caused or solved problems. What takes 10 minutes? =E2=80=98guix lint -c profile-collisions=E2=80=99 w= ithout arguments? It runs in 2 minutes on my laptop, which is admittedly too much, but note that most of the time you=E2=80=99ll just run: guix lint -c profile-collisions jupyter That should take a few seconds at most. > gpwc.sh has a real time visual output that is specific to current > modifications (it could even be paired with Ricardo's automatic commit > message writer to automatically guess which root packages to start with) > that allows the developer to start investing a problem quicker, without > having to wait for the end of the run. Also, the visual output makes > seeing who depends on whom easier, the same information in text form > makes my head hurt. > > Provided I rewrite it in scheme, do you think gpwc could make it > into guix/etc ?=20 I haven=E2=80=99t looked in detail at gwpc.sh but I guess we=E2=80=99d all = like improved tooling. To have it in Guix, it=E2=80=99s better if it=E2=80=99s well inte= grated with existing tools and written in Scheme. Thanks! Ludo=E2=80=99.