unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Tony Zorman <tonyzorman@mailbox.org>
To: "Philip Kaludercic" <philipk@posteo.net>,
	"Martin Edström" <meedstrom@runbox.eu>
Cc: emacs-devel <emacs-devel@gnu.org>
Subject: Re: Reconsider defaults for use-package-vc-prefer-newest
Date: Fri, 20 Sep 2024 06:57:40 +0200	[thread overview]
Message-ID: <875xqqly63.fsf@hyperspace> (raw)
In-Reply-To: <87wmj7dftf.fsf@posteo.net>

On Thu, Sep 19 2024 11:49, Philip Kaludercic wrote:
> "Martin Edström" <meedstrom@runbox.eu> writes:
>
>> Previous discussion: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=67955
>>
>> Currently, the setting of `use-package-vc-prefer-newest` defaults to nil.
>> I want to bring up some problems with that, and suggest fixes.
>
> Sorry for the late response, I'm responsible for this decision and would
> like to defend it here.  Feel free to CC me in future discussions
> pertaining to package-vc.  I have also added Tony to the CCs, as he has
> a better understanding of the use-package side of this.

Thanks!

>> PROBLEM 1. MISMATCH WITH PACKAGE-VC
>>
>> Now use-package :vc is not in line with the behavior of the
>> package-vc-install command, which fetches the newest commit.
>>
>> All other package managers I know of also fetch the newest commit.
>
> The main reference is package.el, which by default uses GNU ELPA and
> NonGNU ELPA.  Both distribute explicitly released packages, as indicated
> by the version header.  To me this has a much greater weight than what
> third-party package managers and archives decide to do.

I will say that I also find it surprising behaviour that, by default,

    (package-vc-install "«URL»")

and

    (use-package blah
      :vc (:url "«URL»"))

have different semantics.

Ultimately, different people have different preferences and needs—for
example, "distros" such as DOOM Emacs manually pin all of their packages
to specific commits in order to ensure coherence. As you already know, I
personally would be in favour of setting use-package-vc-prefer-newest to
t by default, but I also only install packages that are either not on a
package archive or that I plan to contribute to with package-vc.el, the
rest is managed by my operating system.

>> It is the new use-package :vc which is the odd one out in the
>> ecosystem, and that can cause stability issues, which I go into
>> more deeply on this Reddit comment:
>>
>> https://old.reddit.com/r/emacs/comments/1f8ok7c/do_you_set_packageinstallupgradebuiltin_to_t/llimwe0/
>
>>
>> PROBLEM 2. "LAST RELEASE" CANNOT BE ASSUMED TO BE THE LAST RELEASE
>>
>> I see many packages that have not bumped their Package-Version
>> header for years.  Perhaps they bump by git tags, or just stopped
>> bumping versions.  I understand them, since it is a lot of manual
>> labor to bump it, cut a release commit, then bump again to append a
>> "-pre" or a ".0.50-git", and to remember to do this everywhere the
>> version string may occur, like in docs.
>>
>> I'm also guessing there's a segment of developers that have sensed
>> that this labor does not end up helping users, so they are not
>> motivated to keep doing it.  Versions only work as intended if
>> everyone is versioning regularly, and that is possible to enforce
>> in a curated repo like GNU Elpa or Debian's repackaged Emacs
>> packages, but as soon as you also install packages outside of that
>> repo (and well, most packages are outside), there's no longer any
>> guarantee and in fact the outdated versions in the curated repo are
>> likely to cause breakage.
>>
>> I have personally had to give up on things like ELPA, Melpa Stable,
>> Debian packages etc.  It always caused instability.  By contrast,
>> installing 200-400 packages off Melpa, in other words the latest
>> dev snapshots, has caused me no issues in ~7 years.  So there are
>> two islands of stability:
>>
>> 1. Stay inside a curated repo entirely
>> 2. Leave the curated repo entirely and install only dev snapshots
>>
>> Now consider what use-package :vc is for.  It is for installing
>> things OUTSIDE any curated repo.  I leave it to you to pick a
>> default setting for `use-package-vc-prefer-newest`.
>
> No, this is an unjustified assumption.  FWIW my intention of writing
> package-vc was to make contributing to packages easier.  The reason the
> "install latest release" option exists for package-vc is that it can
> make it easier to fix a bug with the current version.
>
> 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

-- 
Tony Zorman | https://tony-zorman.com



  parent reply	other threads:[~2024-09-20  4:57 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 [this message]
2024-09-20 19:37     ` Martin Edström
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=875xqqly63.fsf@hyperspace \
    --to=tonyzorman@mailbox.org \
    --cc=emacs-devel@gnu.org \
    --cc=meedstrom@runbox.eu \
    --cc=philipk@posteo.net \
    /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).