Commit Graph

87 Commits

Author SHA1 Message Date
94ba098e43 Normalize package before checks in 'doom update'
This reduces the likelihood that straight will throw up invisible
popups, blocking the update process indefinitely.
2019-08-21 18:34:55 -04:00
b854a089eb Sort & optimize package list on 'doom purge' 2019-08-18 11:24:44 -04:00
5aa7415d87 Add -t/--timeout switch to 'doom update'
To get around timeout issues on slower connections or larger packages.
2019-08-15 01:34:28 -04:00
2cd9685758 Discard timed out future correctly on 'doom update'
And list packages immediately after message (no newlines).
2019-08-09 22:23:38 -04:00
0a44881df1 Increase number of sub-processes for 'doom update' 2019-08-08 23:00:54 -04:00
c266680c11 Fix #1653: uncaught error when async process times out 2019-08-08 22:59:57 -04:00
115a436273 Fix 'doom update' for chemacs users
Or users who have Doom in a non-standard location (i.e. outside
~/.emacs.d).
2019-08-08 11:48:13 -04:00
ef60762a92 Fix wrong-type-arg: listp error on 'doom update'
Caused when async fails to create a child process for a certain group of
packages (needs to be investigated more).
2019-08-07 21:07:43 -04:00
4a92d12267 Fix void-variable package error on 'doom update' 2019-08-07 17:22:46 -04:00
54edffc4bb cli/packages: emit a little more debug info
To mark the start of purging/regrafting procedures.
2019-07-29 21:29:43 +02:00
435436e390 Fix 'doom purge' failing to delete build directory 2019-07-29 21:18:49 +02:00
7559949e09 Rewrite 'doom purge'; add repo regrafting
'doom purge -r' now re-grafts shallow cloned packages (compacting them
as much as possible).
2019-07-29 21:09:23 +02:00
87fd81281f Rewrite 'doom update'
- Is now much more fault tolerant (produces better errors)
- Now handles async.el process errors as well
- Standardizes data structure of thread responses
2019-07-29 21:01:46 +02:00
da954aa361 Improve 'doom build' reporting & checks
- Fix 'doom build' not byte-compiling stale dependencies of rebuilt
  packages.
- Fix 'doom build' logging the wrong number of packages that were
  rebuilt.
2019-07-29 20:59:52 +02:00
ba07fe575e Add {--no-{elpa,builds},-r,--repos} flags to 'doom purge' 2019-07-29 03:47:12 +02:00
c2af0723d7 Show progress percentage during 'doom update' 2019-07-28 16:10:54 +02:00
efb4584797 Alias 'doom build' to 'doom rebuild' 2019-07-28 14:02:51 +02:00
4dc42de9e3 def-command! -> defcli!
And def-command-group! -> defcligroup!, to match our new convention for
naming definer macros.
2019-07-28 02:32:25 +02:00
8d388ebba9 Improve 'doom rebuild' checks & formatting of logs
Corrects stale bytecode a little more aggressively.
2019-07-27 17:22:47 +02:00
a10693886e Fix double-rebuilding & lingering stale elc files
This update addresses two evasive issues:

1. Packages updated with `doom update` would not rebuild correctly,
   requiring a `doom refresh` afterwards,
2. Packages would fail to rebuild even if their byte-compiled files were
   stale. The result: "*.el is newer than *.elc" warnings at startup.
2019-07-26 20:17:29 +02:00
f8c4d075a5 Fix doom purge reporting failure despite success 2019-07-26 20:17:29 +02:00
8834ba17e3 Only return non-nil if doom-packages-purge worked 2019-07-26 13:59:14 +02:00
321b797046 cli/packages: fix infinite waiting on pkg update
Caused lecause straight is prompting for input in a headless
session *and* from a headless async child instance of Emacs. It waits
forever for input for a question we could never see or respond to.

How sad.
2019-07-26 11:54:37 +02:00
44c694da47 Make bin/doom options consistent & improve errors/docs 2019-07-26 03:12:07 +02:00
829ad8c8b7 cli/packages: refactor doom-packages-purge
Sets it up for a later update where purging repos will no longer be the
default behavior.
2019-07-26 03:12:06 +02:00
bdcb156b91 Manually finalize straight transactions
Straight expects to be used interactively, which don't do (yet). Its
transactional system depends on idle timers, which don't run in a
noninteractive session, so we have to nudge it ourselves.
2019-07-26 03:12:06 +02:00
2aa7dbfb27 cli/packages: refactor doom-packages-update
- Now handles errors from threads gracefully, rather than failing
  silently.
- Exploits straights modification system to trigger rebuilds
  later (instead of force-rebuilding after each update).
2019-07-26 03:12:06 +02:00
a301330603 Fix doom update #1584
It would no-op if you responded "y" to the 'update them?' prompt, and
proceed if you responded "n".

Doom must be in its rebellious phase.

Also relevant: #1585
2019-07-22 23:22:38 +02:00
d980920c97 cli/packages: fix rebuild ignoring argument 2019-07-22 02:37:48 +02:00
b90dede1ab 💥 Replace package.el/quelpa with straight #374
There are a few kinks to iron out, but for the most part it's done. Doom
Emacs, powered by straight. Goodbye gnutls and elpa/quelpa issues.

This update doesn't come with rollback or lockfile support yet, but I
will eventually include one with Doom, and packages will be (by default,
anyway) updated in sync with Doom.

Relevant threads: #1577 #1566 #1473
2019-07-22 02:30:40 +02:00
527079094d Expand docs for doom {install,update,autoremove} 2019-07-12 14:16:53 +02:00
6be401f1a7 Refactor Doom core & reload autoloads remotely
- Move subr-x/cl-lib loading to core-lib
- Revise docstrings for and rename various CLI functions to be more
  descriptive and up-to-date
- After regenerating autoloads file, bin/doom will try to reload
  autoloads files remotely, through the server/daemon, if possible. This
  is highly experimental and could break
2019-06-16 23:01:17 +02:00
6641e26283 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.
2019-06-11 08:01:42 +02:00
31a0ad5b95 Move doom--condition-case! to core/cli/packages
The only place it is being used
2019-01-10 15:44:42 -05:00
377dbae3fc Install/compile packages in order of declaration
This should fix an issue where a package A, which uses macros from a
package B, is installed before package B, causing void-function errors.

The currently known and affected packages are neotree, parinfer, and
evil-collection.
2018-09-25 11:00:30 -04:00
4d10c28c37 Change doom-ansi-apply, print! & format!
Color let-functions no longer take format string arguments. e.g.

  (format! (red "Hello %s" "world"))

Becomes

  (format! (red "Hello %s") "world")

The same goes for print!. Also, doom-ansi-apply now takes two arguments
instead of three.

Also merges doom-message-{fg,bg,fx} into doom-ansi-alist, and reduces
backtrace noise when errors originate from inside these macros.
2018-09-09 09:58:20 -04:00
77d2d84e14 Refactor core-cli
Moved to separate files for better organization.
2018-09-09 09:58:20 -04:00