From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp12.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id gOsVEAQ5w2LkKwEAbAwnHQ (envelope-from ) for ; Mon, 04 Jul 2022 21:01:24 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp12.migadu.com with LMTPS id aGEDEAQ5w2IsSgAAauVa8A (envelope-from ) for ; Mon, 04 Jul 2022 21:01:24 +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 ADBE73088B for ; Mon, 4 Jul 2022 21:01:23 +0200 (CEST) Received: from localhost ([::1]:54492 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1o8RJy-0003oH-Rq for larch@yhetil.org; Mon, 04 Jul 2022 15:01:22 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:37222) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o8RJD-0003nP-09 for guix-devel@gnu.org; Mon, 04 Jul 2022 15:00:37 -0400 Received: from mail-wm1-x333.google.com ([2a00:1450:4864:20::333]:46760) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1o8RJB-00019p-Av for guix-devel@gnu.org; Mon, 04 Jul 2022 15:00:34 -0400 Received: by mail-wm1-x333.google.com with SMTP id h14-20020a1ccc0e000000b0039eff745c53so6125044wmb.5 for ; Mon, 04 Jul 2022 12:00:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=aRnlry/kqkqi5Kog3x+QXHj4DVnzXB9jA1qwp0Cdf/I=; b=Dc4H2YeSfwkGVFDJsz576uZpgZ3TUuX1PG/n434tkooWwfte0CFWV5li8VR7T+XL0I C9GoiKmwTwF9HPMELeAZN9IJoxN/GQlEQSEM6zD1wML3XrvPN36AAC7xe4gnmE8wLPJb XQ5Vku2y9xesdRMn6b9y3curziRoekcOiwleQTcQ50Uk3+tX3TmaolIm60W/MFi36hLW M3Wrlqq1bC9WcZaIehA7ng+G6Y0mWDkpvAPcya/Aws7nEPy15VJuIvYNulSe2vM+Fwb/ UfmbztlvzRMpCfGudEpV2W06oQMupXaU0zm8Qxw45aeqpK3M13wLQ1HWO3W91l6NWR9P Mabw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=aRnlry/kqkqi5Kog3x+QXHj4DVnzXB9jA1qwp0Cdf/I=; b=ig7gAdkLxTJF2S1wGUb3iepNAL8UtR9GpQIj4RSV+wuXREDfrJGCQa8ZlP9+uii14Z CeDTzhkJJqvQFrrVnFp3yu+jx5ZDUZwZhGYp5qCLTdg8daEGH3AsUitcrD7BxupOL71G lOO6GTVfiTcbxKdc1EQREFn5kudUiM6IvHMJ4pM0dH54cisqjZapR2GFR05uX0lMvM1+ 0mYEG2Ms+rkFP+MVRcHBP58doSmD+jG1pz8KR2q10Pv+sREGUkPhgn2IYt3gXD2VIfP7 cn7pZX+UC+h2QGGW61IQhUXozd0ChAThve5N8vMENy609k5tJNpRpQE4FJY2Cc93FRJj /ntA== X-Gm-Message-State: AJIora8aRP9PcP6bc66Lx69TPRxYlgFZ9sQ8tsVTikmH9b3Nti6/As4P ZAYK1Jp/lPijVanscIlv5qepxalit9WoVg== X-Google-Smtp-Source: AGRyM1tSKeqDqGLN1U7hOQ6vziRZjzLQxsEcuHl729fpopvxlJ5kCLoYgjBAl6TVP4HvuQ8eihuXBw== X-Received: by 2002:a05:600c:1d25:b0:3a0:4cc8:f644 with SMTP id l37-20020a05600c1d2500b003a04cc8f644mr34398670wms.121.1656961231244; Mon, 04 Jul 2022 12:00:31 -0700 (PDT) Received: from lili ([2a01:e0a:59b:9120:65d2:2476:f637:db1e]) by smtp.gmail.com with ESMTPSA id t18-20020a5d42d2000000b0021a56cda047sm30031798wrr.60.2022.07.04.12.00.30 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 Jul 2022 12:00:30 -0700 (PDT) From: zimoun To: Guix Devel Subject: =?utf-8?Q?=E2=80=99guix?= package =?utf-8?Q?--export-manifest?= =?utf-8?Q?=E2=80=99?= using =?utf-8?B?4oCZQHZlcnNpb27igJk/?= Date: Mon, 04 Jul 2022 21:00:19 +0200 Message-ID: <868rp8zosc.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::333; envelope-from=zimon.toutoune@gmail.com; helo=mail-wm1-x333.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, T_SCC_BODY_TEXT_LINE=-0.01 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" X-Migadu-Flow: FLOW_IN X-Migadu-To: larch@yhetil.org X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1656961284; 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:list-id:list-help: list-unsubscribe:list-subscribe:list-post:dkim-signature; bh=aRnlry/kqkqi5Kog3x+QXHj4DVnzXB9jA1qwp0Cdf/I=; b=dg1ZowFsTRUZSetSbyAfSWrGP8rWOPjkpMXldgLQD/cvc+PQkWR6LAeYneMKOIRcUkoh76 HasjE99AgF2mWqL9+Dfsm/m9dV4GbIlGhr940uNzLd/mTMIGDwAmL27dN+5aIwmEbIf5nC Kyntw+mz+5aZ9KofTzhUWZyIRdF8tlgZYe2l34nYg6Za/FRmXWGu+/wkdsr98jMbj0NdKA eSYKrlVbW+LqfvKBKe2sfgQ8wuDa9lMJJEnrFzyhZ1VsSDiQwS9JJJ4I2dHCXYsEWKVQjz wrVm6cUCjOdXyhtttV3c4A40GuFyD1/GJnhXlLB2UyaXf5Tk4s0FThBMj2UZMw== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1656961284; a=rsa-sha256; cv=none; b=ocAsT3KOlbUEtqnHCFVwkO3xXUB7fueiF+l2ysQGFe9gUuCeYz1rmXRDeFH8wxk2+E0Cj7 UYH0Z6gcpTAv2KHhv+TX9H3YT4HCqjo/sw4ApwZZ+lDo6fGffiQ59P6yz49vKJASMdGTBQ 0vsBsFO6LkMWIpvuojxBzOni4H2J/v7j29szEuftVTjFUvuwysWhyH35P7oQ8T5AETJ+iw 9UIp8VCZ5pZ6d6h5OE+/ce5DB2oJm8ReetevDfGzx5/lbBj4WsU0CbcRpgbsHKoAoI+oS7 tCDF8I7W7lw7ynn8kzSikjFPoZ4MKMIgtxac1fp/hYEAgEZ4HAeQZTClGR7yVg== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=Dc4H2YeS; 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" X-Migadu-Spam-Score: -8.25 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=Dc4H2YeS; 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" X-Migadu-Queue-Id: ADBE73088B X-Spam-Score: -8.25 X-Migadu-Scanner: scn0.migadu.com X-TUID: +k6L18Jao7ik Hi, I have not noticed at the time when discussing =E2=80=99export-manifest=E2= =80=99. Sorry to have overlooked that. Because of #:entry-package-version, --8<---------------cut here---------------start------------->8--- (match (manifest->code manifest #:entry-package-version manifest-entry-version-prefix) --8<---------------cut here---------------end--------------->8--- the output of the option =E2=80=99export-manifest=E2=80=99 is not stateless= ; as it was initially commented in 9fd7b050e2198c89f0763fe79f5c541b77b8e5c9 and then refactored elsewhere (package-unique-version-prefix). --8<---------------cut here---------------start------------->8--- + (versions + ;; If ENTRY uses the latest version, don't specify any version. + ;; Otherwise return the shortest unique version prefix. Note that + ;; this is based on the currently available packages, which could + ;; differ from the packages available in the revision that was us= ed --8<---------------cut here---------------end--------------->8--- For instance, it reads, --8<---------------cut here---------------start------------->8--- $ guix time-machine --commit=3Dfb32a38db1d3a6d9bc970e14df5be95e59a8ab02 \ -- package -p gnu/store/vmn2b3cmfwf250i65rgvkamyr4971q7m-profile --export-manifest ;; This "manifest" file can be passed to 'guix package -m' to reproduce ;; the content of your profile. This is "symbolic": it only specifies ;; package names. To reproduce the exact same profile, you also need to ;; capture the channels being used, as returned by "guix describe". ;; See the "Replicating Guix" section in the manual. (specifications->manifest (list "python" "python-numpy")) --8<---------------cut here---------------end--------------->8--- or it reads, --8<---------------cut here---------------start------------->8--- $ guix package -p gnu/store/vmn2b3cmfwf250i65rgvkamyr4971q7m-profile \ --export-manifest ;; This "manifest" file can be passed to 'guix package -m' to reproduce ;; the content of your profile. This is "symbolic": it only specifies ;; package names. To reproduce the exact same profile, you also need to ;; capture the channels being used, as returned by "guix describe". ;; See the "Replicating Guix" section in the manual. (specifications->manifest (list "python@3.8" "python-numpy@1.17")) --8<---------------cut here---------------end--------------->8--- I think it is confusing and maybe a wrong pattern. Many people are already confused by the fact that the package versions are fixed by the Guix revision and there is no =E2=80=9Cversion solver=E2= =80=9D; as it is the case for all the other package managers. Being able to provide a version in the manifest (or from the CLI) is a marginal case =E2=80=93 when Guix provides several versions of the same package, it is few cases when the vast majority of the packages have only one version for one revision. Somehow, this information about version is redundant (and useless) with the revision. The only useful information for capturing the versions is the revision. If one has this manifest.scm file with the version specified, considering that one runs =E2=80=9Cguix shell -m manifest.scm=E2=80=9D, the= n one would probably get =C2=ABerror: python: package not found for version 3.8=C2=BB, = for instance. Moreover, if the profile =E2=80=93 created long time ago =E2=80=93 contains= many more than 2 packages, then this exported manifest requires many removal of versions (at least) to be usable with a new revision. The export of the versions depending on the state appears to me confusing; for newcomers or people from the classical package managers. And it provides more work when transitioning from imperative to declarative. Therefore, I think =E2=80=99--export-manifest=E2=80=99 should not report th= e version and it should be stateless. However, we could add a comment about =E2=80=9C--export-channels=E2=80=9D. WDYT? Cheers, simon