unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#59941: use-package-defaults type not updated for added keywords :pin, :ensure etc
@ 2022-12-10 10:41 Mattias Engdegård
  2022-12-11 16:10 ` Mattias Engdegård
  0 siblings, 1 reply; 2+ messages in thread
From: Mattias Engdegård @ 2022-12-10 10:41 UTC (permalink / raw)
  To: 59941; +Cc: John Wiegley, Stefan Kangas

The type of `use-package-defaults` does not include the keywords :pin and :ensure, since these are added to `use-package-keywords` after the declaration of the former.

As a consequence these keywords cannot occur in `use-package-defaults` when using the interactive customisation interface, and since they are present in the default value, the `test-custom-opts` test fails with a type mismatch:

variable: use-package-defaults
   value: ((:config '(t) t) (:init nil t) (:catch t (lambda (name args) (not use-package-expand-minimally))) (:defer use-package-always-defer (lambda (name args) (and use-package-always-defer (not (plist-member args :defer)) (not (plist-member args :demand))))) (:demand use-package-always-demand (lambda (name args) (and use-package-always-demand (not (plist-member args :defer)) (not (plist-member args :demand))))) (:ensure (list use-package-always-ensure) (lambda (name args) (and use-package-always-ensure (not (plist-member args :load-path))))) (:pin use-package-always-pin use-package-always-pin))
    type: (repeat (list (choice :tag "Keyword" (const :disabled) (const :load-path) (const :requires) (const :defines) (const :functions) (const :preface) (const :if) (const :when) (const :unless) (const :no-require) (const :catch) (const :after) (const :custom) (const :custom-face) (const :bind) (const :bind*) (const :bind-keymap) (const :bind-keymap*) (const :interpreter) (const :mode) (const :magic) (const :magic-fallback) (const :hook) (const :commands) (const :autoload) (const :init) (const :defer) (const :demand) (const :load) (const :config)) (choice :tag "Default value" sexp function) (choice :tag "Enable if non-nil" sexp function)))

There are various ways to fix this. Easiest is probably to cease pretending that :pin and :ensure are somehow special and just include them in `use-package-keywords` from the start instead of adding them afterwards.

Alternatives include making the defcustom type less specific and allow any keyword, or modifying that type after adding keywords (a bit messy).






^ permalink raw reply	[flat|nested] 2+ messages in thread

* bug#59941: use-package-defaults type not updated for added keywords :pin, :ensure etc
  2022-12-10 10:41 bug#59941: use-package-defaults type not updated for added keywords :pin, :ensure etc Mattias Engdegård
@ 2022-12-11 16:10 ` Mattias Engdegård
  0 siblings, 0 replies; 2+ messages in thread
From: Mattias Engdegård @ 2022-12-11 16:10 UTC (permalink / raw)
  To: 59941-done; +Cc: John Wiegley, Stefan Kangas

A simple fix has been pushed to emacs-29 (4893a15631) -- closing.






^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2022-12-11 16:10 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-12-10 10:41 bug#59941: use-package-defaults type not updated for added keywords :pin, :ensure etc Mattias Engdegård
2022-12-11 16:10 ` Mattias Engdegård

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