On Mon, 10 Jun 2024 at 08:02, Philip Kaludercic <philipk@posteo.net> wrote:
Eli Zaretskii <eliz@gnu.org> writes:

>> From: Philip Kaludercic <philipk@posteo.net>
>> Cc: Pedro Andres Aranda Gutierrez <paaguti@gmail.com>,  acorallo@gnu.org,
>>   71356@debbugs.gnu.org
>> Date: Thu, 06 Jun 2024 06:15:44 +0000
>>
>> Sorry for the delayed response;  I don't think that has to be expected.
>> While use-package can utilise package.el for package management, my
>> impression is that it is at liberty to be more flexible/declarative. 
>
> Doesn't use-package utilize package.el already?
>
> If not, how does it handle installation and upgrades? by its own code?

By default it uses package.el, but there is an option to change it.

>> > Do you have package-install-upgrade-built-in set non-nil?  If not, can
>> > you set it non-nil and try the recipe again?
>>
>> I have tried it out myself, and it doesn't appear to do anything.  The
>> issue looks like that `package-installed-p' doesn't respect
>> package-install-upgrade-built-in or :pin.
>
> We should fix that, I think.  If package-install-upgrade-built-in is
> non-nil, use-package should upgrade built-in packages.
>
>> > As for a feature request: what exactly is the feature requested here?
>> > Are you saying that use-package should automatically upgrade built-in
>> > packages?  If so, I don't think this will fly, since it would mean
>> > inconsistencies with package-install.
>>
>> IIUC the feature would be that if a use-package form has a
>>
>>      :pin gnu
>>
>> argument, then this is an indication that we want to install the package
>> from GNU ELPA, disregarding the fact that Emacs already has a built-in
>> version of the same package.  Sort of a package-local version of
>> `package-install-upgrade-built-in'.
>
> I'm not sure.  People tend to copy/paste recipes from the Internet
> without really understanding what they do.  I think a simple :pin
> should not be sufficient, we need some specialized keyword (in
> addition to supporting package-install-upgrade-built-in).

To me :pin would make perfect sense, as it explicitly expresses what
archive we want to follow for package upgrades.

>> I am not familiar with the use-package code, but it seems like we could
>> implement this generally in package-install, by checking
>> `package-pinned-packages'.
>
> I would prefer not to introduce another indication of whether built-in
> packages should or should not be upgraded.  If we do, we will next
> need to decide which one "wins" when they contradict each other.

One idea would be that use-package would check :pin and then
conditionally bind `package-install-upgrade-built-in' when invoking
`package-install'.  That being said, I am not a fan of the user option
any way, and wouldn't mind if we came up with a cleaner solution.

--
        Philip Kaludercic on peregrine

Just as a "parachute", one could obey the global `package-install-upgrade-built-in`
value and make :pin cry out for built-in packages when the user indicates a repo and
`package-install-upgrade-built-in`  is nil

My .2cents, /PA
--
Fragen sind nicht da, um beantwortet zu werden,
Fragen sind da um gestellt zu werden
Georg Kreisler

Headaches with a Juju log:
unit-basic-16: 09:17:36 WARNING juju.worker.uniter.operation we should run a leader-deposed hook here, but we can't yet