From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1 ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id fjnHA54rOWFPNQAAgWs5BA (envelope-from ) for ; Wed, 08 Sep 2021 23:31:10 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1 with LMTPS id wJVlOp0rOWGcUwAAbx9fmQ (envelope-from ) for ; Wed, 08 Sep 2021 21:31:09 +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 7729B14CF for ; Wed, 8 Sep 2021 23:31:09 +0200 (CEST) Received: from localhost ([::1]:42028 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mO59w-0003as-Ay for larch@yhetil.org; Wed, 08 Sep 2021 17:31:08 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:48580) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mO57q-0001j5-Gu for guix-devel@gnu.org; Wed, 08 Sep 2021 17:28:58 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:34512) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mO57p-0004lS-9i; Wed, 08 Sep 2021 17:28:57 -0400 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=35434 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mO57n-0005WC-SB; Wed, 08 Sep 2021 17:28:57 -0400 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: Sarah Morgensen Subject: Re: Can we find a better idiom for unversioned packages? References: <8635qp1j6k.fsf@mgsn.dev> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 22 Fructidor an 229 de la =?utf-8?Q?R=C3=A9volution?= 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: Wed, 08 Sep 2021 23:28:54 +0200 In-Reply-To: <8635qp1j6k.fsf@mgsn.dev> (Sarah Morgensen's message of "Tue, 31 Aug 2021 12:57:23 -0700") Message-ID: <8735qezrhl.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (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.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: guix-devel@gnu.org 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=1631136669; 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; bh=EAFfbKf0x0kBV3zKTKtfnV12sHHutiL1JBC2l7Td/ws=; b=maIEBEF6gDAhh3tgnWFVkBYvgQS5R9YUn9j9PV50cxUIFj9Vt68ZAgo/vUhtIjyc5zXXT1 QnJ9K3hSNLOVQWLm2jLvtjhUXvg9qO62F+JvRciP6Xv1u1Q2x8yEM+NxCqG2Z6KExjrcXC wHhxPxgSEOgq+rOrarXJHZ0WrULBoagjVxhJ+uXI6DqmJRNl2nSVH57THKXat84vQeeCrG XwQHvkXkI20145USt4P4I+Zw2v71PLwMedtsrZfAWG//K81/MnwF6C6lMuJfKNJKyKzqWX mMQkCXRj6FvE2QrVhVNgiv5uTE5+jeQznT+JMQntuMSUqoHdIhuOo0DfJA9LNA== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1631136669; a=rsa-sha256; cv=none; b=DXX5zzAXau0+7kk6k/clcbqzzDjy5cSTtqE139MglFXqv2TFIU3w/SlJUhtFHVzn4MSOZr /Pr3cCWjWv+b9PGBq89OFB+8NoWKoxUmV30HD7/jtfpSt6LF7GQ++SowECfGfZjzBgvMA+ /CeXUmSH/gW3Sl5XdZSzD8zCtO0zd5Rit096um5RpTFvb4wlCUqo89r1FcOZn9IM7WWt9f 6mxHX8m+R4Li1aKi4D2CahwJB+OHaFhfqR0r6kEczox/7CZ4h68Z9zmOO8eUOcUnvmeP5X nyunrwFvvy/ltNcz/CqGJn7c8Jt8iIW7Ru9qnM5Vt7qmO27aQn+r30VKG1++ZA== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=none; dmarc=pass (policy=none) header.from=gnu.org; 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.91 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=pass (policy=none) header.from=gnu.org; 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: 7729B14CF X-Spam-Score: -1.91 X-Migadu-Scanner: scn1.migadu.com X-TUID: eu19PqwaJFWa Hello! Sarah Morgensen skribis: > Currently, there are about 1500 packages defined like this: > > (define-public sbcl-feeder > (let ((commit "b05f517d7729564575cc809e086c262646a94d34") > (revision "1")) > (package > [...]))) > > I feel like there are some issues with this idiom (in no particular > order): I=E2=80=99m late to the party but I=E2=80=99ll complement previous answers.= :-) > 1. When converting between this idiom and regularly versioned packages, > the git diff shows the whole package changing because of the indentation > change. One can use =E2=80=98git diff -w=E2=80=99 to work around that (or the newfa= ngled Diffstatic tool.) > 3. Packages inheriting from it lose the definitions. For actual fields, > we have e.g. `(package-version this-package)`, but we have no equivalent > for these. Right, these pieces of information are not =E2=80=9Cfirst-class=E2=80=9D, e= xcept in the =E2=80=98git-reference=E2=80=99 record (or similar) for the commit ID. Do = you have examples in mind where it=E2=80=99s insufficient? [...] > 5. The closest thing we have to a standardized way of generating > versions for these packages is `(version (git-version "0.0.0" revision > commit))`. We can do better than that boilerplate. I can sympathize with the feeling, but I=E2=80=99m not sure what to do. A =E2=80=98vcs-version=E2=80=99 record as Maxime proposes seems a bit overkil= l to me (and it would probably have an impact on performance, build times, and whatnot.) > 6. Not a direct complaint, but I feel like the overall package interface > was designed before straight-from-vcs unversioned packages were so > common, and so this idiom developed organically to work around that. Sure, though =E2=80=9Cstraight-from-vcs=E2=80=9D and =E2=80=9Cunversioned= =E2=80=9D are two different things: I=E2=80=99m fine with the former, but the latter equates to upstream telling its users =E2=80=9Cgo find a revision that works for you=E2=80=9D. = I think releases still make sense for any non-trivial piece of software. As noted in the manual (info "(guix) Version Numbers"), packages built from arbitrary commits were supposed to be exceptional. Perhaps the reason we=E2=80=99re having this conversation now is that development pract= ices are evolving towards what looks like chaos. :-) Thanks, Ludo=E2=80=99.