From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: "=?UTF-8?Q?Martin=20Edstr=C3=B6m?=" Newsgroups: gmane.emacs.devel Subject: Re: Reconsider defaults for use-package-vc-prefer-newest Date: Fri, 20 Sep 2024 21:37:54 +0200 (CEST) Message-ID: References: <87wmj7dftf.fsf@posteo.net> <875xqqly63.fsf@hyperspace> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="11368"; mail-complaints-to="usenet@ciao.gmane.io" Cc: "Philip Kaludercic" , "emacs-devel" To: "Tony Zorman" Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Fri Sep 20 21:38:40 2024 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1srjSh-0002mU-BD for ged-emacs-devel@m.gmane-mx.org; Fri, 20 Sep 2024 21:38:40 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1srjSB-0001Ti-B1; Fri, 20 Sep 2024 15:38:07 -0400 Original-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 1srjS9-0001TT-Hp for emacs-devel@gnu.org; Fri, 20 Sep 2024 15:38:06 -0400 Original-Received: from mailtransmit05.runbox.com ([2a0c:5a00:149::26]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1srjS7-00068X-E6 for emacs-devel@gnu.org; Fri, 20 Sep 2024 15:38:05 -0400 Original-Received: from mailtransmit03.runbox ([10.9.9.163] helo=aibo.runbox.com) by mailtransmit05.runbox.com with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.93) (envelope-from ) id 1srjRz-008wjP-36; Fri, 20 Sep 2024 21:37:55 +0200 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=runbox.eu; s=selector1; h=Message-Id:In-Reply-To:References:Date:Subject:CC:To:From: MIME-Version:Content-Transfer-Encoding:Content-Type; bh=fu7TUGdOcL5jUOuwdUEVNWY7ra32Yd7AxiT8oJV1vXg=; b=gbUeJUFqe5nZPJLU15QVzQgyST kZBRZHdBYQes4VwqyIhx9/HMjQ46vnpAsDjYFaGBXHVisZNIK4ts9BXoyUTlKHgCDMCTyxopgAbZl +1JaUUvPNS/LalybsJvhQSlEuKqtscqiLSaivKK8GnZnseJXEQTPmEaCAhWreRTbP+Iv+VTOik0sC Ml49hL7czl88xSVpY1Xzr6XPj6CwvOzHD+Z1SPeanp1Gb85zHRko5YKOp4GrITB63oEvUUg2BdB1q 9b3aruMBKeJHZclUFv/EXrVGpmFE/oSdi0QJF95uRdDgG9ZUdOSs5zllkiBT33qd3pNJhFzaYFnpH kMLB381w==; Original-Received: from [10.9.9.128] (helo=rmmprod06.runbox) by mailtransmit03.runbox with esmtp (Exim 4.86_2) (envelope-from ) id 1srjRy-0005Ns-HV; Fri, 20 Sep 2024 21:37:54 +0200 Original-Received: from mail by rmmprod06.runbox with local (Exim 4.86_2) (envelope-from ) id 1srjRy-0000xc-GK; Fri, 20 Sep 2024 21:37:54 +0200 Content-Disposition: inline Original-Received: from [Authenticated alias (1196375)] by runbox.com with http (RMM6); Fri, 20 Sep 2024 19:37:54 GMT X-RMM-Aliasid: 1196375 X-Mailer: RMM6 In-Reply-To: <875xqqly63.fsf@hyperspace> Received-SPF: pass client-ip=2a0c:5a00:149::26; envelope-from=meedstrom@runbox.eu; helo=mailtransmit05.runbox.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, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:323864 Archived-At: On Fri, 20 Sep 2024 06:57:40 +0200, Tony Zorman wr= ote: > > The thing is that with use-package, having a more deterministic > > installation is of interest, especially since use-package is used to > > automatically set up an Emacs environment. >=20 > I feel like the only way to actually guarantee a deterministic > installation procedure is to use outside means (that is, to ping > packages to specific versions/commits, either manually or with nix > et.al). This can certainly be done with package-vc.el as well, but > that's not what happens when one just uses :last-release. >=20 > Tony Yea, I've recently thought that when you have an ecosystem that grew ad-hoc= and has not very rigid curating, the solution isn't necessarily to start t= rying to pressure everyone into a reliable release cadence and break innoce= nts' initfiles on the way. This isn't corporate, we're all lisping for free= , and have to lisp smart, not hard. A Pareto solution would seem to be lock= files. That is, an autogenerated file specifying pinned versions or commits. Say there's a file "~/.emacs.d/versions.toml" containing lines such as vertico =3D "1.9.0.33" consult =3D "1.8.0.2" ess =3D "24.0.20" elpaca =3D "0.0.2.0.34" and every time you upgrade, you can have the option of trying to upgrade ev= erything at once, rolling back after you find it breaks, only upgrade some = of them etc. (Rolling back is a pretty important part) This would be deterministic and everything. Actually it sort of already ha= ppens with use-package, nevermind whether it fetches the latest snapshot or= a "release version", because it's not as if it will auto-update every time= you start Emacs, only when you manually tell it to update. The missing pie= ce is for the user to know how to check their `elpa/` subdirectory into a g= it repo that they can rollback, but that's asking a lot for most users. You might have noticed in the mockup above that I appended a ".0.X" number = to all the versions. That's because commit pinning is ugly and unsemantic.= Here X is just the number of commits since the last "release version", no = matter how long ago that was. So Vertico 1.9.0.33 is the snapshot that's 3= 3 commits after Vertico 1.9. It's totally possible to do something like tha= t (got the idea from https://github.com/melpa/package-build/pull/81). If a developer has no Package-Version and no git tag, it could just be fore= ver at 0.0.X.=