neovim / packspec

ALPHA package dependencies spec
http://packspec.org/
Apache License 2.0
219 stars 2 forks source link

Having Emacs plugins as a use case is pointless #45

Open AlexKurisu opened 11 months ago

AlexKurisu commented 11 months ago

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?

AlexKurisu commented 11 months ago

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

justinmk commented 11 months ago

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

AlexKurisu commented 11 months ago

@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/")