emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: How to install documentation in sub-directory with Package VC?


From: Philip Kaludercic
Subject: Re: How to install documentation in sub-directory with Package VC?
Date: Tue, 28 Mar 2023 07:41:09 +0000

Okamsn <okamsn@protonmail.com> writes:

> On 2023-03-16 08:44 UTC, Philip Kaludercic wrote:
>>> Are the keys used by the ELPA package specification documented in the
>>> manual? If not, I would like to list the keys accepted at the end of the
>>> Package VC manual page, take from here:
>>> https://git.savannah.gnu.org/cgit/emacs/elpa.git/tree/README
>>
>> Yes, exactly.
>>
>>> I will write a patch for this, unless there is a reason to not do so.
>>> What do you think?
>>
>> If you think it can be clarified, why not?
>
> I have tried to write a patch doing this (attached).  I think that each
> of the keys supported by Package VC should be listed in the
> documentation, but I'm still not sure which keys those are.
> In the patch, these are currently listed:
>
> - `:url`
> - `:branch`
> - `:lisp-dir`
> - `:main-file`
> - `:doc`
> - `:vc-backend`
>
> I did not see any others. Are there others?

Those should be it for now.

> I have listed these keys at the end of the Texi file, based on what was
> in the documentation string. For the information in the manual, should
> the data type be included?

We might as well.  A related matter I wonder about is if we should just
link to this section from `package-vc-selected-packages', instead of
documenting the same information twice?

> From 1d4d4ebfd874d99d5e2d29078f3316f49dcf3136 Mon Sep 17 00:00:00 2001
> From: Earl Hyatt <okamsn@protonmail.com>
> Date: Mon, 27 Mar 2023 20:57:31 -0400
> Subject: [PATCH] Add more documentation for the keys of
>  `package-vc-selected-packages`.
>
> * doc/emacs/package.texi (Fetching Package Sources): List the
>   accepted keys.
> * lisp/emacs-lisp/package-vc.el (package-vc-selected-packages):
>   Mention the `:doc` key.
> ---
>  doc/emacs/package.texi        | 53 +++++++++++++++++++++++++++++++++++
>  lisp/emacs-lisp/package-vc.el |  4 +++
>  2 files changed, 57 insertions(+)
>
> diff --git a/doc/emacs/package.texi b/doc/emacs/package.texi
> index 7a2bc11d03c..6f1fad2291a 100644
> --- a/doc/emacs/package.texi
> +++ b/doc/emacs/package.texi
> @@ -578,3 +578,56 @@ Fetching Package Sources
>  and initializes the code.  Note that you might have to use
>  @code{package-vc-refresh} to repeat the initialization and update the
>  autoloads.

Should a sub-heading inside the same node be added here?

> +
> +There are two ways for Emacs to learn how and whence to install a
> +package from source.  The first way, when supported, is to
                                        ^

The phrasing "when supported" doesn't sound clear.  The user doesn't
know what this depends on.

> +automatically download the needed information from a package archive
> +(@pxref{Package Archives,,,elisp, The Emacs Lisp Reference Manual}).
> +This is what is done when only specifying the symbol of a package.

I have the feeling the phrase "package specification" should be
mentioned somewhere here.

> +@example
> +@group
> +(package-vc-install 'csv-mode)
> +@end group
> +@end example
> +
> +The second way is to specify this information manually in the first
> +argument of @code{package-vc-install}, in the form of
> +@samp{(@var{name} . @var{spec})}.  @var{spec} should be a property
> +list using any of the following keys:
> +
> +@itemize @bullet
> +@item @code{:url}
> +A URL specifying the repository from which to fetch the package's
> +source code.
> +
> +@item @code{:branch}
> +The name of the branch to checkout after cloning the directory.

At the risk of being pedantic, we check out the right branch /while/
cloning, not /after/ cloning and I don't know if that matters.  (I also
just now noticed that I used the same phrasing in the documentation
string for `package-vc-selected-packages').

> +@item @code{:lisp-dir}
> +The repository-relative name of the directory to use for loading the
> +Lisp sources, if not the root directory of the repository.
> +
> +@item @code{:main-file}
> +The main file of the project, from which to gather package metadata.
> +If not given, the assumed default is the package name with ".el"
> +appended to it.
> +
> +@item @code{:doc}
> +The repository-relative name of the documentation file from which to
> +build an Info file. This can be a TexInfo file or an Org file.
> +
> +@item @code{:vc-backend}
> +The VC backend to use for cloning the package.  If omitted,
> +the process will fall back onto the archive default or onto
> +the value of @code{package-vc-default-backend}.

Should we link to (emacs) Version Control here?

> +@end itemize
> +
> +@example
> +@group
> +;; Specifying information manually:
> +(package-vc-install
> +  '(csv-mode :url "https://git.sv.gnu.org/git/emacs/elpa.git";
> +             :branch "externals/csv-mode"))

I worry that this example might be confusing, for those people who don't
know how ELPA works.  It would either be worth mentioning that elpa.git
is a mirror with different packages on different branches, or to take
some other example (like AucTeX).

> +@end group
> +@end example
> diff --git a/lisp/emacs-lisp/package-vc.el b/lisp/emacs-lisp/package-vc.el
> index 253b35f1f1a..e75dbac3061 100644
> --- a/lisp/emacs-lisp/package-vc.el
> +++ b/lisp/emacs-lisp/package-vc.el
> @@ -164,6 +164,10 @@ package-vc-selected-packages
>        If not given, the assumed default is the package name with \".el\"
>        appended to it.
>  
> +   `:doc' (string)
> +      The documentation file from which to build an Info file.
> +      This can be a TexInfo file or an Org file.

I guess it will be good to also add :doc to the user option type.

>     `:vc-backend' (symbol)
>        A symbol of the VC backend to use for cloning the package.  The
>        value ought to be a member of `vc-handled-backends'.  If omitted,

-- 
Philip Kaludercic



reply via email to

[Prev in Thread] Current Thread [Next in Thread]