From: Okamsn <okamsn@protonmail.com>
To: Philip Kaludercic <philipk@posteo.net>
Cc: emacs-devel@gnu.org
Subject: Re: How to install documentation in sub-directory with Package VC?
Date: Wed, 12 Apr 2023 00:04:36 +0000 [thread overview]
Message-ID: <8a826e3a-d74e-fcb4-3cb2-4dbbc93cdf97@protonmail.com> (raw)
In-Reply-To: <871qkreu0u.fsf@posteo.net>
[-- Attachment #1: Type: text/plain, Size: 461 bytes --]
On 2023-04-10 13:39 UTC, Philip Kaludercic wrote:
> Just pinging to see if you want to finish this or if I should modify the
> patch? Seeing as the Emacs 29 release is coming closer, I'd rather have
> this fixed sooner than later.
Sorry about that. Please see the attached file, and please modify as
you see fit. I am happy with it, but my only opinion is that all of the
currently supported keys should be given in the manual, which this does.
[-- Attachment #2: 0001-Add-more-documentation-for-the-keys-of-package-vc-se.patch --]
[-- Type: text/x-patch, Size: 6136 bytes --]
From 07c00d430a3b213a0b8a8e4f107b8b6e4d54a9fd 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 (Specifying Package Sources): List the
accepted keys in a new subsection of Fetching Package Sources.
* lisp/emacs-lisp/package-vc.el (package-vc-selected-packages):
- Mention the `:doc` key. Add the `:doc` key to the Customize form.
- Mention the new Info node.
- Correct "TexInfo" to "Texinfo".
- Avoid Git-specific terms for the description of `:branch`.
- Mention guessing `:vc-backend` based on the URL.
---
doc/emacs/package.texi | 77 +++++++++++++++++++++++++++++++++++
lisp/emacs-lisp/package-vc.el | 30 ++------------
2 files changed, 81 insertions(+), 26 deletions(-)
diff --git a/doc/emacs/package.texi b/doc/emacs/package.texi
index 7a2bc11d03c..205a14c6c4d 100644
--- a/doc/emacs/package.texi
+++ b/doc/emacs/package.texi
@@ -578,3 +578,80 @@ 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.
+
+@subsection Specifying Package Sources
+@cindex package specification
+@cindex specification, for source packages
+
+ To install a package from source, Emacs must know where to get the
+package's source code (such as a code repository) and basic
+information about the structure of the code (such as the main file in
+a multi-file package). These properties are described by a package's
+@dfn{specification}.
+
+ When supported by a package archive (@pxref{Package
+Archives,,,elisp, The Emacs Lisp Reference Manual}), Emacs can
+automatically download a package's specification from said archive.
+If the first argument passed to @code{package-vc-install} is a symbol
+naming a package, then Emacs will use the specification provided by
+the archive for that package.
+
+@example
+@group
+;; Emacs will download BBDB's specification from GNU ELPA:
+(package-vc-install 'bbdb)
+@end group
+@end example
+
+ A package's specification can also be given manually as the first
+argument to @code{package-vc-install}. This allows you to install
+source packages from locations other than the known archives listed in
+the user option @code{package-archives}. A package specification is a
+list of the form @code{(@var{name} . @var{spec})}, in which @var{spec}
+should be a property list using any of the keys in the table below.
+
+For definitions of basic terms for working with code repositories and
+version control systems, see @ref{VCS Concepts,,,emacs, The GNU Emacs
+Manual}.
+
+@table @code
+@item :url
+A string providing the URL that specifies the repository from which to
+fetch the package's source code.
+
+@item :branch
+A string providing the revision of the code to install. This is not
+to be confused with a package's version number.
+
+@item :lisp-dir
+A string providing the repository-relative name of the directory to
+use for loading the Lisp sources, which defaults to the root directory
+of the repository.
+
+@item :main-file
+A string providing the main file of the project, from which to gather
+package metadata. If not given, the default is the package name with
+".el" appended to it.
+
+@item :doc
+A string providing 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 :vc-backend
+A symbol naming the VC backend to use for downloading a copy of the
+package's repository (@pxref{Version Control Systems,,,emacs, The GNU
+Emacs Manual}). If omitted, a guess will be made based on the
+provided URL, or, failing that, the process will fall back onto the
+value of @code{package-vc-default-backend}.
+@end table
+
+@example
+@group
+;; Specifying information manually:
+(package-vc-install
+ '(bbdb :url "https://git.savannah.nongnu.org/git/bbdb.git"
+ :lisp-dir "lisp"
+ :doc "doc/bbdb.texi"))
+@end group
+@end example
diff --git a/lisp/emacs-lisp/package-vc.el b/lisp/emacs-lisp/package-vc.el
index 253b35f1f1a..1d29f8dbbd1 100644
--- a/lisp/emacs-lisp/package-vc.el
+++ b/lisp/emacs-lisp/package-vc.el
@@ -145,32 +145,9 @@ package-vc-selected-packages
- nil, if any package version can be installed;
- a version string, if that specific revision is to be installed;
-- a property list, describing a package specification. Valid
- key/value pairs are
-
- `:url' (string)
- The URL of the repository used to fetch the package source.
-
- `:branch' (string)
- If given, the name of the branch to checkout after cloning the directory.
-
- `:lisp-dir' (string)
- The repository-relative name of the directory to use for loading the Lisp
- sources. If not given, the value defaults to the root directory
- of the repository.
-
- `:main-file' (string)
- The main file of the project, relevant to gather package metadata.
- If not given, the assumed default is the package name with \".el\"
- appended to it.
-
- `: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,
- `vc-clone' will fall back onto the archive default or on
- `package-vc-default-backend'.
-
- All other keys are ignored.
+- a property list, describing a package specification. For more
+ details, please consult the subsection \"Specifying Package
+ Sources\" in the Info node `(emacs)Fetching Package Sources'.
This user option will be automatically updated to store package
specifications for packages that are not specified in any
@@ -184,6 +161,7 @@ package-vc-selected-packages
(:branch string)
(:lisp-dir string)
(:main-file string)
+ (:doc string)
(:vc-backend symbol)))))
:version "29.1")
--
2.34.1
next prev parent reply other threads:[~2023-04-12 0:04 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-03-14 3:13 How to install documentation in sub-directory with Package VC? Okamsn
2023-03-14 15:56 ` Philip Kaludercic
2023-03-15 9:41 ` Philip Kaludercic
2023-03-16 1:37 ` Okamsn
2023-03-16 8:44 ` Philip Kaludercic
2023-03-28 1:50 ` Okamsn
2023-03-28 7:41 ` Philip Kaludercic
2023-04-02 0:41 ` Okamsn
2023-04-02 5:24 ` Eli Zaretskii
2023-04-05 7:30 ` Philip Kaludercic
2023-04-06 3:52 ` Okamsn
2023-04-06 15:42 ` Philip Kaludercic
2023-04-10 13:39 ` Philip Kaludercic
2023-04-12 0:04 ` Okamsn [this message]
2023-04-12 7:27 ` Philip Kaludercic
2023-04-12 7:41 ` Eli Zaretskii
2023-04-12 7:48 ` Philip Kaludercic
2023-04-07 21:46 ` Jonas Bernoulli
2023-04-08 8:36 ` Philip Kaludercic
2023-04-09 18:39 ` Jonas Bernoulli
2023-04-09 20:44 ` Lynn Winebarger
2023-04-09 21:55 ` Philip Kaludercic
2023-03-28 11:48 ` Eli Zaretskii
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=8a826e3a-d74e-fcb4-3cb2-4dbbc93cdf97@protonmail.com \
--to=okamsn@protonmail.com \
--cc=emacs-devel@gnu.org \
--cc=philipk@posteo.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).