fix(cli): rewrite 'doom sync'; deprecate 'doom build'
This changes 'doom sync' to be smarter about responding to changed package recipes/pins, changes in Emacs version, or instances where the user has copied a config to a new system. In all these cases, the user would formerly have to know about a specific combination of 'doom sync -u' and 'doom build' to ensure Doom is in a good state. With this change, 'doom sync' handles all these cases. Also, 'doom build' is now deprecated (and 'doom sync' now has a --rebuild option to mimic its old behavior). Also also, sometimes, a package may silently fail when cloned (which used to result in an empty repo). Now, if this is detected, cloning will be re-attempted up to 3 times before aborting with much more visible error. Note: these are stopgap solutions, until v3 is finished.
This commit is contained in:
parent
1fa8d3a4b9
commit
cff091982e
6 changed files with 195 additions and 212 deletions
|
@ -402,14 +402,13 @@ This command is never needed for changes to =$DOOMDIR/config.el=.
|
|||
|
||||
** Copy or sync my config to another system?
|
||||
*Short answer:* it is safe to sync =$DOOMDIR= across systems, but not
|
||||
=$EMACSDIR=. Once moved, use ~$ doom sync && doom build~ to ensure everything is
|
||||
set up correctly.
|
||||
=$EMACSDIR=. Once moved, use ~$ doom sync~ to ensure everything is set up
|
||||
correctly.
|
||||
|
||||
*Long answer:* packages can contain baked-in absolute paths and non-portable
|
||||
byte-code. It is never a good idea to mirror it across multiple systems, unless
|
||||
they are all the same (same OS, same version of Emacs, same paths). Most issues
|
||||
should be solved by running ~$ doom sync && doom build~ on the other end, once
|
||||
moved.
|
||||
should be solved by running ~$ doom sync~ on the other end, once moved.
|
||||
|
||||
** Start over, in case something went terribly wrong?
|
||||
Delete =$EMACSDIR/.local/straight= and run ~$ doom sync~.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue