Refactor package management API

Sets out to solve a number of issues with the package management
process. Namely:

- To-be-removed packages that are simply being removed are no longer
  incorrectly labeled "quelpa->elpa", but "removed" instead.
- A backend (elpa vs quelpa) column was added to the package listing
  confirmation when running `doom update`.
- Doom now correctly recognizes that packages installed with a psuedonym
  are installed, and will not endlessly attempt to uninstall and
  reinstall them on every `doom refresh`.
- Packages declared with :built-in will no longer lose their built-in
  marking if said package is not actually present in Emacs' site load
  paths. i.e. if you say it's built in, Doom won't question it.
- package!'s :ignore property is now treated as a form whose evaluated
  result will be used as its value.
This commit is contained in:
Henrik Lissner 2019-06-11 08:01:42 +02:00
parent b3c27ebe60
commit 6641e26283
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395
4 changed files with 272 additions and 162 deletions

View file

@ -370,7 +370,7 @@
(load packages-file 'noerror 'nomessage)
(mapcar #'car doom-packages))
unless (or (doom-package-prop name :disable)
(doom-package-prop name :ignore t)
(eval (doom-package-prop name :ignore))
(package-built-in-p name)
(package-installed-p name))
do (error! "%s is not installed" name))