rranelli / auto-package-update.el

Automatically update Emacs packages.
151 stars 26 forks source link

Latest APU always fails accessing quelpa-cache #44

Open madscientist opened 4 years ago

madscientist commented 4 years ago

For the last few weeks or so (I don't update all that often) whenever I restart Emacs and allow packages to be updated it fails with this error in the *Warnings* buffer and does not complete startup:

Error (use-package): auto-package-update/:config: Symbol’s value as variable is void: quelpa-cache

Using debug-init shows this backtrace:

Debugger entered--Lisp error: (void-variable quelpa-cache)
  apu--filter-quelpa-packages((cc-mode dracula-theme flycheck ivy lsp-mode magit git-commit markdown-mode ntcmd projectile quelpa transient))
  auto-package-update-now()
  auto-package-update-maybe()
  (progn (message "Auto-package updating ...") (setq auto-package-update-delete-old-versions t auto-package-update-interval 2 auto-package-update-prompt-before-update t) (auto-package-update-maybe) t)
  (condition-case err (progn (message "Auto-package updating ...") (setq auto-package-update-delete-old-versions t auto-package-update-interval 2 auto-package-update-prompt-before-update t) 
(auto-package-update-maybe) t) ((debug error) (funcall use-package--warning0 :config err)))
  (prog1 (condition-case err (progn (message "Auto-package updating ...") (setq auto-package-update-delete-old-versions t auto-package-update-interval 2 auto-package-update-prompt-before-update t) (auto-package-update-maybe) t) ((debug error) (funcall use-package--warning0 :config err))) (let ((elapsed (float-time (time-subtract (current-time) now)))) (if (> elapsed 0.1) (message "%s...done (%.3fs)" "Configuring package auto-package-update" elapsed) (message "%s...done" "Configuring package auto-package-update"))))
  (let ((now (current-time))) (message "%s..." "Configuring package auto-package-update") (prog1 
(condition-case err (progn (message "Auto-package updating ...") (setq auto-package-update-delete-old-versions t auto-package-update-interval 2 auto-package-update-prompt-before-update t) (auto-package-update-maybe) t) ((debug error) (funcall use-package--warning0 :config err))) (let ((elapsed (float-time (time-subtract (current-time) now)))) (if (> elapsed 0.1) (message "%s...done (%.3fs)" "Configuring package auto-package-update" elapsed) (message "%s...done" "Configuring package auto-package-update")))))
  (if (not (require (quote auto-package-update) nil t)) (display-warning (quote use-package) (format "Cannot load %s" (quote auto-package-update)) :error) (let ((now (current-time))) (message "%s..." "Configuring package auto-package-update") (prog1 (condition-case err (progn (message "Auto-package updating ...") (setq auto-package-update-delete-old-versions t auto-package-update-interval 2 auto-package-update-prompt-before-update t) (auto-package-update-maybe) t) ((debug error) (funcall use-package--warning0 :config err))) (let ((elapsed (float-time (time-subtract ... now)))) (if (> elapsed 0.1) (message "%s...done (%.3fs)" "Configuring package auto-package-update" elapsed) (message "%s...done" "Configuring package auto-package-update"))))))
  (prog1 (if (not (require (quote auto-package-update) nil t)) (display-warning (quote use-package) (format "Cannot load %s" (quote auto-package-update)) :error) (let ((now (current-time))) (message "%s..." "Configuring package auto-package-update") (prog1 (condition-case err (progn (message "Auto-package updating ...") (setq auto-package-update-delete-old-versions t auto-package-update-interval 2 auto-package-update-prompt-before-update t) (auto-package-update-maybe) t) ((debug error) (funcall use-package--warning0 :config err))) (let ((elapsed (float-time ...))) (if (> elapsed 0.1) (message "%s...done (%.3fs)" "Configuring package auto-package-update" elapsed) (message "%s...done" "Configuring package auto-package-update")))))) (let ((elapsed (float-time (time-subtract (current-time) now)))) (if (> elapsed 0.1) (message "%s...done (%.3fs)" "Loading package auto-package-update" elapsed) (message "%s...done" "Loading package auto-package-update"))))
  (let ((now (current-time))) (message "%s..." "Loading package auto-package-update") (prog1 (if (not (require (quote auto-package-update) nil t)) (display-warning (quote use-package) (format "Cannot load %s" (quote auto-package-update)) :error) (let ((now (current-time))) (message "%s..." "Configuring package auto-package-update") (prog1 (condition-case err (progn (message "Auto-package updating ...") (setq auto-package-update-delete-old-versions t auto-package-update-interval 2 auto-package-update-prompt-before-update t) (auto-package-update-maybe) t) ((debug error) (funcall use-package--warning0 :config err))) (let ((elapsed ...)) (if (> elapsed 0.1) (message "%s...done (%.3fs)" "Configuring package auto-package-update" elapsed) (message "%s...done" "Configuring package auto-package-update")))))) (let ((elapsed (float-time (time-subtract (current-time) now)))) (if (> elapsed 0.1) (message "%s...done (%.3fs)" "Loading package auto-package-update" elapsed) (message "%s...done" "Loading package auto-package-update")))))
  (condition-case err (let ((now (current-time))) (message "%s..." "Loading package auto-package-update") (prog1 (if (not (require (quote auto-package-update) nil t)) (display-warning (quote use-package) (format "Cannot load %s" (quote auto-package-update)) :error) (let ((now (current-time))) (message "%s..." "Configuring package auto-package-update") (prog1 (condition-case err (progn ... ... ... t) (... ...)) (let (...) (if ... ... ...))))) (let ((elapsed (float-time (time-subtract ... now)))) (if (> elapsed 0.1) (message "%s...done (%.3fs)" "Loading package auto-package-update" elapsed) (message "%s...done" "Loading package auto-package-update"))))) ((debug error) (funcall use-package--warning0 :catch err)))
  eval-buffer(#<buffer  *load*> nil "/home/psmith/.emacs.d/init.el" nil t)  ; Reading at buffer position 896
  load-with-code-conversion("/home/psmith/.emacs.d/init.el" "/home/psmith/.emacs.d/init.el" t t)
  load("/home/psmith/.emacs.d/init" t t)
  #f(compiled-function () #<bytecode 0x25e919>)()
  command-line()
  normal-top-level()

It appears to have something to do with the commit added for issue #42.

In my init.el I have this:

;;;;; USE-PACKAGE ;;;;;

;; Bootstrap use-package
(unless (package-installed-p 'use-package)
  (message "Refreshing package contents")
  (package-refresh-contents)
  (package-install 'use-package))

(eval-when-compile
  (require 'use-package))

;; Debugging
(setq use-package-verbose t)

;;;;; AUTO-PACKAGE-UPDATE ;;;;;

(use-package auto-package-update
  :ensure t
  :config
  (message "Auto-package updating ...")
  (setq auto-package-update-delete-old-versions t
        auto-package-update-interval 2
        ;auto-package-update-hide-results t
        auto-package-update-prompt-before-update t)
  ;; Comment this if you don't want packages to be automatically updated
  (auto-package-update-maybe))

;;;;; QUELPA: en-package-ize non-packaged ELisp projects ;;;;;

(use-package quelpa-use-package
  :ensure t
  :init (setq quelpa-update-melpa-p nil)
  :config (quelpa-use-package-activate-advice))

(then a bunch of other stuff)

madscientist commented 4 years ago

Workaround is to move the quelpa use-package to come before the APU use-package, but if that's intended to be a requirement it should probably be noted somewhere... better would be to not need it :).

tshu-w commented 3 years ago

I meet the same issue, maybe we should (quelpa-read-cache) before access quelpa-cache