Subject: Re: bug#69410: 30.0.50; [WISHLIST] Use-package: allow :ensure to accept package spec instead of separate :vc keyword

From: No Wayman <[email-masked]>
Date: Tue, 09 Jul 2024 05:56:42 -0400

Philip Kaludercic <[email-masked]> writes:

>> :vc *is* the special value.
>
> Yes?  My point is that I think it would be better to avoid a 
> special
> value?

I meant it is a special value at the top-level of a use-package 
statement, too.
Even "more special" in that case.
 
>> There are many recipes which do exactly what you say, but they 
>> need to
>> duplicate that info for less-experienced users. e.g.
>
> My point is that a less experienced user doesn't really have to 
> use
> package-vc in the first place.

I understand your preference for package.el + tarballs, but not 
everyone shares that preference.
 
> As a point of clarification, are you suggesting to drop the :vc 
> keyword,
> or just to extend :ensure?  Specifically so that it handles the 
> package
> name ":vc" as an instruction to install the package from source?

Drop :vc; extend :ensure.
There is no package named ":vc" and, in practice,
there are no packages (out of the roughly 7 thousand I've seen) 
that make use of a keyword as their prefix.

>>> Overall I am not that convinced that there is a worthwhile 
>>> advantage
>>> in trying to unify these keywords.
>>
>> Fair enough. I've laid out my arguments.
>> My bike-shedding budget is near nil these days, so I'll 
>> retreat.
>
> FWIW, if someone proposes a patch, I'd be glad to review it from 
> the
> package-vc side of things.  As I do not use use-package or the 
> :vc
> keyword, I'll let others comment on that.

I'll let someone else spend the effort there (and on the ensuing 
discussion).

> That is an argument for supporting the installation of packages 
> from
> source, not for packages to have to give instructions on how to 
> install
> a package (which as you say, are the same most of the time). 

As long as there are many top-level use-package keywords which do 
essentially the same thing as :ensure, package authors will want 
to do this to cater to as many users as possible.
The "value" of the keyword is the same most of the time (a simple 
`t` or the feature name).
The current situation demands that the *keyword* is always 
different.

We're talking in circles now, though.