From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp11.migadu.com ([2001:41d0:403:478a::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms9.migadu.com with LMTPS id 6LE6MPlT/2TG7gAA9RJhRA:P1 (envelope-from ) for ; Mon, 11 Sep 2023 19:52:57 +0200 Received: from aspmx1.migadu.com ([2001:41d0:403:478a::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp11.migadu.com with LMTPS id 6LE6MPlT/2TG7gAA9RJhRA (envelope-from ) for ; Mon, 11 Sep 2023 19:52:57 +0200 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 13F5CC72C for ; Mon, 11 Sep 2023 19:52:56 +0200 (CEST) Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20221208 header.b="njFlB/q/"; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org" ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1694454777; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to: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:dkim-signature; bh=zsM/ZiUWb5Hvl2zEtzToXksg0xKswsGsfXljvLbwBq8=; b=IVlLhqfyS5vqdEs63F3XFpEQ8OJrJ+tEYhs6lULpD8rDQCAfyv9jO39aOvyoHRflSs7EWq bpBUKWApTKYIrOppe1IyQJPp9d65RAhcaHmSuPFWONo3521LOlHJ0atJCyXwaelVTCAqI6 jBTRo03rE/6jEsL8qM7NV5nBSNqTclExr/kzyAoLdbUSU/GIL8ueXDqq9weMbOr3ysv9NG yB2rfALjoy8iQis7cwvqof9qVgmVhT90i9MQIbe7xSmVUw7bTchMjdg+S0L1sw/9/h/050 L8su1eV3Gf9+62ZmSyZq83fshbLOyYNCoTQwfQlXLxUeJbeBcffSfjE/o2ZlVA== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1694454777; a=rsa-sha256; cv=none; b=meYtZ6cnjft9Kp6vUpw+iRnpcjPgdb5/0T8FSX0WtvrDi1p72ygXPx4sHF2l0ZO+DYC1H9 aVtbeNwMTzOVxwxH3xFnzWtXSRQIUOeKXXZmMvSXvGBA+h+a0sb+OgSaGT9bmBlQVpykCL 9iDTYy4pvMR5ArL3XRF6OZLzFaxcvOWi+XRbJa3P+kMJxP7egbLqYym99BmrkEwnu3qk1+ UyqwpxdfbNiaQhh1i8d0QVz6hkFZd0JhuPpvTOFw750n01LVf4XJ1n/9quDZFZ+A1LF45l e78vIGTFl+DUeHi2kCUjcw/7oPUt06v1ceS13/fJiSvKAR+oM1Jtm/ULz8k0OA== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20221208 header.b="njFlB/q/"; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org" Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qfl5Z-0002Zq-4f; Mon, 11 Sep 2023 13:52:45 -0400 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 ) id 1qfl5X-0002Ze-E6 for guix-devel@gnu.org; Mon, 11 Sep 2023 13:52:43 -0400 Received: from mail-wm1-x32a.google.com ([2a00:1450:4864:20::32a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qfl5U-0008QM-KB; Mon, 11 Sep 2023 13:52:43 -0400 Received: by mail-wm1-x32a.google.com with SMTP id 5b1f17b1804b1-402ba03c754so13915845e9.0; Mon, 11 Sep 2023 10:52:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1694454758; x=1695059558; darn=gnu.org; h=content-transfer-encoding:mime-version:message-id:date:references :in-reply-to:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=zsM/ZiUWb5Hvl2zEtzToXksg0xKswsGsfXljvLbwBq8=; b=njFlB/q/4nr6gNVJhKxrsq48m567OGuSZS11SiKbTYUZrzsU7TA2ygI15xzytSrcjT BmDZ00E5RxQrf63R1MLozjC/x0vYmB8cxwm5X1e71ntqzJnSDeGNJm5O9a5bmXOQAF8j TJfVSMc/MTdUNbYC4Bci7LCkS00Xbo0o2C6eY7ygb/f+0hGmdBrc0HjhyVXuloUYeW9O KClZKVDd5COMTadp5OkSbAYhY/gueZTFfb1GoZGEtEG9YtJLxbSHVlNUnBvbnVYGQw6t dDKkCNgd6OV9VT45Zj6F5oTvMoI2H0xMrY6Lu3ztuEyUJOvDhec/Ix1J03UvqsIbLzxE VBMw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694454758; x=1695059558; h=content-transfer-encoding:mime-version:message-id:date:references :in-reply-to:subject:to:from:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=zsM/ZiUWb5Hvl2zEtzToXksg0xKswsGsfXljvLbwBq8=; b=RaLDeOu/Yx1QEYrqEgPajPaFqcpNfEgohts0sQwRN1eo/1bZmM2dDS6KwVtmENXYIU 4YKm5piWO9rZyFEY6BQTfdge4e1ZL4fuOSfy5jsJQrFGJGuyoVuBZtwcN12QtD0e7GpX gCWgab/PqG176OFFH+5veUsvY15+9y/abUxUNrAHfTLAR6NaqY8lKMKReldPrV8uBYv2 3O0umcQ9Q2sIsSsvnoIQf7qC2KiytWNTGpHG25wNoF4dVVKtDu2oA/I5LJ6Xv43lPJBZ p9J426beKiWdj567vxssVH8TpB/hCVeFsNoJqZAkC94Q8qa8x/GRboiUZ/DUTHC1lAWo epfg== X-Gm-Message-State: AOJu0YxhgGFm7JHR0dZUiXFp+1tgslyrBfSefbcyST3Ue0mBSqOXSka+ otCG2t1NygcoSJYV1Bb+VWHu/p9nG9Y= X-Google-Smtp-Source: AGHT+IF+yCmq85RaDgtfbogyi/rczThJdcc2WRuQbQokcxW2kIc9t5wb7EE/m0LuF6vqkLyYYkgoaQ== X-Received: by 2002:a5d:4c85:0:b0:31d:3669:1c48 with SMTP id z5-20020a5d4c85000000b0031d36691c48mr8036614wrs.7.1694454758131; Mon, 11 Sep 2023 10:52:38 -0700 (PDT) Received: from pfiuh07 ([193.48.40.241]) by smtp.gmail.com with ESMTPSA id b14-20020a5d550e000000b0031f34a395e7sm10699052wrv.45.2023.09.11.10.52.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 11 Sep 2023 10:52:37 -0700 (PDT) From: Simon Tournier To: guix-devel@gnu.org, Ludovic =?utf-8?Q?Court=C3=A8s?= Subject: Re: hard dependency on Git? (was bug#65866: [PATCH 0/8] Add built-in builder for Git checkouts) In-Reply-To: <871qf4ivsr.fsf@gmail.com> References: <871qf4ivsr.fsf@gmail.com> Date: Mon, 11 Sep 2023 19:52:34 +0200 Message-ID: <871qf4ha1p.fsf@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Received-SPF: pass client-ip=2a00:1450:4864:20::32a; envelope-from=zimon.toutoune@gmail.com; helo=mail-wm1-x32a.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: guix-devel-bounces+larch=yhetil.org@gnu.org X-Migadu-Flow: FLOW_IN X-Migadu-Country: US X-Migadu-Spam-Score: -9.65 X-Spam-Score: -9.65 X-Migadu-Queue-Id: 13F5CC72C X-Migadu-Scanner: mx0.migadu.com X-TUID: IjxgPJnYQPor Re, On Mon, 11 Sep 2023 at 17:17, Simon Tournier wro= te: > On Mon, 11 Sep 2023 at 16:23, Ludovic Court=C3=A8s wrote: > >> Note that the patch series adds a hard dependency on Git. >> This is because the existing =E2=80=98git-fetch=E2=80=99 code depends on= Git, >> which is itself motivated by the fact that Git supports >> shallow clones and libgit2/Guile-Git doesn=E2=80=99t. [...] > Personally, I do not have a strong opinion about the Big Plan=E2=84=A2. = I note > that the introduction of Git as a hard dependency is a slippery slope > considering the current state of libgit2. Here, it starts with =E2=80=9C= git > clone=E2=80=9D, then =E2=80=9Cgit gc=E2=80=9D (unsupported by libgit2) is= also in the pipes > (#65720 [1]). And after timing, I am almost sure that many operations > using Guile-Git will be slower than their plain Git counter-parts. And > we will start to parse the output of =E2=80=99git=E2=80=99 plumbing comma= nds. Slippery > slope for pushing Guile-Git out, no? For example, having plain Git command with shallow clone would allow to save resource when cloning the first time the Guix checkout cache. Compare, --8<---------------cut here---------------start------------->8--- $ git clone https://git.savannah.gnu.org/git/guix.git guix-full Cloning into 'guix-full'...=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 remote: Counting objects: 696917, done.=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20 remote: Compressing objects: 100% (143179/143179), done.=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 remote: Total 696917 (delta 552872), reused 696909 (delta 552867)=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20 Receiving objects: 100% (696917/696917), 347.14 MiB | 29.31 MiB/s, done.=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20 Resolving deltas: 100% (552872/552872), done. --8<---------------cut here---------------end--------------->8--- and, --8<---------------cut here---------------start------------->8--- $ git clone --shallow-since=3D2019-04-30 https://git.savannah.gnu.org/git/g= uix.git guix-oldest Cloning into 'guix-oldest'... remote: Counting objects: 426879, done. remote: Compressing objects: 100% (87246/87246), done. remote: Total 426879 (delta 342111), reused 423970 (delta 339518) Receiving objects: 100% (426879/426879), 259.75 MiB | 11.26 MiB/s, done. Resolving deltas: 100% (342111/342111), done. Checking connectivity: 426863, done. --8<---------------cut here---------------end--------------->8--- (Here, 2019-04-30 is the date that contains the %oldest-possible-commit "6298c3ffd9654d3231a6f25390b056483e8f407c" v1.0.) Well, =E2=80=99shallow=E2=80=99 probably implies an overload on server side= . But that is far less than the bits it saves: 87.39 MiB (=3D 347.14 - 259.75). It saves something like 25% to download, if I read correctly. I let you do some maths for the improvement you will get. :-) And there is no integration with Guile-Git, if I read correctly. The job is done by the procedure =E2=80=99clone*=E2=80=99 from the module (guix= git). This procedure call the Guile-Git procedure =E2=80=99clone=E2=80=99 which could = drop-in replaced by (invoke git-command "clone --shallow-since=3D2019-04-30" =E2=80= =A6). Cheers, simon