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 gM+LC3ebxmJ+QgEAbAwnHQ (envelope-from ) for ; Thu, 07 Jul 2022 10:38:15 +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 SF1oC3ebxmIaZgAAauVa8A (envelope-from ) for ; Thu, 07 Jul 2022 10:38:15 +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 DCE533377D for ; Thu, 7 Jul 2022 10:38:14 +0200 (CEST) Received: from localhost ([::1]:59034 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1o9N1Z-0001qi-Tl for larch@yhetil.org; Thu, 07 Jul 2022 04:38:13 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53446) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o9MNo-0005qB-BO for guix-devel@gnu.org; Thu, 07 Jul 2022 03:57:08 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:40828) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o9MNo-00088E-1k; Thu, 07 Jul 2022 03:57:08 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:In-Reply-To:Date:References:Subject:To: From; bh=7OuZVOe+aEibtOwephL7GQDNz90iyW4u+JN2XWNdbWs=; b=Y+N+QiRIKBnQrLobywDj fPiZuAqIAS22/UZ+sZ5bzINRbSBbmur6RQWBUd5NwiOwyEckN130cgjO62fmnNdgQANpkqBjgUY9l nwHMwCegYkPRFheV1nxhJr0Ry0auVRQG7CK+1lTF6fsfyQfRmSCdrZfrVfdwZ16epZaGJfDe+b3pO ikKAa/HJPBwsjUn3nCzh/vgwsOf52cTKFuvXZpjoLyYy5JTGd+qb7mnmOTQOCkEo/p0GiO/zKVhWu L7zEJldugE/LMIiBWxWESoehxc8OyFPK0mkgDI26B9kFT2q58D9XpD3wsoPGPNrJHpNMLgNIm9qcY 2PG23OMtcdh+2Q==; Received: from [2001:660:6102:320:e120:2c8f:8909:cdfe] (port=35568 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o9MNn-0001FN-HQ; Thu, 07 Jul 2022 03:57:07 -0400 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: zimoun Cc: Guix Devel Subject: Re: =?utf-8?Q?=E2=80=99guix?= package =?utf-8?Q?--export-manifest?= =?utf-8?Q?=E2=80=99?= using =?utf-8?B?4oCZQHZlcnNpb27igJk/?= References: <868rp8zosc.fsf@gmail.com> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: Nonidi 19 Messidor an 230 de la =?utf-8?Q?R=C3=A9vol?= =?utf-8?Q?ution=2C?= jour de la Cerise 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: Thu, 07 Jul 2022 09:57:05 +0200 In-Reply-To: <868rp8zosc.fsf@gmail.com> (zimoun's message of "Mon, 04 Jul 2022 21:00:19 +0200") Message-ID: <87h73t1hke.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.1 (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.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=1657183094; 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: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post:dkim-signature; bh=7OuZVOe+aEibtOwephL7GQDNz90iyW4u+JN2XWNdbWs=; b=sCP2eu/xVyCLzGw9NEI+DjysZbqB9iUWaJ/sZizve47nwvQfjSEm/XuzTtRhTgTbzXV3jt a3AzbXQ1rVqVhTdkdHgUofBlhPRANZnwcEOBawiJSCesI6bjY6faZWOfYSyGbOenHjFaUe 6ZBtwdl8lMY6PtsdndnTT+xNrk0IRfDyzYJoBLRuciqoPfmkJMsNsqgEyyHcaH+2YaE2TS Ehczvu4o8Dwarcmqzt+Y7TB2mGKEHwywooODhQFLRUjRLRALbLC8iReQOjTozd2aRZIFce n+rocMK/mGd1LTAZ+3+f+iGUQ32+KHVvsNjBVmG0aO6HfGpvp41Qxeb4TaWOhg== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1657183094; a=rsa-sha256; cv=none; b=YXmM1/xPHhj+ntkPDLW7qsKSItUIVRsUJXTN27r2Ng29MNQhVEJ3honLNEIXyFZ8BrCf7R xpUga94RYkt/C17xSbPyHcZrbgczrRpaIxW2KJAdkZCsXyprS5QHy27v00SzWNZdXjgOsY HkK5cWo9a/qYc3QrashToHlFnY2uIqJL4aIKNgoV4CefMdX/9B3gkl0Q/tGOcPQki6gwMr CqR0761ypEh/YcXMYgiM0F583hwZmUpOKLV49AYS8E+QtM2GbUccvFsetkG8zDSemMQ1gq 35NrsJVwtfj0AZplGwn8TeRNHQx2IaNfLjb7le6G1qEg99aAMAKx8zmj+ClMzQ== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=gnu.org header.s=fencepost-gnu-org header.b=Y+N+QiRI; dmarc=pass (policy=none) header.from=gnu.org; 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: -4.15 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gnu.org header.s=fencepost-gnu-org header.b=Y+N+QiRI; dmarc=pass (policy=none) header.from=gnu.org; 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: DCE533377D X-Spam-Score: -4.15 X-Migadu-Scanner: scn1.migadu.com X-TUID: snGPyNkf3H8u Hi, zimoun skribis: > $ 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")) [...] > 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 = the version and > it should be stateless. However, we could add a comment about > =E2=80=9C--export-channels=E2=80=9D. (Nitpick: it *is* stateless, in the sense that it only depends on Guix itself, not on the state of the machine where it is being run.) I see what you mean, but I disagree with the conclusion. =E2=80=98--export-manifest=E2=80=99 emits a comment (shown above) explainin= g that the manifest is symbolic and that one needs channel info to replicate the exact same environment. It is a departure from traditional package managers, and admittedly surprising to newcomers. However, my take on this is that we should be very upfront about symbolic vs. exact reproducibility. We would muddy the waters if we gave version strings the same importance as in other tools, when we know that a version string means very little. Thoughts? Ludo=E2=80=99.