neovim/packspec

Having Emacs plugins as a use case is pointless

AlexKurisu opened this issue · 3 comments

In my opinion, having Emacs plugins as a use case is pointless since Emacs already has a well-established format for that purpose and also has GNU ELPA, NonGNU ELPA and MELPA. Why would anyone make a switch?

Also, decentralized approach wouldn't work in Emacs anyways because its package-install relies on centralized package source.

In practice emacs won't change anything, but there is no technical reason why it is any different. Emacs packages are just source trees.

btw, where is it documented how emacs packages declare their dependencies? I found this, but it doesn't give any specifics: https://www.gnu.org/software/emacs/manual/html_node/elisp/Packaging-Basics.html

@justinmk In sources dependencies (and other stuff) are defined as shown in https://www.gnu.org/software/emacs/manual/html_node/elisp/Library-Headers.html. In actual distributed packages they are defined as shown in https://www.gnu.org/software/emacs/manual/html_node/elisp/Multi_002dfile-Packages.html with some well-known extensions, such as using :commit for build commit, :url for project url, :authors for authors, :keywords for keywords… You probably get the idea. Like

(define-package "company-auctex" "20200529.1835" "Company-mode auto-completion for AUCTeX"
  '((yasnippet "0.8.0")
    (company "0.8.0")
    (auctex "11.87"))
  :commit "9400a2ec7459dde8cbf1a5d50dfee4e300ed7e18" :authors
  '(("Christopher Monsanto <chris@monsan.to>, Alexey Romanov" . "alexey.v.romanov@gmail.com"))
  :maintainers
  '(("Christopher Monsanto <chris@monsan.to>, Alexey Romanov" . "alexey.v.romanov@gmail.com"))
  :maintainer
  '("Christopher Monsanto <chris@monsan.to>, Alexey Romanov" . "alexey.v.romanov@gmail.com")
  :url "https://github.com/alexeyr/company-auctex/")