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 01:13:46 +0100	[thread overview]
Message-ID: <CALDnm51QCwO1DHneVjxZ6bqQhcGGebE=J-uNyXE_dWxRtfat7w@mail.gmail.com> (raw)
In-Reply-To: <e08487ea-799c-ba5b-2fb4-5c5612bbb0bb@gutov.dev>

On Thu, Apr 20, 2023 at 12:25 AM Dmitry Gutov <dmitry@gutov.dev> wrote:
>
>
> Anyway, adding it back and replying with a full quote.

Thanks, I also didn't notice emacs-devel was lost there.

> On 20/04/2023 01:49, João Távora wrote:
> What kind of semantics do we get with it?

The closest possible to Emacs 28 for _all_ users (Eglot users and
the Emacs users that are vulnerable to furtive upgrades and which
Eli is thinking of)

> 1. (use-package eglot :ensure t) considers select builtin packages to be
> "not installed" for the purposes of ":ensure t".
> 2. 'M-x package-install' allows installing them. It doesn't allow
> installing any other package for which (package-installed-p 'xxx)
> returns t, but allows installing (essentially upgrading) these ones
> (either just eglot, or both eglot and use-package).
> 3. 'M-x package-update RET eglot RET' still doesn't work unless eglot
> has been "upgraded" at least once via other means.
>
> Is that logical? Is even just 1+2 logical?

Neither is.  IMO we have to think in terms of expectations for each
package, not in terms of a heavy handed blunt class o packages like
"builtin".  Because Eglot wasn't a builtin and now is.  So this is
why my patch includes that predicate `package--safely-upgradeable-builtin`
The name is not good, I admit.  It should be
`package--hitherto-casually-upgradeable-builtin` maybe.

> 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".

> Or, to put it another way, why did we decide to bundle Eglot with Emacs
> if the first thing we're going to do is to try to download it anyway?

Who is "we"?  I know for a fact some people are.  The enthusiasts are,
the feature seekers, are immediately.  Others will experiment, I
assume.  Very often one experimentation that happens is you just
save all your .emacs.d to the side safely and let er rip with
whatever init.el someone (trustworthy presumably) gave you.

( What, you're going to say you've never tried the spacemacs
  or doom emacs or nano emacs just to see what all the hype
  is about??? :-) )

But others, like me from time to time when working on VMs via ssh
machines,  will be very happy with sudo apt install emacs in
said machines (if not done so already) and use a vanilla
configurationless emacs.  And if you add a "clangd" to that
invocation and Emacs happens to be 29 you'll have nice LSP
for the first time in many years.  Personally, for _my_ quick
hacks in those situations, I don't bother with M-x package-install
latest-and-greatest, just as I don't bother bringing my heavy
config via ssh to that machine.  I can't really, I'm frequently
tmate'ing with other people there, we have to settle on Emacs -Q
(+ electric-pair-mode and a few obvious others).

But your question also has a completely different answer:
A very good reason I wanted Eglot to be bundled with Emacs is now
actually being put into question in this very thread.  I wanted
to simplify Eglot's development as it advances with other :core
packages.  For example, I wanted to split off its external
completion style easily into a separate core package, as I did
with Stefan earlier this year.  I want to be able to add a feature
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.

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.

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").

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.

> So... I understand the problem, but I think we shouldn't change the
> functions in a way that makes them conflict with documentation or with
> each other.

Does the latest patch introduce any such conflict besides the
"no internet" case you mentioned?  Not that it's really a
conflict IMO: it's just what Emacs 28 did with Eglot AFAICT.

João



  reply	other threads:[~2023-04-20  0:13 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 [this message]
2023-04-20  1:13                                                                                         ` Dmitry Gutov
2023-04-20  1:49                                                                                           ` João Távora
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='CALDnm51QCwO1DHneVjxZ6bqQhcGGebE=J-uNyXE_dWxRtfat7w@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).