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

From: Philip Kaludercic <[email-masked]>
Date: Tue, 09 Jul 2024 09:02:03 +0000

No Wayman <[email-masked]> writes:

[...]

>> As we mentioned previously, :vc t can do this as well, without the
>> need to handle special values.
>
> :vc *is* the special value.

Yes?  My point is that I think it would be better to avoid a special
value?

>> FWIW I am not a fan of having package authors recommending the usage
>> of
>> package-vc, unless the user is interested in contributing patches.
>> The
>> ideal usage is just to re-use the package specifications provided by
>> the
>> ELPA server, without having to make up something yourself.
>
> 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.

> (use-package example
>  ;; uncomment one of the following to install with your package
>     manager of choice
>  ;; :ensure t
>  ;; :vc t
>  ;; :straight t
>  ;; :quelpa t
>  )
>
> Users also have to find and edit every use-package declaration which
> makes of use of such keywords if they decide to use a different
> package manager. Under my proposal they would not need to do as much
> work.
>
>> Hmm, I get this point, but I don't see a neat and safe way to extend
>> :ensure.
>
> The same way any other package manager would extend it.
> The semantics I proposed above seem to cover all cases in use for
> other source-based package managers. Is there something special
> package-vc needs that they do not?

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?

[...]

>> 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 don't understand why package authors feel the need to specify
>> separate installation instructions for different packages to begin
>> with, so I am lacking the motivation behind the problem to begin
>> with.
>
> A few reasons that come to mind:
> Not all packages are hosted on ELPAs.
> Often people want to share a package *before* it goes through an
> ELPA's review process in hopes of gaining early testers.
> Not all users use package.el.

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

-- 
	Philip Kaludercic on peregrine