From: "Martin Edström" <meedstrom@runbox.eu>
To: "Tony Zorman" <tonyzorman@mailbox.org>
Cc: "Philip Kaludercic" <philipk@posteo.net>,
"emacs-devel" <emacs-devel@gnu.org>
Subject: Re: Reconsider defaults for use-package-vc-prefer-newest
Date: Fri, 20 Sep 2024 21:37:54 +0200 (CEST) [thread overview]
Message-ID: <E1srjRy-0000xc-GK@rmmprod06.runbox> (raw)
In-Reply-To: <875xqqly63.fsf@hyperspace>
On Fri, 20 Sep 2024 06:57:40 +0200, Tony Zorman <tonyzorman@mailbox.org> wrote:
> > 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.
>
> 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.
>
> 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 trying to pressure everyone into a reliable release cadence and break innocents' 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 lockfiles. That is, an autogenerated file specifying pinned versions or commits.
Say there's a file "~/.emacs.d/versions.toml" containing lines such as
vertico = "1.9.0.33"
consult = "1.8.0.2"
ess = "24.0.20"
elpaca = "0.0.2.0.34"
and every time you upgrade, you can have the option of trying to upgrade everything 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 happens 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 piece is for the user to know how to check their `elpa/` subdirectory into a git 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 33 commits after Vertico 1.9. It's totally possible to do something like that (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 forever at 0.0.X.
next prev parent reply other threads:[~2024-09-20 19:37 UTC|newest]
Thread overview: 70+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-14 12:09 Reconsider defaults for use-package-vc-prefer-newest Martin Edström
2024-09-19 11:49 ` Philip Kaludercic
2024-09-19 18:50 ` Suhail Singh
2024-09-19 20:11 ` Philip Kaludercic
2024-09-19 20:31 ` Philip Kaludercic
2024-09-20 6:15 ` Eli Zaretskii
2024-09-20 15:14 ` Philip Kaludercic
2024-09-20 15:45 ` Eli Zaretskii
2024-09-20 16:56 ` Philip Kaludercic
2024-09-20 17:37 ` Eli Zaretskii
2024-09-20 20:43 ` Philip Kaludercic
2024-09-21 7:14 ` Eli Zaretskii
2024-09-21 14:31 ` Philip Kaludercic
2024-09-21 15:18 ` Eli Zaretskii
2024-09-21 15:43 ` Philip Kaludercic
2024-09-19 21:02 ` Suhail Singh
2024-09-20 20:34 ` Philip Kaludercic
2024-09-20 23:38 ` Suhail Singh
2024-09-21 7:06 ` chad
2024-09-21 14:27 ` Suhail Singh
2024-09-21 15:59 ` Philip Kaludercic
2024-09-21 19:04 ` Suhail Singh
2024-09-22 15:30 ` Philip Kaludercic
2024-09-22 20:08 ` Suhail Singh
2024-09-25 12:06 ` Suhail Singh
2024-09-25 13:15 ` Philip Kaludercic
2024-09-25 12:07 ` Philip Kaludercic
2024-09-25 15:15 ` Suhail Singh
2024-09-25 20:11 ` Philip Kaludercic
2024-09-25 20:48 ` Suhail Singh
2024-09-29 2:13 ` Richard Stallman
2024-09-29 7:25 ` Philip Kaludercic
2024-09-29 13:55 ` Suhail Singh
2024-09-26 23:23 ` Charles Choi
2024-09-27 0:17 ` Adam Porter
2024-09-27 0:33 ` Suhail Singh
2024-09-27 6:46 ` Eli Zaretskii
2024-09-29 14:22 ` Stefan Kangas
2024-09-29 14:35 ` Eli Zaretskii
2024-10-11 18:54 ` Suhail Singh
2024-10-12 5:46 ` Eli Zaretskii
2024-09-20 4:57 ` Tony Zorman
2024-09-20 19:37 ` Martin Edström [this message]
2024-09-20 21:05 ` Philip Kaludercic
2024-09-21 14:44 ` Philip Kaludercic
2024-09-21 14:58 ` Tony Zorman
2024-09-21 15:10 ` Suhail Singh
2024-09-21 16:09 ` Philip Kaludercic
-- strict thread matches above, loose matches on Subject: below --
2024-09-15 17:38 Martin Edström
2024-09-15 18:24 ` Eli Zaretskii
2024-09-15 19:46 ` Martin Edstrom
2024-09-16 11:34 ` Eli Zaretskii
2024-09-16 15:24 ` Martin Edström
2024-09-16 16:15 ` Martin Edström
2024-09-16 17:57 ` Eli Zaretskii
2024-09-18 14:30 ` Martin Edström
2024-09-15 19:52 Martin Edström
2024-09-15 20:41 ` chad
2024-09-15 21:09 ` Martin Edstrom
2024-09-15 22:12 ` chad
2024-09-15 23:51 ` Martin Edstrom
2024-09-16 11:50 ` Eli Zaretskii
2024-09-16 16:46 ` Martin Edström
2024-09-16 18:10 ` Eli Zaretskii
2024-09-16 20:16 ` Suhail Singh
2024-09-17 11:44 ` Eli Zaretskii
2024-09-19 3:38 ` Suhail Singh
2024-09-19 6:28 ` Eli Zaretskii
2024-09-19 12:08 ` Suhail Singh
2024-09-19 12:39 ` Eli Zaretskii
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=E1srjRy-0000xc-GK@rmmprod06.runbox \
--to=meedstrom@runbox.eu \
--cc=emacs-devel@gnu.org \
--cc=philipk@posteo.net \
--cc=tonyzorman@mailbox.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).