A heads up to Doom users:
doom upgrade will break itself when updating Doom past b9933e6. The only way to avoid this is to update manually (with
git pull && doom sync -u), but most users will likely have already run
doom upgrade before they read this, so:
You will first see this error:
Click to reveal error message
> Preparing to upgrade Doom Emacs and its packages... - A new version of Doom Emacs is available! Old revision: a9866e37e4 (3 hours ago) New revision: 615848e3a7 (52 minutes ago) Link to diff: https://github.com/doomemacs/doomemacs/compare/a9866e37e45b43785116ef474c8cd6aa9b5185dd...615848e3a71ca9ecd4e50cd7abc49eedc2fbea23 View the comparison diff in your browser? (y or n) n Proceed with upgrade? (y or n) y > Upgrading Doom Emacs... > Cleaning .elc files - No elc files to clean x There was an unexpected runtime error Message: File is missing Details: ("Opening input file" "No such file or directory" "/home/hlissner/emacs.d/core/packages.el") Backtrace: (insert-file-contents "/home/hlissner/emacs.d/core/packages.el") (progn (insert-file-contents (doom-path doom-core-dir "packages.el")) (if (re-search-forward "(package! straight" nil t) (pr... (unwind-protect (progn (insert-file-contents (doom-path doom-core-dir "packages.el")) (if (re-search-forward "(package! stra... (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (insert-file-contents (doom-path doom-core-dir "package... (let ((temp-buffer (generate-new-buffer " *temp*" t))) (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn ... (doom-upgrade--get-straight-recipe) (equal straight-recipe (doom-upgrade--get-straight-recipe)) (if (equal straight-recipe (doom-upgrade--get-straight-recipe)) nil (doom-print (doom-print--format (doom-print--class 'item... (let ((straight-recipe (doom-upgrade--get-straight-recipe))) (or (and (= 0 (car (doom-call-process "git" "reset" "--hard" ta... (let ((doom-print-indent (+ (if t doom-print-indent-increment 0) doom-print-indent))) (doom-compile-clean) (let ((straight-r... (if (not (or auto-accept-p (y-or-n-p "Proceed with upgrade?"))) (ignore (doom-print (doom-print--format (doom-print--class '... (cond ((and (null this-rev) (null new-rev)) (error "Failed to get revisions for %s" target-remote)) ((equal this-rev new-rev... ! Wrote extended backtrace to ~/emacs.d/.local/logs/cli.doom.220731015104.962288.error
And from that point on
doom upgrade will no longer work; always throwing up
Failed to fetch from upstream errors and failing to upgrade. A
git pull alone may not be enough to recover from this.
To spare you the pain of nuking your Doom install and reinstalling everything, an easy workaround is to first reset to a safe commit (like
a9866e3) before upgrading manually:
$ cd ~/.emacs.d $ git reset --hard a9866e37e45b43785116ef474c8cd6aa9b5185dd $ git pull origin master $ doom sync -u
Hope that helps!
Another heads up: the next few weeks will be a little unstable while the rewritten CLI trickles in. In particular, there is one more breaking change coming up sometime in August that will require a reinstall of all your packages (thanks to a rewritten package manager) and an update to your
doom!block (thanks to Doom’s modules being moved out to its own repo, plus a new syntax for pulling in remote module libraries from your
I’ll post an announcement like this one when it happens.