Subject: Re: bug#62720: 29.0.60; Not easy at all to upgrade :core packages like Eglot

From: Eli Zaretskii <[email-masked]>
Date: Thu, 13 Apr 2023 08:30:49 +0300

> From: Philip Kaludercic <[email-masked]>
> Cc: João Távora <[email-masked]>,
>   [email-masked],
>   [email-masked],  [email-masked]
> Date: Wed, 12 Apr 2023 19:39:20 +0000
> 
> >> Please, in normal non-shouting case, explain to me how you think
> >> that the behavior of an existing
> >> command can be changed with "completely separate code". 
> >
> > I already did: either (1) add a prefix argument to an existing
> > command, which will then trigger the new behavior, or (2) add a
> > separate command.
> 
> Here you have (1):

Thanks.  This is almost on-target, but it modifies
package-compute-transaction.  Is that necessary?

> +(defun package--upgradable-built-in-p (package)
> +  "Check if a built-in PACKAGE can be upgraded.
> +This command differs from `package-built-in-p' in that it only
   ^^^^^^^^^^^^
This is not a command, this is a function.

Also, the name has a problem I pointed out earlier in this discussion:
"upgradeable" does not tell well enough what the function tests.

> @@ -2187,7 +2210,9 @@ package-install
>    "Install the package PKG.
>  PKG can be a `package-desc' or a symbol naming one of the
>  available packages in an archive in `package-archives'.  When
> -called interactively, prompt for the package name.
> +called interactively, prompt for the package name.  When invoked
> +with a prefix argument, the prompt will include built-in packages
> +that can be upgraded via an archive.

I wonder whether an invocation with the prefix argument should include
_only_ built-in packages in the prompt?  This could be a useful
feature regardless, and so would allow us to keep this option for
future uses.

Finally, there's still discussion going on whether built-in packages
should be handled only by package-update, not by package-install,
since built-in packages are always "installed".  WDYT?