Subject: bug#60418: [PATCH] Add :vc keyword to use-package

From: Tony Zorman <[email-masked]>
Date: Tue, 02 May 2023 16:22:17 +0200

On Tue, May 02 2023 15:40, Eli Zaretskii wrote:
>> +@code{package-vc-install}.  Notably -- even when not specified --
>> +@code{:rev} defaults to checking out the last release of the package.
>> +You can use @code{:rev :newest} to check out the latest commit.
>> +
>> +For example,
>> +
>> +@example
>> +@group
>> +(use-package bbdb
>> +  :vc (:url "https://git.savannah.nongnu.org/git/bbdb.git"
>> +       :rev :newest))
>> +@end group
>> +@end example
>> +
>> +would try -- by invoking @code{package-vc-install} -- to install the
>> +latest commit of the package @code{foo} from the specified remote.
>                                       ^^^
> A typo there.
>
> Also, you say above "the latest release", but then "the latest
> commit".  These two are not the same, and in fact I think talking
> about "release" here is misleading, since you actually mean "commit".
> For the same reason, I think the text should explain how to indicate a
> commit that is not the latest one, because that is also not
> self-evident, especially since the upstream VCS is not necessarily
> Git.

I think the terminology of commit and release I use here are consistent,
though maybe the wording is perhaps not entirely clear.

If :rev is not explicitly given, then :vc falls back to calling
package-vc-install (in the case of a non-local upstream) with the
:last-release keyword in place of its REV argument (which is called a
revision in the docs). Since package-vc.el freely calls :last-release a
release of a package, I figured this terminology is appropriate here. It
is only when :rev :newest is given that I talk about commits, which
should also be accurate. Or perhaps you mean that I mistakenly talk
about the latest release in some other place that I've overlooked just
now?

-- 
Tony Zorman | https://tony-zorman.com/