From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp2 ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id aIg6JeNOMmFyZwEAgWs5BA (envelope-from ) for ; Fri, 03 Sep 2021 18:35:47 +0200 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp2 with LMTPS id WIgNIeNOMmGaHAAAB5/wlQ (envelope-from ) for ; Fri, 03 Sep 2021 16:35:47 +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 5AA7125A04 for ; Fri, 3 Sep 2021 18:35:47 +0200 (CEST) Received: from localhost ([::1]:46012 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mMCAM-0003dr-FO for larch@yhetil.org; Fri, 03 Sep 2021 12:35:46 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:39506) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mMCA7-0003bk-6z for guix-devel@gnu.org; Fri, 03 Sep 2021 12:35:32 -0400 Received: from wout2-smtp.messagingengine.com ([64.147.123.25]:39231) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mMCA2-0008U6-Pa for guix-devel@gnu.org; Fri, 03 Sep 2021 12:35:30 -0400 Received: from compute6.internal (compute6.nyi.internal [10.202.2.46]) by mailout.west.internal (Postfix) with ESMTP id A23EF320092E; Fri, 3 Sep 2021 12:35:24 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute6.internal (MEProxy); Fri, 03 Sep 2021 12:35:24 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=famulari.name; h=date:from:to:cc:subject:message-id:references:mime-version :content-type:content-transfer-encoding:in-reply-to; s=mesmtp; bh=Jso8hU+xqmgPwWkjiB4pogqLcVSWyNaaDrW0ou0IWdM=; b=YujzgXCCWopK PEmxUOXahrZY9qH777p8FLgdJ5q+K7Rg7YmK7akhiO7RVffD6za+rjb4kBdEORf7 F/HOUPEMGp8VAETAAsJZQCJk6Kp1RApdBAF67q7C83x6g6KtEbNopijG0QzuugXe F3FYujc1mb8rIMjLojaKGBqagESGCAM= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm3; bh=Jso8hU+xqmgPwWkjiB4pogqLcVSWyNaaDrW0ou0IW dM=; b=ZjSXeRGoLMo70bFb4bW8NNmcZxBVySlKy1S0Sbr+fL7VnldvPeQkh4nMI 2pQMVOyHP677SQp2YknC3NmcpE6+hn/APy+HstZAkqjkuoGykMHY3lIXfs8lWMEF oYqVhaBVjBhCTWVnyTv1unN7E0WTYmTHO1un5/xHml39cpA4iTsmjXXhjnVInLhJ rkjzzP8LYGkYIkQJUFpI6B7z02SFFmiDF67J5vMU32ANdLtdVuSHHEwtY75+dnfh yxXLKRvsUTrRtoa0mkNpe828R5lgayJFjkajnLTaqeBSfD2ZQ9zj3YEUDIcJag6R FUJogIC6wAlm7XzVVztODTtVXwWCw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvtddruddvjedguddtudcutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enucfjughrpeffhffvuffkfhggtggugfgjsehtkeertddttdejnecuhfhrohhmpefnvgho ucfhrghmuhhlrghrihcuoehlvghosehfrghmuhhlrghrihdrnhgrmhgvqeenucggtffrrg htthgvrhhnpeegjeeggeehtddugfffuddtvdfffeffjeekffffveffheegvddvuedtffek jeejjeenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpe hlvghosehfrghmuhhlrghrihdrnhgrmhgv X-ME-Proxy: Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri, 3 Sep 2021 12:35:23 -0400 (EDT) Date: Fri, 3 Sep 2021 12:35:21 -0400 From: Leo Famulari To: Xinglu Chen Subject: Re: Can we find a better idiom for unversioned packages? Message-ID: References: <8635qp1j6k.fsf@mgsn.dev> <87bl5clg3p.fsf@yoctocell.xyz> <2def863d-fd2e-46c3-9a4c-9c6772724d27@www.fastmail.com> <87fsuojl43.fsf@yoctocell.xyz> <87o899iqpp.fsf@yoctocell.xyz> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <87o899iqpp.fsf@yoctocell.xyz> Received-SPF: pass client-ip=64.147.123.25; envelope-from=leo@famulari.name; helo=wout2-smtp.messagingengine.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 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, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_PASS=-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.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: "Christopher Baines via Development of GNU Guix and the GNU System distribution." , Sarah Morgensen Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: "Guix-devel" X-Migadu-Flow: FLOW_IN ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1630686947; 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=Jso8hU+xqmgPwWkjiB4pogqLcVSWyNaaDrW0ou0IWdM=; b=Ll/Y6b6qfoN0cgw7cMJlZAqBd5tN8PUTyK6jtiVl9FXmnNH5cvTdiO0iD7jSFpyoMXP9Yj pZSdttAV7/jzqEgu3RWmFxCHG6138aOKMsnUeZBp0HaMNAvAHPDUH3+gDgNIymB3+To+rC MoDW5l8fj2QMSDFkr6sSmEiLT2+d8sqkoQwYIlz4TDvi5zLnrMk5SVQz0hwsnGMi/7NTAV uqdG6KC/rPRBg/+cwrYyEmR6/NKllkbrjW7wzJmJ+93q39ThKCu4DtxP4J6ndTkntK89FO +hbsZ/dzGlartF7Bk0L4fhIJNNKgyOqXczUF0dhToPm7Aei1z6wbrutJ8n5m/g== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1630686947; a=rsa-sha256; cv=none; b=c4JNAduncD6wOr7GFX+pyxA3wFVt+riRA3ZbgL8oKWDcO38quGzsmt1cLPz/kW5JdLEyxP lmG0a/alc6uCVBywDUJ7kq1BZUxKqw73yMfgoWSRp86lyw0CbP+dPQco0ZD7Dht+1Z0ysu U6j/tXAGdyIXUj2LKeimsmJgQJKy6WaTVHG8WIJcWoyrYrmFTqRs3EST/erwvn7HHSrj3b w451U+MYiLGiuTdjiymsU4qvPpdKqIbcgsEMojTC26jC02DZYNbUSdSzqFhwXc/gA1rGKB ueqpH/TGcZoqG6FqvEMIqLv3OXx4TRLUi3VXYlUfUbwETQ85dnXEvgn0wlLS5Q== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=famulari.name header.s=mesmtp header.b=YujzgXCC; dkim=pass header.d=messagingengine.com header.s=fm3 header.b=ZjSXeRGo; 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-Migadu-Spam-Score: -1.62 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=famulari.name header.s=mesmtp header.b=YujzgXCC; dkim=pass header.d=messagingengine.com header.s=fm3 header.b=ZjSXeRGo; 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-Migadu-Queue-Id: 5AA7125A04 X-Spam-Score: -1.62 X-Migadu-Scanner: scn1.migadu.com X-TUID: 3fOaXKKdCmS+ On Fri, Sep 03, 2021 at 06:11:46PM +0200, Xinglu Chen wrote: > The date does give an idea of how old the version is, compare that to a > random string of 7 characters. If a user wants to know the exact > commit, they can always just run ‘guix edit PACKAGE’ and check the > ‘commit’ field in the source of the package. That's true. However, it's not easy to figure out which revision of guix.git produced a package that is installed in a profile. The transformation from package definition to built package is lossy. You cannot take a built package and ask Guix "which guix.git commit was used for this?" So, if I have a package foo-0.0.0-1-2021-12-31 in my profile, it's impossible to reliably trace that back to the correct Guix package definition and then discover what upstream source code it was built with. [0] On the other hand, if the package's version includes the Git commit, it's trivial. So, I think we each have different needs that we want satisfied: 1) To know how old the package's source code is 2) To know what source code a built package is based on The second item is something I do often, and I think a lot of Guix developers do it too. And in general, it's imporant for store paths to include meaningful "version" information; a date is not meaningful in this sense. So let's be careful not to lose that ability by removing commit IDs from the package versions. We can satisfy both of these by adding the date to the version string, although we should be careful not to risk exceeding Linux's shebang length limit (127), which sometimes will crop up if packages provide shebang-able interpreters. The store path needs to be short enough that the "bin/foo" part does not make the absolute path exceed 127 characters. This is something that was addressed while designing the current versioning for VCS snapshots. I'm still skeptical of the utility of adding a date, given the lack of useful time information conveyed by Git, but if people really want it and it can be made to work, then we should go ahead. [0] Complications arise when a package origin includes patches or snippets, but anyways...