unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: "João Távora" <joaotavora@gmail.com>
To: Dmitry Gutov <dmitry@gutov.dev>
Cc: Eli Zaretskii <eliz@gnu.org>,
	arne_bab@web.de, jporterbugs@gmail.com,
	 emacs-devel <emacs-devel@gnu.org>
Subject: Re: Stability of core packages (was: Not easy at all to upgrade :core packages like Eglot)
Date: Thu, 20 Apr 2023 02:49:45 +0100	[thread overview]
Message-ID: <CALDnm515DPgNuHiyFnng_EaMrDnH0K-dKONVKvN0VJF1oocVRQ@mail.gmail.com> (raw)
In-Reply-To: <c2bee7b9-e54b-1198-77f8-b758e3afe10b@gutov.dev>

On Thu, Apr 20, 2023 at 2:13 AM Dmitry Gutov <dmitry@gutov.dev> wrote:

> >> because the package can't be installed (no connection). Should they
> >> remove ":ensure t"? Perhaps. But the documentation says that that option
> >> checks that the package is "installed automatically if not already
> >> present on your system". Seems legit, right? Why would startup fail when
> >> Eglot is already present on the system?
> >
> > Because we want it to do the same it did in Emacs 28?  But I see what
> > you mean.  Maybe the :ensure for packages in that particular subclass
> > should mean "try a bit harder to upgrade these, but don't blow up if
> > you can't -- just try next time".
>
> ... maybe.

I just looked in straight.el.  I haven't actually tried it, but I noticed
that the only place where it cares about if a package is built-in or not is
in straight--convert-recipe.  And to my (pleasant?) surprise, it is using
it to decide whether to report an error or not if the package is not found.
If it's builtin, the error it not thrown.

> Maybe you'll put the recommended use-package form somewhere in the Eglot
> manual, right? It will be published on the web as well. Will it contain
> ":ensure t" or not? If not, the users of Emacs 28 might fail to get the
> package installed. If it will, then the offline users might have
> problems, as described previously.

To be honest, I'm thinking of either not recommending a package manager
at all, or just recommending a third-party one that I think rhymes
with what Eglot users expect.  Might very well be straight.el or
elpaca.el.  One things is for sure, my previous recommendation
of "use package.el" is not good.

> > to ElDoc and use it in Eglot in the same patch, etc.  That part
> > has worked fine.  It wasn't impossible with Eglot in GitHub, but
> > it was harder.  Hopefully Eli is not asking for that bliss to end
> > I understand hope he's asking to be circumspect in what
> > is added, and not do gratuitous things like bump dependencies
> > without reason.  I already do that, so no problem.
>
> It seems like most of this could have worked out if Eglot moved to the
> emacs.git repository, but was removed from the distro before packaging?
> Just a thought, not that I advocate for doing that.

Then emacs -Q bla.py -f eglot would not work.

And major modes in Emacs could not use eglot.el as a library.

> > Finally, if you're taking all this in the direction of "I told
> > you so, don't you regret bringing Eglot into Emacs 29?", I don't
> > blame you.  But I have to say: no, not yet.  I think having the
> > beginnings of an LSP library in Emacs for major-modes to work
> > with is excellent.  I like the attention and the high-standards
> > other seasoned developers hold my code up to.  I like the Info
> > manual and I like that emacs -Q bla.c -f eglot works just fine.
>
> I like my told-you-so's as much as the next guy (just kidding;
> definitely more than the next guy), but that's not the point I was
> making. Just that it's here now, and it seems odd to avoid using it and
> hurry up to install the next version right away.

I agree.  I don't want users to hurry, but I don't want them to not
hurry either :-).  It depends on what they want.  Eglot 1.12.29 in
Emacs 29 is pretty good.

> > This upgrade situation sucks, is true, and I should have foreseen
> > it.  Spent too much time in my emacs-master worktree I guess.
> >
> > Who knows, maybe this will all be OK after all?? Half the
> > users are using "straight.el" anyway (and I really doubt
> > it is hampered by these minutiae about dependencies, seeing
> > as MELPA-land is teeming with way more "dependency hell").
>
> I'm pretty sure the users on straight.el are straight-up illusion. It's
> the latest fashion on reddit all right, but it has its own problems, and
> the silent majority are still using the older methods.
>
> Not to say it's a bad project (I'll try to migrate my authored packages
> to it one day, since it seems to make that natural), but for an average
> user? I don't think so.

I don't know.  I see a lot of people using it, and have seen that
for a long time.  The average user googles things and lands on reddits
hits.  ChatGPT teaches you "straight.el" too (if you ask it).

> > If nothing more happens on Emacs 29, which is the most likely
> > outcome, I think I will just start recommending "straight.el"
> > more, maybe learn it myself.  I had problems with it in the
> > past but it's probably matured now.
>
> I would suggest to start recommending ways to perform an upgrade
> explicitly (somewhere in the README, in the manual, and so on). Like
> 'M-x package-upgrade', if we manage to get it fixed in Emacs 29.

That's a big if.  My worry here is how to clearly control this
messaging, especially when dealing with cleanly deterministic
bug reports.  I have to know exactly the version that he user
is running.  Recently, I've become adept at doing:

HOME=`mktemp -d` emacs -l recipe.el

It's a very good way to establish sanity.  And until now recipe.el
could have just `(package-install 'eglot)` and I would know exactly
what packages the user has installed.  The answer will now
be different in Emacs 28 vs Emacs 29.  Mind you, I will still
know, of course, but the thing installed on Emacs 28 will be
wildly different than the one installed on Emacs 29.  And,
as I said before and everybody understands, it will get worse with
time.  So what form to give users??

I suggested adding a 'eglot-update' function to eglot.el only --
the only code I normally have control over.  A four-line long function
that I would put it Emacs 29.  It would have this property of
being absolutely consistent in whatever Emacs you're on.
But Eli called it "the worst of all worlds" and flatly refused it.
Maybe he could reconsider, who knows, if all this writing that
has happened since has provided some more perspective about
the problems.

> And, okay, having a separate section in README about Emacs 29 might suck
> at first, but then the majority of the users move to it, and support
> will get easier, more uniform.

Yeah, I guess.  BTW the tea leaves and some comments in the Philip-Eli
interaction tell me that the behaviour is going to again be different in
Emacs 30.  That will suck for a longer time.

> That's the only hard breakage I managed to come up with. The others are
> of logical kind (functions and commands doing things somewhat against
> their documented behavior), but that's also not so great because people
> like their tools to make sense.
>
> To name an example: 'package-install' will upgrade Eglot even though
> (package-installed-p 'eglot) already returns t.

Even with today's patch in Emacs 29 that already happens if you tweak
the new "heavy-handed" variable.  So I guess that isn't a problem.

João



  reply	other threads:[~2023-04-20  1:49 UTC|newest]

Thread overview: 92+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <87a5zj2vfo.fsf@gmail.com>
     [not found] ` <83wn2h5825.fsf@gnu.org>
     [not found]   ` <87wn2gkhzr.fsf@posteo.net>
     [not found]     ` <83cz485oxi.fsf@gnu.org>
     [not found]       ` <87leiwdyff.fsf@posteo.net>
     [not found]         ` <834jpk5hih.fsf@gnu.org>
     [not found]           ` <871qkom3fj.fsf@posteo.net>
     [not found]             ` <83mt3b4yfc.fsf@gnu.org>
     [not found]               ` <87edonlsxi.fsf@posteo.net>
     [not found]                 ` <83jzyf4vzb.fsf@gnu.org>
     [not found]                   ` <871qknllkj.fsf@posteo.net>
     [not found]                     ` <83fs934pjf.fsf@gnu.org>
     [not found]                       ` <87wn2fk47y.fsf@posteo.net>
     [not found]                         ` <83sfd2g2ek.fsf@gnu.org>
     [not found]                           ` <875y9yfxrr.fsf@gmail.com>
     [not found]                             ` <CALDnm50-Su4SAGDSBiLjt0yrjrVsvyW71NSMi=zt7uHgv7rdng@mail.gmail.com>
     [not found]                               ` <87y1muefks.fsf@gmail.com>
     [not found]                                 ` <CALDnm50b6hRu+4EFqQDVydOF07HdiZT4nHA=aLDjYQKtMBTk2Q@mail.gmail.com>
     [not found]                                   ` <fc2ed4a0-2368-682d-e34d-5cf94ac261fc@gutov.dev>
     [not found]                                     ` <CALDnm527Avsa-MBTD-bvRqOn52AeBLfPvffxjL-NB3tqM=43ZQ@mail.gmail.com>
     [not found]                                       ` <834jpifizy.fsf@gnu.org>
     [not found]                                         ` <CALDnm53X5Yyn_EitG+iHJVx=RO2hjNaWkrgPz0+jKVWVM=eEBQ@mail.gmail.com>
     [not found]                                           ` <83y1mue1qi.fsf@gnu.org>
     [not found]                                             ` <CALDnm51hmRMxstQdZdstA2LrbvYw=zD5=XRVy6uCU=Z+OmONRg@mail.gmail.com>
     [not found]                                               ` <83sfd2e01f.fsf@gnu.org>
     [not found]                                                 ` <1a5e5837-513b-84d8-3260-cdbf42b71267@gutov.dev>
     [not found]                                                   ` <83sfcz9rf2.fsf@gnu.org>
     [not found]                                                     ` <09a49ab9-ac72-36a9-3e68-9c633710eba7@gutov.dev>
2023-04-18 12:57                                                       ` Stability of core packages (was: Not easy at all to upgrade :core packages like Eglot) Eli Zaretskii
2023-04-18 14:02                                                         ` João Távora
2023-04-18 14:47                                                           ` Eli Zaretskii
2023-04-18 15:45                                                             ` João Távora
2023-04-18 16:19                                                               ` Eli Zaretskii
2023-04-18 17:49                                                                 ` João Távora
2023-04-18 21:19                                                                   ` Dmitry Gutov
2023-04-18 18:56                                                         ` Jim Porter
2023-04-18 19:21                                                           ` Eli Zaretskii
2023-04-18 19:36                                                             ` Jim Porter
2023-04-19 11:55                                                               ` Eli Zaretskii
2023-04-19  8:50                                                           ` João Távora
2023-04-19 12:13                                                             ` Dr. Arne Babenhauserheide
2023-04-19 17:03                                                               ` Eli Zaretskii
2023-04-19 17:21                                                                 ` João Távora
2023-04-19 18:07                                                                   ` Eli Zaretskii
2023-04-19 18:14                                                                     ` Dmitry Gutov
2023-04-19 18:32                                                                       ` Eli Zaretskii
2023-04-19 19:33                                                                         ` João Távora
2023-04-20  4:26                                                                           ` tomas
2023-04-19 19:39                                                                         ` Dmitry Gutov
2023-04-19 19:46                                                                           ` João Távora
2023-04-19 20:50                                                                             ` Dmitry Gutov
2023-04-19 20:57                                                                               ` João Távora
2023-04-19 21:58                                                                                 ` Jim Porter
2023-04-19 22:29                                                                                   ` João Távora
2023-04-19 22:42                                                                                     ` Jim Porter
2023-04-19 22:58                                                                                       ` João Távora
2023-04-19 22:06                                                                                 ` Dmitry Gutov
2023-04-19 22:21                                                                                   ` Jim Porter
2023-04-19 22:27                                                                                     ` Dmitry Gutov
2023-04-19 22:43                                                                                       ` Jim Porter
     [not found]                                                                                 ` <f32d7008-ea39-a9d7-8224-2c5b969236b7@gutov.dev>
     [not found]                                                                                   ` <CALDnm53vPnODxpv_=nvOHRjLX-PfhyTS0MFudR0qZ3Pa-Lw-AQ@mail.gmail.com>
2023-04-19 23:25                                                                                     ` Dmitry Gutov
2023-04-20  0:13                                                                                       ` João Távora
2023-04-20  1:13                                                                                         ` Dmitry Gutov
2023-04-20  1:49                                                                                           ` João Távora [this message]
2023-04-20  2:04                                                                                             ` Dmitry Gutov
2023-04-19 19:15                                                                     ` João Távora
2023-04-20  9:38                                                                       ` Eli Zaretskii
2023-04-20  9:48                                                                         ` João Távora
2023-04-20 11:47                                                                           ` Eli Zaretskii
2023-04-20 12:00                                                                             ` João Távora
2023-04-20 12:16                                                                               ` Eli Zaretskii
2023-04-20 12:24                                                                                 ` João Távora
2023-04-19 17:35                                                                 ` John Yates
2023-04-19 17:42                                                                   ` João Távora
2023-04-19 18:02                                                                   ` Eli Zaretskii
2023-04-19 18:04                                                                 ` Jim Porter
2023-04-19 18:34                                                                   ` Eli Zaretskii
2023-04-19 19:35                                                                     ` Jim Porter
2023-04-20  9:49                                                                       ` Eli Zaretskii
2023-04-19 19:40                                                                 ` Dr. Arne Babenhauserheide
2023-04-20  6:02                                                                   ` Eli Zaretskii
2023-04-29  5:21                                                                     ` Stability of core packages emacs
2023-04-29  6:26                                                                       ` Eli Zaretskii
2023-04-29 21:47                                                                         ` Mohsen BANAN
2023-04-30  6:21                                                                           ` Eli Zaretskii
2023-04-30  9:07                                                                           ` Philip Kaludercic
2023-04-30 13:12                                                                           ` Corwin Brust
2023-05-07  5:58                                                                             ` Mohsen BANAN
2023-05-05  4:36                                                                       ` David Masterson
2023-05-05  4:56                                                                       ` David Masterson
     [not found]                                                                       ` <878re3bdj6.fsf@penguin>
2023-05-05  4:59                                                                         ` David Masterson
2023-04-19 12:55                                                             ` Stability of core packages (was: Not easy at all to upgrade :core packages like Eglot) Eli Zaretskii
2023-04-19 13:18                                                               ` João Távora
2023-04-19 13:44                                                                 ` Eli Zaretskii
2023-04-19 14:13                                                                   ` João Távora
2023-04-18 22:10                                                         ` Dmitry Gutov
2023-04-19  8:34                                                           ` João Távora
2023-04-19 12:47                                                           ` Eli Zaretskii
2023-04-19 18:22                                                             ` Jim Porter
2023-04-19 18:37                                                               ` Eli Zaretskii
2023-04-19 19:32                                                                 ` Jim Porter
2023-04-19 22:51                                                                 ` Lynn Winebarger
2023-04-20 13:47                                                                   ` history of ELPA packages and dependencies (was: Stability of core packages (was: Not easy at all to upgrade :core packages like Eglot)) Lynn Winebarger
2023-04-20 13:58                                                                   ` Stability of core packages (was: Not easy at all to upgrade :core packages like Eglot) Lynn Winebarger
2023-04-19 19:25                                                             ` Dmitry Gutov
2023-04-19 19:40                                                               ` João Távora
2023-04-20  9:47                                                               ` Eli Zaretskii
2023-04-20 13:03                                                                 ` Dmitry Gutov
2023-04-20 14:03                                                                   ` Eli Zaretskii
2023-04-20 14:22                                                                     ` Dmitry Gutov
2023-04-20 14:42                                                                       ` Eli Zaretskii
2023-04-20 15:30                                                                         ` Dmitry Gutov
2023-04-20 15:49                                                                           ` Eli Zaretskii
2023-04-20 17:26                                                                             ` Stability of core packages Philip Kaludercic
2023-04-20 18:46                                                                               ` Eli Zaretskii
2023-04-20 21:25                                                                             ` Stability of core packages (was: Not easy at all to upgrade :core packages like Eglot) Dmitry Gutov
2023-04-21 14:12                                                                             ` Lynn Winebarger
2023-04-19 12:31                                                         ` What is :core? (was: Stability of core packages (was: Not easy at all to upgrade :core packages like Eglot)) Lynn Winebarger
2023-04-19 12:57                                                           ` João Távora
2023-04-19 13:03                                                           ` 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=CALDnm515DPgNuHiyFnng_EaMrDnH0K-dKONVKvN0VJF1oocVRQ@mail.gmail.com \
    --to=joaotavora@gmail.com \
    --cc=arne_bab@web.de \
    --cc=dmitry@gutov.dev \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=jporterbugs@gmail.com \
    /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).