progfolio / elpaca

An elisp package manager
GNU General Public License v3.0
652 stars 33 forks source link

[Support]: Using elpaca programmatically #149

Closed ddoherty03 closed 1 year ago

ddoherty03 commented 1 year ago

Elpaca Version

Elpaca b40afe0 HEAD -> master, origin/master, origin/HEAD installer: 0.4 emacs-version: GNU Emacs 29.0.60 (build 3, x86_64-pc-linux-gnu, GTK+ Version 3.24.33, cairo version 1.16.0) of 2023-03-29 git --version: git version 2.34.1

Operating System

Ubuntu 22.04 jammy Kernel: x86_64 Linux 5.19.0-41-generic

Description

I am having trouble using the (elpaca) function programatically. Specifically, I want to install a whole list of theme packages with a function in my init. Here is what I have:

(setq ded:themes-to-install
      '(
        acme-theme
        adwaita-dark-theme
        afternoon-theme
        ample-zen-theme
        anti-zenburn-theme
        atom-dark-theme
        atom-one-dark-theme))

(defun ded:install-theme-list (theme-syms)
  "Install the themes whose symbols are in THEME-SYMS"
  (mapcar (lambda (it)
            (elpaca it)
            (message (symbol-name it)))
          theme-syms))
(ded:install-theme-list ded:themes-to-install)

I am not sure why, but elpaca doen't install the packages. I know I must be missing something obvious, but I can't come up with what it is.

Consider this a support request, and thanks for elpaca!

progfolio commented 1 year ago

Hi. Thanks for taking the time to fill out a report.

I am having trouble using the (elpaca) function programatically.

elpaca is a macro. Macros generally do not evaluate their arguments. However, elpaca does have a special case where it will evaluate the first argument if it is backquoted. The following test case shows how to map over a list of packages, queuing each one with the elpaca macro. You probably want mapc instead of mapcar if you're not using the resultant list, too.

Test Case ```emacs-lisp (elpaca-test :dir "elpaca.test" :init ;; Queue each package (mapc (lambda (pkg) (elpaca `,pkg)))) '(acme-theme afternoon-theme)) ;; Everything below this line is just for testing purposes. Not needed for init. (elpaca-wait) (let ((default-directory elpaca-repos-directory)) (message "%s" (elpaca-process-output "ls" "-lah")))) ```
Host Env
elpaca4446ea2 HEAD -> master
gitgit version 2.41.0
emacsGNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.38, cairo version 1.17.8) of 2023-06-21
isntaller0.5
Output ```emacs-lisp INFO Scraping files for loaddefs... INFO Scraping files for loaddefs...done GEN ../elpaca-autoloads.el Cloning into '/tmp/elpaca.test/elpaca/repos/elpaca'... Your branch is up to date with 'origin/master'. Checking /tmp/elpaca.test/elpaca/repos/elpaca... Compiling /tmp/elpaca.test/elpaca/repos/elpaca/elpaca-info.el... Compiling /tmp/elpaca.test/elpaca/repos/elpaca/elpaca-log.el... Compiling /tmp/elpaca.test/elpaca/repos/elpaca/elpaca-manager.el... Compiling /tmp/elpaca.test/elpaca/repos/elpaca/elpaca-menu-gnu-elpa-mirror.el... Compiling /tmp/elpaca.test/elpaca/repos/elpaca/elpaca-menu-melpa.el... Compiling /tmp/elpaca.test/elpaca/repos/elpaca/elpaca-menu-non-gnu-elpa.el... Compiling /tmp/elpaca.test/elpaca/repos/elpaca/elpaca-menu-org.el... Compiling /tmp/elpaca.test/elpaca/repos/elpaca/elpaca-process.el... Compiling /tmp/elpaca.test/elpaca/repos/elpaca/elpaca-test.el... Compiling /tmp/elpaca.test/elpaca/repos/elpaca/elpaca-ui.el... Compiling /tmp/elpaca.test/elpaca/repos/elpaca/elpaca.el... Checking /tmp/elpaca.test/elpaca/repos/elpaca/doc... Compiling /tmp/elpaca.test/elpaca/repos/elpaca/doc/early-init.el... Compiling /tmp/elpaca.test/elpaca/repos/elpaca/doc/init.el... Checking /tmp/elpaca.test/elpaca/repos/elpaca/extensions... Compiling /tmp/elpaca.test/elpaca/repos/elpaca/extensions/elpaca-use-package.el... Checking /tmp/elpaca.test/elpaca/repos/elpaca/images... Checking /tmp/elpaca.test/elpaca/repos/elpaca/test... Compiling /tmp/elpaca.test/elpaca/repos/elpaca/test/elpaca-test.el... Done (Total of 12 files compiled, 3 skipped in 4 directories) Downloading MELPA recipes... Downloading MELPA recipes...100% Downloading GNU ELPA recipes... Downloading GNU ELPA recipes...100% Downloading NonGNU ELPA recipes... Downloading NonGNU ELPA recipes...100% total 0 drwxr-xr-x 5 n n 100 Jun 27 11:21 . drwxr-xr-x 5 n n 100 Jun 27 11:21 .. drwxr-xr-x 4 n n 140 Jun 27 11:21 acme-emacs-theme drwxr-xr-x 8 n n 720 Jun 27 11:20 elpaca drwxr-xr-x 3 n n 140 Jun 27 11:21 emacs-afternoon-theme Test Env Elpaca a216ca8 HEAD -> master, origin/master, origin/HEAD installer: 0.5 emacs-version: GNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.38, cairo version 1.17.8) of 2023-06-21 git --version: git version 2.41.0 ```

Does that help?

ddoherty03 commented 1 year ago

@progfolio, yes that helped enormously. You da man. Many thanks.

ddoherty03 commented 1 year ago

Hey, @progfolio, before I leave this topic, would you mind seeing if you can see what's wrong with my code to install all the theme packages available. I know it's a little extravagant, but I kind of like to try out different themes just to avoid boredom. Anyway, here's my approach:

Write a function to extract all the packages that end in -theme of -themes:

  (require 'dash)

  (defun ded:pack-name (recipe)
    "Extract a theme package name from an elpaca RECIPE"
    (plist-get (plist-get (cdr recipe) :recipe) :package))

  (setq ded:bad-themes '(abyss-theme))

  (defun ded:all-theme-syms ()
    "Return a list of all themes available through elpaca"
    (let* ((packs (elpaca-menu-melpa 'index))
           (theme-packs (--filter (string-match "-themes?$" (ded:pack-name it)) packs))
           (theme-names (--map (ded:pack-name it) theme-packs))
           (theme-syms  (--map (make-symbol it) theme-names)))
      (-difference theme-syms ded:bad-themes)))

This seems to work, also allowing me to filter out themes to ignore (ded:bad-themes).

Then, based on your prior answer, I write a function to install a list of themes:

  (defun ded:install-theme-list (theme-syms)
    "Install the themes whose symbols are in THEME-SYMS"
    (mapc (lambda (it)
            (elpaca `,it)
            (message (symbol-name it))
            (add-to-list 'custom-theme-load-path
                         (expand-file-name (symbol-name `,it)
                                           elpaca-builds-directory)))
          theme-syms))

This works with an explicit list of themes:

(setq ded:themes-to-install '(atom-theme zenburn-theme))
(ded:install-theme-list ded:themes-to-install)

But it chokes when I try to install all themes with the above function:

  (ded:install-theme-list (ded:all-theme-syms))

I get an error like this:

Debugger entered--Lisp error: (error "Unable to determine recipe URL")
  signal(error ("Unable to determine recipe URL"))
  error("Unable to determine recipe URL")
  elpaca--repo-uri((:protocol https :inherit t :depth 1 :package "abyss-theme"))
  elpaca--clone((elpaca< abyss-theme "abyss-theme" abyss-theme (queued) nil "/home/ded/.emacs.d/elpaca/builds/abyss-theme" nil nil (elpaca--configure-remotes elpaca--checkout-ref elpaca--run-pre-build-commands elpaca--clone-dependencies elpaca--link-build-files elpaca--generate-autoloads-async elpaca--byte-compile elpaca--compile-info elpaca--install-info elpaca--add-info-path elpaca--run-post-build-commands elpaca--activate-package) (:protocol https :inherit t :depth 1 :package "abyss-theme") nil nil nil nil 5 (25756 4374 245126 660000) nil nil ((failed (25756 4374 132617 850000) "Unable to determine repo dir: (error \"Cannot deter..." 0)) nil))
  elpaca--continue-build((elpaca< abyss-theme "abyss-theme" abyss-theme (queued) nil "/home/ded/.emacs.d/elpaca/builds/abyss-theme" nil nil (elpaca--configure-remotes elpaca--checkout-ref elpaca--run-pre-build-commands elpaca--clone-dependencies elpaca--link-build-files elpaca--generate-autoloads-async elpaca--byte-compile elpaca--compile-info elpaca--install-info elpaca--add-info-path elpaca--run-post-build-commands elpaca--activate-package) (:protocol https :inherit t :depth 1 :package "abyss-theme") nil nil nil nil 5 (25756 4374 245126 660000) nil nil ((failed (25756 4374 132617 850000) "Unable to determine repo dir: (error \"Cannot deter..." 0)) nil))
  elpaca--process((elpaca< abyss-theme "abyss-theme" abyss-theme (queued) nil "/home/ded/.emacs.d/elpaca/builds/abyss-theme" nil nil (elpaca--configure-remotes elpaca--checkout-ref elpaca--run-pre-build-commands elpaca--clone-dependencies elpaca--link-build-files elpaca--generate-autoloads-async elpaca--byte-compile elpaca--compile-info elpaca--install-info elpaca--add-info-path elpaca--run-post-build-commands elpaca--activate-package) (:protocol https :inherit t :depth 1 :package "abyss-theme") nil nil nil nil 5 (25756 4374 245126 660000) nil nil ((failed (25756 4374 132617 850000) "Unable to determine repo dir: (error \"Cannot deter..." 0)) nil))
  elpaca--process-queue((elpaca-q< nil 5 0 incomplete (25756 1418 874353 819000) nil nil ((abyss-theme elpaca< abyss-theme "abyss-theme" abyss-theme (queued) nil "/home/ded/.emacs.d/elpaca/builds/abyss-theme" nil nil (elpaca--configure-remotes elpaca--checkout-ref elpaca--run-pre-build-commands elpaca--clone-dependencies elpaca--link-build-files elpaca--generate-autoloads-async elpaca--byte-compile elpaca--compile-info elpaca--install-info elpaca--add-info-path elpaca--run-post-build-commands elpaca--activate-package) (:protocol https :inherit t :depth 1 :package "abyss-theme") nil nil nil nil 5 (25756 4374 245126 660000) nil nil ((failed (25756 4374 132617 850000) "Unable to determine repo dir: (error \"Cannot deter..." 0)) nil))))
  elpaca-process-queues()
  (progn (elpaca-process-queues))
  (if (member this-command '(eval-last-sexp eval-defun)) (progn (elpaca-process-queues)))
  (progn (let* ((e (and t (elpaca-get item-55)))) (if e (progn (elpaca--maybe-log t) (elpaca--unprocess e) (let* ((c (nthcdr 4 e))) (setcar c (cons 'queued (car c))))) nil)) (if (member this-command '(eval-last-sexp eval-defun)) (progn (elpaca-process-queues))) (if (member this-command '(eval-region eval-buffer org-ctrl-c-ctrl-c)) (progn (if elpaca--interactive-timer (progn (cancel-timer elpaca--interactive-timer))) (run-at-time elpaca-interactive-interval nil #'elpaca-process-queues))))
  (if after-init-time (progn (let* ((e (and t (elpaca-get item-55)))) (if e (progn (elpaca--maybe-log t) (elpaca--unprocess e) (let* ((c ...)) (setcar c (cons ... ...)))) nil)) (if (member this-command '(eval-last-sexp eval-defun)) (progn (elpaca-process-queues))) (if (member this-command '(eval-region eval-buffer org-ctrl-c-ctrl-c)) (progn (if elpaca--interactive-timer (progn (cancel-timer elpaca--interactive-timer))) (run-at-time elpaca-interactive-interval nil #'elpaca-process-queues)))))
  (let* ((order-54 it) (item-55 (elpaca--first order-54)) (q-56 (or (and after-init-time (elpaca--q (elpaca-get item-55))) (car elpaca--queues)))) (if order-54 (progn (elpaca--queue order-54 q-56))) (if after-init-time (progn (let* ((e (and t (elpaca-get item-55)))) (if e (progn (elpaca--maybe-log t) (elpaca--unprocess e) (let* (...) (setcar c ...))) nil)) (if (member this-command '(eval-last-sexp eval-defun)) (progn (elpaca-process-queues))) (if (member this-command '(eval-region eval-buffer org-ctrl-c-ctrl-c)) (progn (if elpaca--interactive-timer (progn (cancel-timer elpaca--interactive-timer))) (run-at-time elpaca-interactive-interval nil #'elpaca-process-queues))))) nil)
  (lambda (it) (let* ((order-54 it) (item-55 (elpaca--first order-54)) (q-56 (or (and after-init-time (elpaca--q ...)) (car elpaca--queues)))) (if order-54 (progn (elpaca--queue order-54 q-56))) (if after-init-time (progn (let* ((e ...)) (if e (progn ... ... ...) nil)) (if (member this-command '...) (progn (elpaca-process-queues))) (if (member this-command '...) (progn (if elpaca--interactive-timer ...) (run-at-time elpaca-interactive-interval nil ...))))) nil) (message (symbol-name it)) (add-to-list 'custom-theme-load-path (expand-file-name (symbol-name it) elpaca-builds-directory)))(abyss-theme)
  mapc((lambda (it) (let* ((order-54 it) (item-55 (elpaca--first order-54)) (q-56 (or (and after-init-time (elpaca--q ...)) (car elpaca--queues)))) (if order-54 (progn (elpaca--queue order-54 q-56))) (if after-init-time (progn (let* ((e ...)) (if e (progn ... ... ...) nil)) (if (member this-command '...) (progn (elpaca-process-queues))) (if (member this-command '...) (progn (if elpaca--interactive-timer ...) (run-at-time elpaca-interactive-interval nil ...))))) nil) (message (symbol-name it)) (add-to-list 'custom-theme-load-path (expand-file-name (symbol-name it) elpaca-builds-directory))) (abyss-theme acme-theme adwaita-dark-theme afternoon-theme ahungry-theme airline-themes alect-themes almost-mono-themes ample-theme ample-zen-theme ancient-one-dark-theme anti-zenburn-theme apropospriate-theme arjen-grey-theme atom-dark-theme atom-one-dark-theme autumn-light-theme avk-emacs-themes ayu-theme badger-theme badwolf-theme base16-theme basic-theme berrys-theme birds-of-paradise-plus-theme blackboard-theme bliss-theme borland-blue-theme boron-theme brutalist-theme bubbleberry-theme busybee-theme calmer-forest-theme caroline-theme catppuccin-theme challenger-deep-theme cherry-blossom-theme chocolate-theme chyla-theme cloud-theme clues-theme colonoscopy-theme color-theme colorless-themes commentary-theme constant-theme creamsody-theme curry-on-theme cyanometric-theme cyberpunk-2019-theme ...))
  ded:install-theme-list((abyss-theme acme-theme adwaita-dark-theme afternoon-theme ahungry-theme airline-themes alect-themes almost-mono-themes ample-theme ample-zen-theme ancient-one-dark-theme anti-zenburn-theme apropospriate-theme arjen-grey-theme atom-dark-theme atom-one-dark-theme autumn-light-theme avk-emacs-themes ayu-theme badger-theme badwolf-theme base16-theme basic-theme berrys-theme birds-of-paradise-plus-theme blackboard-theme bliss-theme borland-blue-theme boron-theme brutalist-theme bubbleberry-theme busybee-theme calmer-forest-theme caroline-theme catppuccin-theme challenger-deep-theme cherry-blossom-theme chocolate-theme chyla-theme cloud-theme clues-theme colonoscopy-theme color-theme colorless-themes commentary-theme constant-theme creamsody-theme curry-on-theme cyanometric-theme cyberpunk-2019-theme ...))
  eval((ded:install-theme-list (ded:all-theme-syms)) nil)
  elisp--eval-last-sexp(nil)
  eval-last-sexp(nil)
  funcall-interactively(eval-last-sexp nil)
  call-interactively(eval-last-sexp nil nil)
  command-execute(eval-last-sexp)

Again, I'm puzzled. Any ideas?

progfolio commented 1 year ago

ded:pack-name shouldn't be necessary. You can convert the car of each menu item to a string.

ded:install-theme-list:

(symbol-name it)

Debugger entered--Lisp error: (error "Unable to determine recipe URL")

That error occurs when the recipe is incomplete. Looks like the MELPA menu cache is corrupted or ignored somewhere along the line. So the recipe lookup failed and your recipe only has the properties it inherited from elpaca-order-functions which defaults to elpaca-order-defaults.

The following two examples work for me:

Test Case ```emacs-lisp (elpaca-test :dir "elpaca.themes" :init (cl-loop with i = 0 for (item . _) in (elpaca-menu-melpa 'index) do (and (< i 10) (string-match-p "theme$" (symbol-name item)) (cl-incf i) (elpaca `,item))) (elpaca-wait) (with-current-buffer (elpaca-log "#installed #unique") (message "%s" (buffer-substring-no-properties (point-min) (point-max))))) ```
Host Env
elpaca2e65018 HEAD -> master, origin/master, origin/HEAD
isntaller0.5
emacsGNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.38, cairo version 1.17.8) of 2023-06-21
gitgit version 2.41.0
Output ```emacs-lisp INFO Scraping files for loaddefs... INFO Scraping files for loaddefs...done GEN ../elpaca-autoloads.el Cloning into '/tmp/elpaca.themes/elpaca/repos/elpaca'... Your branch is up to date with 'origin/master'. Checking /tmp/elpaca.themes/elpaca/repos/elpaca... Compiling /tmp/elpaca.themes/elpaca/repos/elpaca/elpaca-info.el... Compiling /tmp/elpaca.themes/elpaca/repos/elpaca/elpaca-log.el... Compiling /tmp/elpaca.themes/elpaca/repos/elpaca/elpaca-manager.el... Compiling /tmp/elpaca.themes/elpaca/repos/elpaca/elpaca-menu-gnu-elpa-mirror.el... Compiling /tmp/elpaca.themes/elpaca/repos/elpaca/elpaca-menu-melpa.el... Compiling /tmp/elpaca.themes/elpaca/repos/elpaca/elpaca-menu-non-gnu-elpa.el... Compiling /tmp/elpaca.themes/elpaca/repos/elpaca/elpaca-menu-org.el... Compiling /tmp/elpaca.themes/elpaca/repos/elpaca/elpaca-process.el... Compiling /tmp/elpaca.themes/elpaca/repos/elpaca/elpaca-test.el... Compiling /tmp/elpaca.themes/elpaca/repos/elpaca/elpaca-ui.el... Compiling /tmp/elpaca.themes/elpaca/repos/elpaca/elpaca.el... Checking /tmp/elpaca.themes/elpaca/repos/elpaca/doc... Compiling /tmp/elpaca.themes/elpaca/repos/elpaca/doc/early-init.el... Compiling /tmp/elpaca.themes/elpaca/repos/elpaca/doc/init.el... Checking /tmp/elpaca.themes/elpaca/repos/elpaca/extensions... Compiling /tmp/elpaca.themes/elpaca/repos/elpaca/extensions/elpaca-use-package.el... Checking /tmp/elpaca.themes/elpaca/repos/elpaca/images... Checking /tmp/elpaca.themes/elpaca/repos/elpaca/test... Compiling /tmp/elpaca.themes/elpaca/repos/elpaca/test/elpaca-test.el... Done (Total of 12 files compiled, 3 skipped in 4 directories) Downloading MELPA recipes... Downloading MELPA recipes...100% Downloading GNU ELPA recipes... Downloading GNU ELPA recipes...100% Downloading NonGNU ELPA recipes... Downloading NonGNU ELPA recipes...100% Package Status Info Time ▼ ample-theme finished ✓ 0.869 secs 05.077035 elpaca finished ✓ 0.890 secs 05.097765 ample-zen-theme finished ✓ 0.909 secs 05.118348 afternoon-theme finished ✓ 0.932 secs 05.140469 ahungry-theme finished ✓ 0.998 secs 05.205056 apropospriate-theme finished ✓ 1.013 secs 05.220063 acme-theme finished ✓ 1.023 secs 05.230157 anti-zenburn-theme finished ✓ 1.038 secs 05.245508 ancient-one-dark-theme finished ✓ 1.092 secs 05.300494 abyss-theme finished ✓ 1.134 secs 05.340973 adwaita-dark-theme finished ✓ 1.178 secs 05.385455 Test Env Elpaca 2e65018 HEAD -> master, origin/master, origin/HEAD installer: 0.5 emacs-version: GNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.38, cairo version 1.17.8) of 2023-06-21 git --version: git version 2.41.0 ```
Test Case ```emacs-lisp (elpaca-test :dir "elpaca.themes" :init (defun +melpa-themes (n) "Return N MELPA themes." (cl-loop with i = 0 for (item . _) in (elpaca-menu-melpa 'index) when (and (< i n) (string-match-p "theme$" (symbol-name item)) (cl-incf i)) collect item)) (cl-loop for theme in (+melpa-themes 3) do (elpaca `,theme)) (elpaca-wait) (with-current-buffer (elpaca-log "#installed #unique") (message "%s" (buffer-substring-no-properties (point-min) (point-max))))) ```
Host Env
elpaca2e65018 HEAD -> master, origin/master, origin/HEAD
isntaller0.5
emacsGNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.38, cairo version 1.17.8) of 2023-06-21
gitgit version 2.41.0
Output ```emacs-lisp INFO Scraping files for loaddefs... INFO Scraping files for loaddefs...done GEN ../elpaca-autoloads.el Cloning into '/tmp/elpaca.themes/elpaca/repos/elpaca'... Your branch is up to date with 'origin/master'. Checking /tmp/elpaca.themes/elpaca/repos/elpaca... Compiling /tmp/elpaca.themes/elpaca/repos/elpaca/elpaca-info.el... Compiling /tmp/elpaca.themes/elpaca/repos/elpaca/elpaca-log.el... Compiling /tmp/elpaca.themes/elpaca/repos/elpaca/elpaca-manager.el... Compiling /tmp/elpaca.themes/elpaca/repos/elpaca/elpaca-menu-gnu-elpa-mirror.el... Compiling /tmp/elpaca.themes/elpaca/repos/elpaca/elpaca-menu-melpa.el... Compiling /tmp/elpaca.themes/elpaca/repos/elpaca/elpaca-menu-non-gnu-elpa.el... Compiling /tmp/elpaca.themes/elpaca/repos/elpaca/elpaca-menu-org.el... Compiling /tmp/elpaca.themes/elpaca/repos/elpaca/elpaca-process.el... Compiling /tmp/elpaca.themes/elpaca/repos/elpaca/elpaca-test.el... Compiling /tmp/elpaca.themes/elpaca/repos/elpaca/elpaca-ui.el... Compiling /tmp/elpaca.themes/elpaca/repos/elpaca/elpaca.el... Checking /tmp/elpaca.themes/elpaca/repos/elpaca/doc... Compiling /tmp/elpaca.themes/elpaca/repos/elpaca/doc/early-init.el... Compiling /tmp/elpaca.themes/elpaca/repos/elpaca/doc/init.el... Checking /tmp/elpaca.themes/elpaca/repos/elpaca/extensions... Compiling /tmp/elpaca.themes/elpaca/repos/elpaca/extensions/elpaca-use-package.el... Checking /tmp/elpaca.themes/elpaca/repos/elpaca/images... Checking /tmp/elpaca.themes/elpaca/repos/elpaca/test... Compiling /tmp/elpaca.themes/elpaca/repos/elpaca/test/elpaca-test.el... Done (Total of 12 files compiled, 3 skipped in 4 directories) Downloading MELPA recipes... Downloading MELPA recipes...100% Downloading GNU ELPA recipes... Downloading GNU ELPA recipes...100% Downloading NonGNU ELPA recipes... Downloading NonGNU ELPA recipes...100% Package Status Info Time ▼ elpaca finished ✓ 0.616 secs 05.028358 abyss-theme finished ✓ 0.658 secs 05.072511 acme-theme finished ✓ 0.751 secs 05.164671 adwaita-dark-theme finished ✓ 0.970 secs 05.384175 Test Env Elpaca 2e65018 HEAD -> master, origin/master, origin/HEAD installer: 0.5 emacs-version: GNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.38, cairo version 1.17.8) of 2023-06-21 git --version: git version 2.41.0 ```
ddoherty03 commented 1 year ago

Nicholas (@progfolio) thanks for looking at this. You got me unstuck. Best wishes.

progfolio commented 1 year ago

Glad you got it sorted. Have fun!