Commit Graph

50 Commits

Author SHA1 Message Date
Henrik Lissner
45240699e0
Remove doom-elpa-dir variable
And just use package-user-dir. No need for two variable when one will
do.
2019-09-26 14:26:47 -04:00
Henrik Lissner
f03eb67314
Fix 'doom rebuild' generating broken autoloads
Causes errors about being unable to find general.el
2019-09-20 01:23:58 -04:00
Henrik Lissner
18329fdeaf
Add switch docs in update & purge commands 2019-09-12 17:25:54 -04:00
Henrik Lissner
84837fa0d6
Add --threads option to 'doom update' #1736 2019-09-12 17:25:54 -04:00
Henrik Lissner
4fda7cd287
Don't auto-purge ELPA packages on 'doom refresh'
...or 'doom purge', without the -e or --elpa switches (or --all).
2019-09-09 23:04:07 -04:00
Henrik Lissner
005647fd64
Fix wrong-type-arg package-desc error on 'doom refresh' 2019-09-03 14:07:09 -04:00
Henrik Lissner
81ee250c09
Minor refactor & revision across the board 2019-09-03 00:59:46 -04:00
Henrik Lissner
4ce86b06d4
Use more ambiguous reset target when normalizing repos
Possibly addresses "ambiguous target" errors during 'doom update'.

Might address #1738 and #1721
2019-09-03 00:59:46 -04:00
Henrik Lissner
49fb34d1c1
Fix 'doom purge' trying to purge site packages
It should only manage packages installed in
doom-elpa-dir (~/.emacs.d/.local/elpa, by default).
2019-09-02 13:12:57 -04:00
Henrik Lissner
8ac1e1a781
Refactor doom init process
- Refactors doom-initialize
- Moves doom-initialize-modules call to init.el, to more easily isolate
  it during unit testing.
2019-08-27 00:05:12 -04:00
Henrik Lissner
025a4c3d26
Properly reset packages on 'doom update'
Prevents some cases of infinite hanging while updating certain packages.
2019-08-22 16:13:23 -04:00
Henrik Lissner
e502031412
Fix 'doom purge' not regrafting all repos on first use 2019-08-22 16:12:22 -04:00
Henrik Lissner
eb567f51c8
Handle git submodules from 'doom update' 2019-08-22 13:02:24 -04:00
Henrik Lissner
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
Henrik Lissner
b854a089eb
Sort & optimize package list on 'doom purge' 2019-08-18 11:24:44 -04:00
Henrik Lissner
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
Henrik Lissner
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
Henrik Lissner
0a44881df1
Increase number of sub-processes for 'doom update' 2019-08-08 23:00:54 -04:00
Henrik Lissner
c266680c11
Fix #1653: uncaught error when async process times out 2019-08-08 22:59:57 -04:00
Henrik Lissner
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
Henrik Lissner
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
Henrik Lissner
4a92d12267
Fix void-variable package error on 'doom update' 2019-08-07 17:22:46 -04:00
Henrik Lissner
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
Henrik Lissner
435436e390
Fix 'doom purge' failing to delete build directory 2019-07-29 21:18:49 +02:00
Henrik Lissner
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
Henrik Lissner
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
Henrik Lissner
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
Henrik Lissner
ba07fe575e
Add {--no-{elpa,builds},-r,--repos} flags to 'doom purge' 2019-07-29 03:47:12 +02:00
Henrik Lissner
c2af0723d7
Show progress percentage during 'doom update' 2019-07-28 16:10:54 +02:00
Henrik Lissner
efb4584797
Alias 'doom build' to 'doom rebuild' 2019-07-28 14:02:51 +02:00
Henrik Lissner
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
Henrik Lissner
8d388ebba9
Improve 'doom rebuild' checks & formatting of logs
Corrects stale bytecode a little more aggressively.
2019-07-27 17:22:47 +02:00
Henrik Lissner
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
Henrik Lissner
f8c4d075a5
Fix doom purge reporting failure despite success 2019-07-26 20:17:29 +02:00
Henrik Lissner
8834ba17e3
Only return non-nil if doom-packages-purge worked 2019-07-26 13:59:14 +02:00
Henrik Lissner
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
Henrik Lissner
44c694da47
Make bin/doom options consistent & improve errors/docs 2019-07-26 03:12:07 +02:00
Henrik Lissner
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
Henrik Lissner
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
Henrik Lissner
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
Henrik Lissner
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
Henrik Lissner
d980920c97
cli/packages: fix rebuild ignoring argument 2019-07-22 02:37:48 +02:00
Henrik Lissner
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
Henrik Lissner
527079094d
Expand docs for doom {install,update,autoremove} 2019-07-12 14:16:53 +02:00
Henrik Lissner
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
Henrik Lissner
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
Henrik Lissner
31a0ad5b95
Move doom--condition-case! to core/cli/packages
The only place it is being used
2019-01-10 15:44:42 -05:00
Henrik Lissner
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
Henrik Lissner
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
Henrik Lissner
77d2d84e14
Refactor core-cli
Moved to separate files for better organization.
2018-09-09 09:58:20 -04:00