Message ID | cover.1708697539.git.ludo@gnu.org |
---|---|
Headers |
Return-Path: <guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org> X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id B0C5527BBE2; Fri, 23 Feb 2024 14:55:15 +0000 (GMT) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,SPF_HELO_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 2346027BBE9 for <patchwork@mira.cbaines.net>; Fri, 23 Feb 2024 14:55:14 +0000 (GMT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from <guix-patches-bounces@gnu.org>) id 1rdWx6-0000j2-Gg; Fri, 23 Feb 2024 09:55:04 -0500 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 <Debian-debbugs@debbugs.gnu.org>) id 1rdWo1-0006FH-Nn for guix-patches@gnu.org; Fri, 23 Feb 2024 09:45:41 -0500 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from <Debian-debbugs@debbugs.gnu.org>) id 1rdWo1-0004KA-EI; Fri, 23 Feb 2024 09:45:41 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from <Debian-debbugs@debbugs.gnu.org>) id 1rdWoM-0006ki-5u; Fri, 23 Feb 2024 09:46:02 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#69328] [PATCH 00/12] Better source code recovery from SWH Resent-From: Ludovic =?utf-8?q?Court=C3=A8s?= <ludo@gnu.org> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces@debbugs.gnu.org> Resent-CC: guix@cbaines.net, dev@jpoiret.xyz, ludo@gnu.org, othacehe@gnu.org, rekado@elephly.net, zimon.toutoune@gmail.com, me@tobias.gr, guix-patches@gnu.org Resent-Date: Fri, 23 Feb 2024 14:46:01 +0000 Resent-Message-ID: <handler.69328.B.170869951825777@debbugs.gnu.org> Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 69328 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 69328@debbugs.gnu.org Cc: Ludovic =?utf-8?q?Court=C3=A8s?= <ludo@gnu.org>, Christopher Baines <guix@cbaines.net>, Josselin Poiret <dev@jpoiret.xyz>, Ludovic =?utf-8?q?Court=C3=A8s?= <ludo@gnu.org>, Mathieu Othacehe <othacehe@gnu.org>, Ricardo Wurmus <rekado@elephly.net>, Simon Tournier <zimon.toutoune@gmail.com>, Tobias Geerinckx-Rice <me@tobias.gr> X-Debbugs-Original-To: guix-patches@gnu.org X-Debbugs-Original-Xcc: Christopher Baines <guix@cbaines.net>, Josselin Poiret <dev@jpoiret.xyz>, Ludovic =?utf-8?q?Court=C3=A8s?= <ludo@gnu.org>, Mathieu Othacehe <othacehe@gnu.org>, Ricardo Wurmus <rekado@elephly.net>, Simon Tournier <zimon.toutoune@gmail.com>, Tobias Geerinckx-Rice <me@tobias.gr> Received: via spool by submit@debbugs.gnu.org id=B.170869951825777 (code B ref -1); Fri, 23 Feb 2024 14:46:01 +0000 Received: (at submit) by debbugs.gnu.org; 23 Feb 2024 14:45:18 +0000 Received: from localhost ([127.0.0.1]:42770 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces@debbugs.gnu.org>) id 1rdWnd-0006hh-SO for submit@debbugs.gnu.org; Fri, 23 Feb 2024 09:45:18 -0500 Received: from lists.gnu.org ([209.51.188.17]:38556) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <ludo@gnu.org>) id 1rdWna-0006gk-Iv for submit@debbugs.gnu.org; Fri, 23 Feb 2024 09:45:15 -0500 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 <ludo@gnu.org>) id 1rdWSC-0004EU-3j for guix-patches@gnu.org; Fri, 23 Feb 2024 09:23:08 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <ludo@gnu.org>) id 1rdWSA-0007Zm-RT; Fri, 23 Feb 2024 09:23:07 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:Date:Subject:To:From:in-reply-to: references; bh=RPGOiBrxEfUUfBzRAXv9ylZUKOoCgdm9L8nF7Xr/38c=; b=GiwDIiG4O22zCN Cn+REMys7WfxdstKkaphttTIVak591Omk4OjU2Ez87Xy0NEjRHZxBbsi2X/c2f5FeWkt3x6/WLaB2 yGZV9Hkls6XRCWUhAPGBQQ/hKVQ+juDYzoDo2yF55a1CGagG1u6tgcXRgQ5UCwej12LSD0A9fDKXK hF3QyN5xLCSfszb9wHwW7WSP8XTwJto5j4xOxhLpLlY9IFq0kmJY5DgKwA3pveRr1crdOP3jQieYr 4T1ls1pEhNwX+8w6yLDXustMyOlfo694rieDbGM4CXrgkDlV186fuilLkjpRMDMJQzxxD5u/SoCrz m4Fu/Dqzmap6Ky3mJohg==; From: Ludovic =?utf-8?q?Court=C3=A8s?= <ludo@gnu.org> Date: Fri, 23 Feb 2024 15:22:51 +0100 Message-ID: <cover.1708697539.git.ludo@gnu.org> X-Mailer: git-send-email 2.41.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: <guix-patches.gnu.org> List-Unsubscribe: <https://lists.gnu.org/mailman/options/guix-patches>, <mailto:guix-patches-request@gnu.org?subject=unsubscribe> List-Archive: <https://lists.gnu.org/archive/html/guix-patches> List-Post: <mailto:guix-patches@gnu.org> List-Help: <mailto:guix-patches-request@gnu.org?subject=help> List-Subscribe: <https://lists.gnu.org/mailman/listinfo/guix-patches>, <mailto:guix-patches-request@gnu.org?subject=subscribe> Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches |
Series |
Better source code recovery from SWH
|
|
Message
Ludovic Courtès
Feb. 23, 2024, 2:22 p.m. UTC
Hello Guix! This patch series improves source code recovery from SWH, as a followup to <https://issues.guix.gnu.org/68741>. It does several things: • ‘guix lint -c archival’ now emits save requests for VCSes other than Git. • Fix <https://issues.guix.gnu.org/69070>. • Allow content-addressed recovery of Mercurial and Subversion checkouts. • Allow Bazaar recovery using ‘download-nar’ (I didn’t bother with SWH). • Have all these things honor the ‘GUIX_DOWNLOAD_SEQUENCE’ environment variable. You can try the various methods like this: GUIX_DOWNLOAD_SEQUENCE=nar ./pre-inst-env guix build -S apl --check GUIX_DOWNLOAD_SEQUENCE=swh ./pre-inst-env guix build -S guile-wisp --check GUIX_DOWNLOAD_SEQUENCE=swh ./pre-inst-env guix build -S guile-gcrypt --check In the last case, note that you must be running guix-daemon for the checkout since that uses “builtin:git-download”, which is implemented on the server side. There’s a few caveats: • Mercurial SWH fallback almost works, but not quite, due to this SWH bug: <https://gitlab.softwareheritage.org/swh/infra/sysadm-environment/-/issues/5256>. • Right now, no Subversion checkout has the nar-sha256 ExtID at SWH for unclear reasons, so retrieving the source of ‘apl’ (say) from SWH doesn’t work yet. • Multi-directory Subversion downloads (‘svn-multi-fetch’) is not supported yet. For that we’ll need to arrange with our SWH friends so they compute nar-sha256 ExtIDs for combined directories (and we’ll have to include that info in ‘sources.json’). Feedback welcome! Ludo’. Ludovic Courtès (12): lint: Switch to SRFI-71. lint: archival: Fix crash in non-Git case. lint: archival: Trigger “Save Code Now” for VCSes other than Git. swh: Add ‘type’ field to <visit>. swh: ‘origin-visits’ takes an optional ‘max’ parameter. swh: ‘lookup-origin-revision’ handles branches pointing to directories. hg-download: Use ‘swh-download-directory-by-nar-hash’. svn-download: Use ‘swh-download-directory-by-nar-hash’. bzr-download: Implement nar fallback. download-nar: Distinguish ‘output’ and ‘item’ parameter. perform-download: Allow use of ‘download-nar’ for ‘--check’ builds. download: Honor ‘GUIX_DOWNLOAD_SEQUENCE’ environment variable. guix/build/bzr.scm | 3 +- guix/build/download-nar.scm | 12 +-- guix/build/download.scm | 50 +++++++--- guix/build/git.scm | 27 ++++-- guix/bzr-download.scm | 57 ++++++++--- guix/cvs-download.scm | 24 +++-- guix/download.scm | 53 ++++------- guix/git-download.scm | 20 ++-- guix/hg-download.scm | 36 ++++--- guix/lint.scm | 151 +++++++++++++++++++----------- guix/scripts/perform-download.scm | 65 +++++++------ guix/svn-download.scm | 84 +++++++++++------ guix/swh.scm | 71 ++++++++------ tests/lint.scm | 20 ++++ tests/swh.scm | 74 +++++++++++++++ 15 files changed, 501 insertions(+), 246 deletions(-) base-commit: ffcce77ec488e3c89401ad77fafa65fcd9e9f5be
Comments
I forgot to Cc: you Timothy, but you may have useful feedback to give on this series: <https://issues.guix.gnu.org/69328>. (Should we create a ‘source-code-archival’ team?)
Ludovic Courtès <ludo@gnu.org> writes: > Hello Guix! > > This patch series improves source code recovery from SWH, as a followup > to <https://issues.guix.gnu.org/68741>. > > It does several things: > > • ‘guix lint -c archival’ now emits save requests for VCSes other > than Git. > > • Fix <https://issues.guix.gnu.org/69070>. > > • Allow content-addressed recovery of Mercurial and Subversion > checkouts. > > • Allow Bazaar recovery using ‘download-nar’ (I didn’t bother with SWH). > > • Have all these things honor the ‘GUIX_DOWNLOAD_SEQUENCE’ environment > variable. Very nice! I like the design of ‘GUIX_DOWNLOAD_SEQUENCE’ compared to ‘GUIX_DOWNLOAD_FALLBACK_TEST’, but I’m not sure about the name (sorry for bike shedding!). In particular, the “sequences” ‘(nar swh)’ and ‘(swh nar)’ will both try ‘nar’ first and then ‘swh’. What about “methods” or “strategies” or something? > You can try the various methods like this: > > GUIX_DOWNLOAD_SEQUENCE=nar ./pre-inst-env guix build -S apl --check > GUIX_DOWNLOAD_SEQUENCE=swh ./pre-inst-env guix build -S guile-wisp --check > GUIX_DOWNLOAD_SEQUENCE=swh ./pre-inst-env guix build -S guile-gcrypt --check I tried GUIX_DOWNLOAD_SEQUENCE=disarchive ./pre-inst-env guix build -S mes --check and it worked like a charm. > Feedback welcome! Other than the name and the little separate comment on the last patch, this all LGTM. -- Tim
Hi, Timothy Sample <samplet@ngyro.com> skribis: > Ludovic Courtès <ludo@gnu.org> writes: [...] >> • Have all these things honor the ‘GUIX_DOWNLOAD_SEQUENCE’ environment >> variable. > > Very nice! I like the design of ‘GUIX_DOWNLOAD_SEQUENCE’ compared to > ‘GUIX_DOWNLOAD_FALLBACK_TEST’, but I’m not sure about the name (sorry > for bike shedding!). In particular, the “sequences” ‘(nar swh)’ and > ‘(swh nar)’ will both try ‘nar’ first and then ‘swh’. What about > “methods” or “strategies” or something? Good point; I like “methods”. > Other than the name and the little separate comment on the last patch, > this all LGTM. Awesome; I’ll send an updated version and merge by the end of the week if nobody objects. Ludo’.