doomemacs/lisp/cli
Henrik Lissner 1fa8d3a4b9
fix(cli): retry on failure to clone packages (or abort)
Something often reported are file-missing errors when a package that
should be present isn't. This can easily happen if, say, during a 'doom
sync' or 'doom upgrade' a package fails to clone correctly and the user
misses the errors, then tries to carry on as normal. What's worse is
that Straight leaves behind an empty directory, which it treats as a
sign that the package has been cloned correctly, so it doesn't raise any
fuss over them.

With this change, 'doom sync' (and 'doom upgrade') will now try again,
if the clone process fails the first time (up to 3 times) before
aborting the whole process altogether, which should be loud enough for
users not to miss. Note that these failures at 99.99% because of
network (or upstream downtime) issues.

For now, this does leave Doom in an incomplete state (until you try
again when the connection issue is resolved), but a rollback step will
be added in v3 to prevent this, as well as better error messages (as
well as @doomelpa mirror for packages on less reliable hosts, like
codeberg, savannah, etc).
2024-03-24 18:03:12 -04:00
..
make refactor!: restructure Doom core 2022-07-30 22:41:13 +02:00
ci.el nit: revise comments, reformat config sections 2022-09-16 01:14:21 +02:00
doctor.el docs: revise and fix nerd-icons doctor check 2023-09-16 15:32:54 +02:00
env.el fix(cli): ensure $EMACSDIR/lisp/cli is in $DOOMPATH 2024-02-07 17:24:24 -05:00
help.el nit: minor comment revision and refactors 2022-09-16 17:01:57 +02:00
info.el refactor!: restructure Doom core 2022-07-30 22:41:13 +02:00
install.el refactor!: replace all-the-icons with nerd-icons 2023-09-14 01:03:55 +02:00
make.el refactor!(cli): rename cli definers for consistency 2022-09-12 11:45:59 +02:00
meta.el tweak(cli): use fancier string-dist suggestion alg 2024-02-16 02:06:24 -05:00
packages.el fix(cli): retry on failure to clone packages (or abort) 2024-03-24 18:03:12 -04:00
profiles.el feat(cli): introduce DOOMPROFILELOAD{FILE,PATH} envvars 2022-09-18 00:28:13 +02:00
run.el fix(cli): link $XDG_*_HOME to fake $HOME for doom run 2022-09-18 13:55:47 +02:00
sync.el tweak(cli): doom sync: don't purge straight builds by default 2022-10-29 01:57:43 +02:00
test.el refactor!(cli): rename cli definers for consistency 2022-09-12 11:45:59 +02:00
upgrade.el refactor!(cli): remove compile and clean commands 2024-03-24 18:03:12 -04:00