magit / forge

Work with Git forges from the comfort of Magit
GNU General Public License v3.0
1.3k stars 113 forks source link

forge--pull is already defined as something else than a generic function #623

Closed darshanime closed 7 months ago

darshanime commented 7 months ago

I am trying to install forge, which "worked", but it is failing with forge--pull is already defined as something else than a generic function when I run any command.

I tried this on these versions of emacs:

GNU Emacs 29.2 (build 1, aarch64-apple-darwin21.6.0, NS appkit-2113.60 Version 12.6.6 (Build 21G646)) of 2024-01-18
GNU Emacs 29.1 (build 1, aarch64-apple-darwin21.6.0, NS appkit-2113.60 Version 12.6.6 (Build 21G646)) of 2023-08-17

Versions installed:

$ find ~/.emacs.d -name "*forge*"
/Users/path/.emacs.d/forge-database.sqlite
/Users/path/.emacs.d/elpa/forge-20240203.2128
...

Warnings

⛔ Error (use-package): forge/:catch: Invalid slot name: "#<transient-prefix transient-prefix-43c3d14c>", :transient-switch-frame

Backtrace

Debugger entered--Lisp error: (error "forge-topic-mark-read is already defined as someth...")
  signal(error ("forge-topic-mark-read is already defined as someth..."))
  error("%s is already defined as something else than a gen..." forge-topic-mark-read)
  cl-generic-ensure-function(forge-topic-mark-read)
  cl-generic-define-method(forge-topic-mark-read nil ((topic forge-topic)) nil (closure (t) (topic) (progn (eieio-oset topic 'status 'done))))
  eval-buffer(#<buffer  *load*-270082> nil "/Users/darshanime/.emacs.d/elpa/forge-20240203.212..." nil t)  ; Reading at buffer position 10810
  load-with-code-conversion("/Users/darshanime/.emacs.d/elpa/forge-20240203.212..." "/Users/darshanime/.emacs.d/elpa/forge-20240203.212..." nil t)
  require(forge-topic)
  eval-buffer(#<buffer  *load*-241436> nil "/Users/darshanime/.emacs.d/elpa/forge-20240203.212..." nil t)  ; Reading at buffer position 1477
  load-with-code-conversion("/Users/darshanime/.emacs.d/elpa/forge-20240203.212..." "/Users/darshanime/.emacs.d/elpa/forge-20240203.212..." nil t)
  require(forge)
  eval-buffer(#<buffer  *load*> nil "/Users/darshanime/.emacs.d/elpa/forge-20240203.212..." nil t)  ; Reading at buffer position 917
  load-with-code-conversion("/Users/darshanime/.emacs.d/elpa/forge-20240203.212..." "/Users/darshanime/.emacs.d/elpa/forge-20240203.212..." nil t)
  autoload-do-load((autoload "forge-commands" "Pull topics from the forge repository.\n\nWith a pre..." t nil) forge-pull)
  command-execute(forge-pull record)
  helm-M-x-execute-command(forge-pull)
  helm-execute-selection-action-1()
  helm-execute-selection-action()
  helm-internal((((name . "Emacs Commands history") (init #f(compiled-function () #<bytecode 0x1b262fc5b305651f>)) (candidates . helm-candidates-in-buffer) (cleanup . helm-M-x--unwind-forms) (keymap keymap (keymap ...) keymap (29 . helm-M-x-toggle-short-doc) (21 . helm-M-x-universal-argument) keymap (27 keymap ...) (C-return . helm-cr-empty-string) keymap (f12 . #f(compiled-function () ... #<bytecode 0x1980e226809e80>)) (f11 . #f(compiled-function () ... #<bytecode 0x1980e226818e80>)) (f10 . #f(compiled-function () ... #<bytecode 0x1980e22581be80>)) (f9 . #f(compiled-function () ... #<bytecode 0x1980e22580ae80>)) (f8 . #f(compiled-function () ... #<bytecode 0x1980e22582de80>)) (f7 . #f(compiled-function () ... #<bytecode 0x1980e22583ce80>)) (f6 . #f(compiled-function () ... #<bytecode 0x1980e22585fe80>)) (f5 . #f(compiled-function () ... #<bytecode 0x1980e22584ee80>)) (f4 . #f(compiled-function () ... #<bytecode 0x1980e226a01e80>)) (f3 . #f(compiled-function () ... #<bytecode 0x1980e226a10e80>)) (f2 . #f(compiled-function () ... #<bytecode 0x1980e226a73e80>)) (menu-bar keymap ...) (help keymap ...) (23 . helm-helm-yank-text-at-point-with-subkeys) (f1 . #f(compiled-function () ... #<bytecode 0x1980e226a62e80>)) (8 keymap ... ... ... ... ... ...) (20 . helm-toggle-resplit-and-swap-windows) (C-tab . undefined) (67108897 . helm-toggle-suspend-update) (3 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (67108987 . helm-enlarge-window) (67108989 . helm-narrow-window) ...) (action . helm-type-command-actions) (persistent-action . helm-M-x-persistent-action) (persistent-help . "Describe this command") (help-message . helm-M-x-help-message) (requires-pattern . 0) (filtered-candidate-transformer helm-M-x-transformer-no-sort #f(compiled-function (candidates source) #<bytecode -0x129311730cccab0b>) helm-fuzzy-highlight-matches) (volatile . t) (match identity) (fuzzy-match . t) (redisplay . identity) (nomark . t) (coerce . helm-symbolify) (header-line . #("C-j: Describe this command (keep..." 0 3 ...)) (resume . helm-M-x-resume-fn) (multimatch . t) (must-match . t) (group . helm-command) (data . #f(compiled-function () #<bytecode -0xcff449f57f89630>)) (get-line . buffer-substring-no-properties) (search helm-mm-exact-search helm-mm-search helm-candidates-in-buffer-search-default-fn helm-fuzzy-search)) ((name . "Emacs Commands") (init #f(compiled-function () #<bytecode -0x1d11eae1e91b7299>)) (candidates . helm-candidates-in-buffer) (cleanup . helm-M-x--unwind-forms) (keymap keymap (keymap ...) keymap (29 . helm-M-x-toggle-short-doc) (21 . helm-M-x-universal-argument) keymap (27 keymap ...) (C-return . helm-cr-empty-string) keymap (f12 . #f(compiled-function () ... #<bytecode 0x1980e226809e80>)) (f11 . #f(compiled-function () ... #<bytecode 0x1980e226818e80>)) (f10 . #f(compiled-function () ... #<bytecode 0x1980e22581be80>)) (f9 . #f(compiled-function () ... #<bytecode 0x1980e22580ae80>)) (f8 . #f(compiled-function () ... #<bytecode 0x1980e22582de80>)) (f7 . #f(compiled-function () ... #<bytecode 0x1980e22583ce80>)) (f6 . #f(compiled-function () ... #<bytecode 0x1980e22585fe80>)) (f5 . #f(compiled-function () ... #<bytecode 0x1980e22584ee80>)) (f4 . #f(compiled-function () ... #<bytecode 0x1980e226a01e80>)) (f3 . #f(compiled-function () ... #<bytecode 0x1980e226a10e80>)) (f2 . #f(compiled-function () ... #<bytecode 0x1980e226a73e80>)) (menu-bar keymap ...) (help keymap ...) (23 . helm-helm-yank-text-at-point-with-subkeys) (f1 . #f(compiled-function () ... #<bytecode 0x1980e226a62e80>)) (8 keymap ... ... ... ... ... ...) (20 . helm-toggle-resplit-and-swap-windows) (C-tab . undefined) (67108897 . helm-toggle-suspend-update) (3 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (67108987 . helm-enlarge-window) (67108989 . helm-narrow-window) ...) (action . helm-type-command-actions) (persistent-action . helm-M-x-persistent-action) (persistent-help . "Describe this command") (help-message . helm-M-x-help-message) (requires-pattern . 0) (filtered-candidate-transformer helm-M-x-transformer-no-sort #f(compiled-function (candidates source) #<bytecode -0x129311730cccab0b>) helm-fuzzy-highlight-matches) (volatile . t) (match identity) (fuzzy-match . t) (redisplay . identity) (nomark . t) (coerce . helm-symbolify) (header-line . #("C-j: Describe this command (keep..." 0 3 ...)) (resume . helm-M-x-resume-fn) (multimatch . t) (must-match . t) (group . helm-command) (data . #f(compiled-function () #<bytecode 0x13e248aa0289f4a5>)) (get-line . buffer-substring-no-properties) (search helm-mm-exact-search helm-mm-search helm-candidates-in-buffer-search-default-fn helm-fuzzy-search))) nil "M-x " nil nil "*helm M-x*" nil nil helm-M-x-input-history)
  apply(helm-internal ((((name . "Emacs Commands history") (init #f(compiled-function () #<bytecode 0x1b262fc5b305651f>)) (candidates . helm-candidates-in-buffer) (cleanup . helm-M-x--unwind-forms) (keymap keymap ... keymap ... ... keymap ... ... keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (action . helm-type-command-actions) (persistent-action . helm-M-x-persistent-action) (persistent-help . "Describe this command") (help-message . helm-M-x-help-message) (requires-pattern . 0) (filtered-candidate-transformer helm-M-x-transformer-no-sort #f(compiled-function (candidates source) #<bytecode -0x129311730cccab0b>) helm-fuzzy-highlight-matches) (volatile . t) (match identity) (fuzzy-match . t) (redisplay . identity) (nomark . t) (coerce . helm-symbolify) (header-line . ...) (resume . helm-M-x-resume-fn) (multimatch . t) (must-match . t) (group . helm-command) (data . #f(compiled-function () #<bytecode -0xcff449f57f89630>)) (get-line . buffer-substring-no-properties) (search helm-mm-exact-search helm-mm-search helm-candidates-in-buffer-search-default-fn helm-fuzzy-search)) ((name . "Emacs Commands") (init #f(compiled-function () #<bytecode -0x1d11eae1e91b7299>)) (candidates . helm-candidates-in-buffer) (cleanup . helm-M-x--unwind-forms) (keymap keymap ... keymap ... ... keymap ... ... keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (action . helm-type-command-actions) (persistent-action . helm-M-x-persistent-action) (persistent-help . "Describe this command") (help-message . helm-M-x-help-message) (requires-pattern . 0) (filtered-candidate-transformer helm-M-x-transformer-no-sort #f(compiled-function (candidates source) #<bytecode -0x129311730cccab0b>) helm-fuzzy-highlight-matches) (volatile . t) (match identity) (fuzzy-match . t) (redisplay . identity) (nomark . t) (coerce . helm-symbolify) (header-line . ...) (resume . helm-M-x-resume-fn) (multimatch . t) (must-match . t) (group . helm-command) (data . #f(compiled-function () #<bytecode 0x13e248aa0289f4a5>)) (get-line . buffer-substring-no-properties) (search helm-mm-exact-search helm-mm-search helm-candidates-in-buffer-search-default-fn helm-fuzzy-search))) nil "M-x " nil nil "*helm M-x*" nil nil helm-M-x-input-history))
  helm((((name . "Emacs Commands history") (init #f(compiled-function () #<bytecode 0x1b262fc5b305651f>)) (candidates . helm-candidates-in-buffer) (cleanup . helm-M-x--unwind-forms) (keymap keymap (keymap ...) keymap (29 . helm-M-x-toggle-short-doc) (21 . helm-M-x-universal-argument) keymap (27 keymap ...) (C-return . helm-cr-empty-string) keymap (f12 . #f(compiled-function () ... #<bytecode 0x1980e226809e80>)) (f11 . #f(compiled-function () ... #<bytecode 0x1980e226818e80>)) (f10 . #f(compiled-function () ... #<bytecode 0x1980e22581be80>)) (f9 . #f(compiled-function () ... #<bytecode 0x1980e22580ae80>)) (f8 . #f(compiled-function () ... #<bytecode 0x1980e22582de80>)) (f7 . #f(compiled-function () ... #<bytecode 0x1980e22583ce80>)) (f6 . #f(compiled-function () ... #<bytecode 0x1980e22585fe80>)) (f5 . #f(compiled-function () ... #<bytecode 0x1980e22584ee80>)) (f4 . #f(compiled-function () ... #<bytecode 0x1980e226a01e80>)) (f3 . #f(compiled-function () ... #<bytecode 0x1980e226a10e80>)) (f2 . #f(compiled-function () ... #<bytecode 0x1980e226a73e80>)) (menu-bar keymap ...) (help keymap ...) (23 . helm-helm-yank-text-at-point-with-subkeys) (f1 . #f(compiled-function () ... #<bytecode 0x1980e226a62e80>)) (8 keymap ... ... ... ... ... ...) (20 . helm-toggle-resplit-and-swap-windows) (C-tab . undefined) (67108897 . helm-toggle-suspend-update) (3 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (67108987 . helm-enlarge-window) (67108989 . helm-narrow-window) ...) (action . helm-type-command-actions) (persistent-action . helm-M-x-persistent-action) (persistent-help . "Describe this command") (help-message . helm-M-x-help-message) (requires-pattern . 0) (filtered-candidate-transformer helm-M-x-transformer-no-sort #f(compiled-function (candidates source) #<bytecode -0x129311730cccab0b>) helm-fuzzy-highlight-matches) (volatile . t) (match identity) (fuzzy-match . t) (redisplay . identity) (nomark . t) (coerce . helm-symbolify) (header-line . #("C-j: Describe this command (keep..." 0 3 ...)) (resume . helm-M-x-resume-fn) (multimatch . t) (must-match . t) (group . helm-command) (data . #f(compiled-function () #<bytecode -0xcff449f57f89630>)) (get-line . buffer-substring-no-properties) (search helm-mm-exact-search helm-mm-search helm-candidates-in-buffer-search-default-fn helm-fuzzy-search)) ((name . "Emacs Commands") (init #f(compiled-function () #<bytecode -0x1d11eae1e91b7299>)) (candidates . helm-candidates-in-buffer) (cleanup . helm-M-x--unwind-forms) (keymap keymap (keymap ...) keymap (29 . helm-M-x-toggle-short-doc) (21 . helm-M-x-universal-argument) keymap (27 keymap ...) (C-return . helm-cr-empty-string) keymap (f12 . #f(compiled-function () ... #<bytecode 0x1980e226809e80>)) (f11 . #f(compiled-function () ... #<bytecode 0x1980e226818e80>)) (f10 . #f(compiled-function () ... #<bytecode 0x1980e22581be80>)) (f9 . #f(compiled-function () ... #<bytecode 0x1980e22580ae80>)) (f8 . #f(compiled-function () ... #<bytecode 0x1980e22582de80>)) (f7 . #f(compiled-function () ... #<bytecode 0x1980e22583ce80>)) (f6 . #f(compiled-function () ... #<bytecode 0x1980e22585fe80>)) (f5 . #f(compiled-function () ... #<bytecode 0x1980e22584ee80>)) (f4 . #f(compiled-function () ... #<bytecode 0x1980e226a01e80>)) (f3 . #f(compiled-function () ... #<bytecode 0x1980e226a10e80>)) (f2 . #f(compiled-function () ... #<bytecode 0x1980e226a73e80>)) (menu-bar keymap ...) (help keymap ...) (23 . helm-helm-yank-text-at-point-with-subkeys) (f1 . #f(compiled-function () ... #<bytecode 0x1980e226a62e80>)) (8 keymap ... ... ... ... ... ...) (20 . helm-toggle-resplit-and-swap-windows) (C-tab . undefined) (67108897 . helm-toggle-suspend-update) (3 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (67108987 . helm-enlarge-window) (67108989 . helm-narrow-window) ...) (action . helm-type-command-actions) (persistent-action . helm-M-x-persistent-action) (persistent-help . "Describe this command") (help-message . helm-M-x-help-message) (requires-pattern . 0) (filtered-candidate-transformer helm-M-x-transformer-no-sort #f(compiled-function (candidates source) #<bytecode -0x129311730cccab0b>) helm-fuzzy-highlight-matches) (volatile . t) (match identity) (fuzzy-match . t) (redisplay . identity) (nomark . t) (coerce . helm-symbolify) (header-line . #("C-j: Describe this command (keep..." 0 3 ...)) (resume . helm-M-x-resume-fn) (multimatch . t) (must-match . t) (group . helm-command) (data . #f(compiled-function () #<bytecode 0x13e248aa0289f4a5>)) (get-line . buffer-substring-no-properties) (search helm-mm-exact-search helm-mm-search helm-candidates-in-buffer-search-default-fn helm-fuzzy-search))) nil "M-x " nil nil "*helm M-x*" nil nil helm-M-x-input-history)
  apply(helm ((((name . "Emacs Commands history") (init #f(compiled-function () #<bytecode 0x1b262fc5b305651f>)) (candidates . helm-candidates-in-buffer) (cleanup . helm-M-x--unwind-forms) (keymap keymap ... keymap ... ... keymap ... ... keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (action . helm-type-command-actions) (persistent-action . helm-M-x-persistent-action) (persistent-help . "Describe this command") (help-message . helm-M-x-help-message) (requires-pattern . 0) (filtered-candidate-transformer helm-M-x-transformer-no-sort #f(compiled-function (candidates source) #<bytecode -0x129311730cccab0b>) helm-fuzzy-highlight-matches) (volatile . t) (match identity) (fuzzy-match . t) (redisplay . identity) (nomark . t) (coerce . helm-symbolify) (header-line . ...) (resume . helm-M-x-resume-fn) (multimatch . t) (must-match . t) (group . helm-command) (data . #f(compiled-function () #<bytecode -0xcff449f57f89630>)) (get-line . buffer-substring-no-properties) (search helm-mm-exact-search helm-mm-search helm-candidates-in-buffer-search-default-fn helm-fuzzy-search)) ((name . "Emacs Commands") (init #f(compiled-function () #<bytecode -0x1d11eae1e91b7299>)) (candidates . helm-candidates-in-buffer) (cleanup . helm-M-x--unwind-forms) (keymap keymap ... keymap ... ... keymap ... ... keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (action . helm-type-command-actions) (persistent-action . helm-M-x-persistent-action) (persistent-help . "Describe this command") (help-message . helm-M-x-help-message) (requires-pattern . 0) (filtered-candidate-transformer helm-M-x-transformer-no-sort #f(compiled-function (candidates source) #<bytecode -0x129311730cccab0b>) helm-fuzzy-highlight-matches) (volatile . t) (match identity) (fuzzy-match . t) (redisplay . identity) (nomark . t) (coerce . helm-symbolify) (header-line . ...) (resume . helm-M-x-resume-fn) (multimatch . t) (must-match . t) (group . helm-command) (data . #f(compiled-function () #<bytecode 0x13e248aa0289f4a5>)) (get-line . buffer-substring-no-properties) (search helm-mm-exact-search helm-mm-search helm-candidates-in-buffer-search-default-fn helm-fuzzy-search))) nil "M-x " nil nil "*helm M-x*" nil nil helm-M-x-input-history))
  helm(:sources (((name . "Emacs Commands history") (init #f(compiled-function () #<bytecode 0x1b262fc5b305651f>)) (candidates . helm-candidates-in-buffer) (cleanup . helm-M-x--unwind-forms) (keymap keymap (keymap ...) keymap (29 . helm-M-x-toggle-short-doc) (21 . helm-M-x-universal-argument) keymap (27 keymap ...) (C-return . helm-cr-empty-string) keymap (f12 . #f(compiled-function () ... #<bytecode 0x1980e226809e80>)) (f11 . #f(compiled-function () ... #<bytecode 0x1980e226818e80>)) (f10 . #f(compiled-function () ... #<bytecode 0x1980e22581be80>)) (f9 . #f(compiled-function () ... #<bytecode 0x1980e22580ae80>)) (f8 . #f(compiled-function () ... #<bytecode 0x1980e22582de80>)) (f7 . #f(compiled-function () ... #<bytecode 0x1980e22583ce80>)) (f6 . #f(compiled-function () ... #<bytecode 0x1980e22585fe80>)) (f5 . #f(compiled-function () ... #<bytecode 0x1980e22584ee80>)) (f4 . #f(compiled-function () ... #<bytecode 0x1980e226a01e80>)) (f3 . #f(compiled-function () ... #<bytecode 0x1980e226a10e80>)) (f2 . #f(compiled-function () ... #<bytecode 0x1980e226a73e80>)) (menu-bar keymap ...) (help keymap ...) (23 . helm-helm-yank-text-at-point-with-subkeys) (f1 . #f(compiled-function () ... #<bytecode 0x1980e226a62e80>)) (8 keymap ... ... ... ... ... ...) (20 . helm-toggle-resplit-and-swap-windows) (C-tab . undefined) (67108897 . helm-toggle-suspend-update) (3 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (67108987 . helm-enlarge-window) (67108989 . helm-narrow-window) ...) (action . helm-type-command-actions) (persistent-action . helm-M-x-persistent-action) (persistent-help . "Describe this command") (help-message . helm-M-x-help-message) (requires-pattern . 0) (filtered-candidate-transformer helm-M-x-transformer-no-sort #f(compiled-function (candidates source) #<bytecode -0x129311730cccab0b>) helm-fuzzy-highlight-matches) (volatile . t) (match identity) (fuzzy-match . t) (redisplay . identity) (nomark . t) (coerce . helm-symbolify) (header-line . #("C-j: Describe this command (keep..." 0 3 ...)) (resume . helm-M-x-resume-fn) (multimatch . t) (must-match . t) (group . helm-command) (data . #f(compiled-function () #<bytecode -0xcff449f57f89630>)) (get-line . buffer-substring-no-properties) (search helm-mm-exact-search helm-mm-search helm-candidates-in-buffer-search-default-fn helm-fuzzy-search)) ((name . "Emacs Commands") (init #f(compiled-function () #<bytecode -0x1d11eae1e91b7299>)) (candidates . helm-candidates-in-buffer) (cleanup . helm-M-x--unwind-forms) (keymap keymap (keymap ...) keymap (29 . helm-M-x-toggle-short-doc) (21 . helm-M-x-universal-argument) keymap (27 keymap ...) (C-return . helm-cr-empty-string) keymap (f12 . #f(compiled-function () ... #<bytecode 0x1980e226809e80>)) (f11 . #f(compiled-function () ... #<bytecode 0x1980e226818e80>)) (f10 . #f(compiled-function () ... #<bytecode 0x1980e22581be80>)) (f9 . #f(compiled-function () ... #<bytecode 0x1980e22580ae80>)) (f8 . #f(compiled-function () ... #<bytecode 0x1980e22582de80>)) (f7 . #f(compiled-function () ... #<bytecode 0x1980e22583ce80>)) (f6 . #f(compiled-function () ... #<bytecode 0x1980e22585fe80>)) (f5 . #f(compiled-function () ... #<bytecode 0x1980e22584ee80>)) (f4 . #f(compiled-function () ... #<bytecode 0x1980e226a01e80>)) (f3 . #f(compiled-function () ... #<bytecode 0x1980e226a10e80>)) (f2 . #f(compiled-function () ... #<bytecode 0x1980e226a73e80>)) (menu-bar keymap ...) (help keymap ...) (23 . helm-helm-yank-text-at-point-with-subkeys) (f1 . #f(compiled-function () ... #<bytecode 0x1980e226a62e80>)) (8 keymap ... ... ... ... ... ...) (20 . helm-toggle-resplit-and-swap-windows) (C-tab . undefined) (67108897 . helm-toggle-suspend-update) (3 keymap ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...) (67108987 . helm-enlarge-window) (67108989 . helm-narrow-window) ...) (action . helm-type-command-actions) (persistent-action . helm-M-x-persistent-action) (persistent-help . "Describe this command") (help-message . helm-M-x-help-message) (requires-pattern . 0) (filtered-candidate-transformer helm-M-x-transformer-no-sort #f(compiled-function (candidates source) #<bytecode -0x129311730cccab0b>) helm-fuzzy-highlight-matches) (volatile . t) (match identity) (fuzzy-match . t) (redisplay . identity) (nomark . t) (coerce . helm-symbolify) (header-line . #("C-j: Describe this command (keep..." 0 3 ...)) (resume . helm-M-x-resume-fn) (multimatch . t) (must-match . t) (group . helm-command) (data . #f(compiled-function () #<bytecode 0x13e248aa0289f4a5>)) (get-line . buffer-substring-no-properties) (search helm-mm-exact-search helm-mm-search helm-candidates-in-buffer-search-default-fn helm-fuzzy-search))) :prompt "M-x " :buffer "*helm M-x*" :history helm-M-x-input-history :truncate-lines t)
  helm-M-x-read-extended-command([python-imenu-format-parent-item-label magit-section-show-headings org-element-paragraph-separate calendar-forward-week nexti tramp-completion-handle-file-name-all-completions projectile-get-project-directories ivy-explorer mc/prompt-for-inclusion-in-whitelist access-label ido-prev-match c-electric-lt-gt start-char c-state-min-scan-pos ff-all-dirs-under org-export-before-processing-functions org-journal-re-encrypt-journals cl-struct-flycheck-syntax-check-tags inactive racket-insert-closing-bracket mc/for-each-fake-cursor edebug-mode-on-hook message-expand-name-databases transient:magit-diff-refresh:--irreversible-delete org-journal--open-entry python-shell-get-process-or-error smie-config--guess-value magit-list-modified-modules ns-l-compact-sequence org-switch-to-buffer-other-window python-syntax--context-compiler-macro gdb-thread-number tramp-sudoedit-handle-set-file-acl org-table-get-range helm-highlight-bookmark display-even-when-displayed widget-face-sample-face-get yank-undo-function python-skeleton-available geiser-eval--retort-result-str use-package-handler/:interpreter helm-grep-save-results-1 flycheck-previous-error gud-target-name nth-sibling highlight-extent restclient-get-response-headers eglot-events-buffer-size tramp-handle-make-auto-save-file-name flycheck-puppet-lint-disabled-arg-name ...])
  helm-M-x(nil)
  funcall-interactively(helm-M-x nil)
  call-interactively(helm-M-x nil nil)
  command-execute(helm-M-x)

Messages

Contacting host: melpa.org:443 [2 times]
Parsing tar file...done
Extracting...done
  INFO     Scraping files for loaddefs...done
  GEN      forge-autoloads.el
Checking /Users/darshanime/.emacs.d/elpa/forge-20240203.2128... [4 times]
Wrote /Users/darshanime/.emacs.d/elpa/forge-20240203.2128/forge-core.elc
Checking /Users/darshanime/.emacs.d/elpa/forge-20240203.2128...
Wrote /Users/darshanime/.emacs.d/elpa/forge-20240203.2128/forge-db.elc
Checking /Users/darshanime/.emacs.d/elpa/forge-20240203.2128... [16 times]
Done (Total of 2 files compiled, 16 failed, 2 skipped)
Error in package--load-files-for-activation: (error forge-topic-mark-read is already defined as something else than a generic function)
Package ‘forge’ installed.

Compile log

Leaving directory ‘/Users/darshanime/.emacs.d/elpa/forge-20240203.2128’

Compiling file /Users/darshanime/.emacs.d/elpa/forge-20240203.2128/forge-bitbucket.el at Sun Feb  4 18:42:34 2024
Entering directory ‘/Users/darshanime/.emacs.d/elpa/forge-20240203.2128/’

Compiling file /Users/darshanime/.emacs.d/elpa/forge-20240203.2128/forge-commands.el at Sun Feb  4 18:42:34 2024

Compiling file /Users/darshanime/.emacs.d/elpa/forge-20240203.2128/forge-core.el at Sun Feb  4 18:42:35 2024

Compiling file /Users/darshanime/.emacs.d/elpa/forge-20240203.2128/forge-db.el at Sun Feb  4 18:42:35 2024

Compiling file /Users/darshanime/.emacs.d/elpa/forge-20240203.2128/forge-gitea.el at Sun Feb  4 18:42:35 2024

Compiling file /Users/darshanime/.emacs.d/elpa/forge-20240203.2128/forge-github.el at Sun Feb  4 18:42:35 2024

Compiling file /Users/darshanime/.emacs.d/elpa/forge-20240203.2128/forge-gitlab.el at Sun Feb  4 18:42:35 2024

Compiling file /Users/darshanime/.emacs.d/elpa/forge-20240203.2128/forge-gogs.el at Sun Feb  4 18:42:36 2024

Compiling file /Users/darshanime/.emacs.d/elpa/forge-20240203.2128/forge-issue.el at Sun Feb  4 18:42:36 2024

Compiling file /Users/darshanime/.emacs.d/elpa/forge-20240203.2128/forge-list.el at Sun Feb  4 18:42:36 2024

Compiling file /Users/darshanime/.emacs.d/elpa/forge-20240203.2128/forge-notify.el at Sun Feb  4 18:42:36 2024

Compiling file /Users/darshanime/.emacs.d/elpa/forge-20240203.2128/forge-post.el at Sun Feb  4 18:42:37 2024

Compiling file /Users/darshanime/.emacs.d/elpa/forge-20240203.2128/forge-pullreq.el at Sun Feb  4 18:42:37 2024

Compiling file /Users/darshanime/.emacs.d/elpa/forge-20240203.2128/forge-repo.el at Sun Feb  4 18:42:37 2024

Compiling file /Users/darshanime/.emacs.d/elpa/forge-20240203.2128/forge-revnote.el at Sun Feb  4 18:42:37 2024

Compiling file /Users/darshanime/.emacs.d/elpa/forge-20240203.2128/forge-semi.el at Sun Feb  4 18:42:38 2024

Compiling file /Users/darshanime/.emacs.d/elpa/forge-20240203.2128/forge-topic.el at Sun Feb  4 18:42:38 2024

Compiling file /Users/darshanime/.emacs.d/elpa/forge-20240203.2128/forge.el at Sun Feb  4 18:42:38 2024

Compiling internal form(s) at Sun Feb  4 18:42:38 2024
Error (bytecomp): Invalid slot name: "#<transient-prefix transient-prefix-48fc064a>", :transient-switch-frame
Error (bytecomp): forge-topic-mark-read is already defined as something else than a generic function [15 times]
tarsius commented 7 months ago

I've just bumped the dependencies and installing that might fix the issue.

If it does not, then you'll have to do the reinstallation dance. Uninstall forge and transient. Exit Emacs. Restart Emacs. Reinstall packages. The problem is that package.el often leaks already loaded old versions of a package into byte-code when installing a new version.

darshanime commented 7 months ago

thanks, this fixed the issue.

progfolio commented 6 months ago

Seeing similar issues with a clean install via Elpaca:

Test Case [How to run this test?](https://github.com/progfolio/elpaca/wiki/Troubleshooting#the-elpaca-test-macro) ```emacs-lisp (elpaca-test :init (elpaca forge) (elpaca-wait) (with-current-buffer (elpaca-info 'forge) (print (buffer-substring-no-properties (point-min) (point-max))))) ```
Host Env
elpacae25aa78 HEAD -> master, origin/master, origin/HEAD
installer0.6
emacsGNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.41, cairo version 1.18.0) of 2024-02-28
gitgit version 2.44.0
Output ```emacs-lisp Elpaca menu item cache discarded due to version change. INFO Scraping files for loaddefs... INFO Scraping files for loaddefs...done GEN ../elpaca-autoloads.el Cloning into '/tmp/elpaca.Pylk1y/elpaca/repos/elpaca'... Your branch is up to date with 'origin/master'. Checking /tmp/elpaca.Pylk1y/elpaca/repos/elpaca... Compiling /tmp/elpaca.Pylk1y/elpaca/repos/elpaca/elpaca-info.el... Compiling /tmp/elpaca.Pylk1y/elpaca/repos/elpaca/elpaca-log.el... Compiling /tmp/elpaca.Pylk1y/elpaca/repos/elpaca/elpaca-manager.el... Compiling /tmp/elpaca.Pylk1y/elpaca/repos/elpaca/elpaca-menu-elpa.el... Compiling /tmp/elpaca.Pylk1y/elpaca/repos/elpaca/elpaca-menu-melpa.el... Compiling /tmp/elpaca.Pylk1y/elpaca/repos/elpaca/elpaca-menu-org.el... Compiling /tmp/elpaca.Pylk1y/elpaca/repos/elpaca/elpaca-process.el... Compiling /tmp/elpaca.Pylk1y/elpaca/repos/elpaca/elpaca-test.el... Compiling /tmp/elpaca.Pylk1y/elpaca/repos/elpaca/elpaca-ui.el... Compiling /tmp/elpaca.Pylk1y/elpaca/repos/elpaca/elpaca.el... Checking /tmp/elpaca.Pylk1y/elpaca/repos/elpaca/doc... Compiling /tmp/elpaca.Pylk1y/elpaca/repos/elpaca/doc/early-init.el... Compiling /tmp/elpaca.Pylk1y/elpaca/repos/elpaca/doc/init.el... Checking /tmp/elpaca.Pylk1y/elpaca/repos/elpaca/extensions... Compiling /tmp/elpaca.Pylk1y/elpaca/repos/elpaca/extensions/elpaca-use-package.el... Checking /tmp/elpaca.Pylk1y/elpaca/repos/elpaca/images... Checking /tmp/elpaca.Pylk1y/elpaca/repos/elpaca/test... Compiling /tmp/elpaca.Pylk1y/elpaca/repos/elpaca/test/elpaca-test.el... Done (Total of 11 files compiled, 3 skipped in 4 directories) Downloading MELPA recipes... Downloading MELPA recipes...100% Downloading NonGNU-devel ELPA... Downloading GNU-devel ELPA... Downloading NonGNU ELPA... Downloading GNU ELPA... Indenting region... Indenting region...done Indenting region... Indenting region...done "forge Access Git forges from Magit. source: MELPA url: https://github.com/magit/forge menu item recipe: ( :package \"forge\" :fetcher github :repo \"magit/forge\" :files (\"*.el\" \"*.el.in\" \"dir\" \"*.info\" \"*.texi\" \"*.texinfo\" \"doc/dir\" \"doc/*.info\" \"doc/*.texi\" \"doc/*.texinfo\" \"lisp/*.el\" (:exclude \".dir-locals.el\" \"test.el\" \"tests.el\" \"*-test.el\" \"*-tests.el\" \"LICENSE\" \"README*\" \"*-pkg.el\")) :source \"MELPA\") full recipe: ( :package \"forge\" ;; Inherited from elpaca-order-functions. :depth 1 :inherit t :protocol https ;; Inherited from elpaca-menu-item. :source \"MELPA\" :files (:defaults) :repo \"magit/forge\" :fetcher github) dependencies: emacs >= 25.1 compat >= 29.1.4.4 closql >= 20240125 dash >= 2.19.1 emacsql >= 20240124 ghub >= 20240101 let-alist >= 1.0.6 magit >= 20240125 markdown-mode >= 2.6 seq >= 2.24 transient >= 20240201 yaml >= 0.5.5 dependents: nil installed version: 0.3.2.50-git ede0aed statuses: (finished activation info byte-compilation autoloads linking unblocked blocked ref-checked-out cloning queued) files: $REPOS/forge/lisp/forge-bitbucket.el → $BUILDS/forge/forge-bitbucket.el $REPOS/forge/lisp/forge-commands.el → $BUILDS/forge/forge-commands.el $REPOS/forge/lisp/forge-core.el → $BUILDS/forge/forge-core.el $REPOS/forge/lisp/forge-db.el → $BUILDS/forge/forge-db.el $REPOS/forge/lisp/forge-gitea.el → $BUILDS/forge/forge-gitea.el $REPOS/forge/lisp/forge-github.el → $BUILDS/forge/forge-github.el $REPOS/forge/lisp/forge-gitlab.el → $BUILDS/forge/forge-gitlab.el $REPOS/forge/lisp/forge-gogs.el → $BUILDS/forge/forge-gogs.el $REPOS/forge/lisp/forge-issue.el → $BUILDS/forge/forge-issue.el $REPOS/forge/lisp/forge-list.el → $BUILDS/forge/forge-list.el $REPOS/forge/lisp/forge-notify.el → $BUILDS/forge/forge-notify.el $REPOS/forge/lisp/forge-post.el → $BUILDS/forge/forge-post.el $REPOS/forge/lisp/forge-pullreq.el → $BUILDS/forge/forge-pullreq.el $REPOS/forge/lisp/forge-repo.el → $BUILDS/forge/forge-repo.el $REPOS/forge/lisp/forge-revnote.el → $BUILDS/forge/forge-revnote.el $REPOS/forge/lisp/forge-semi.el → $BUILDS/forge/forge-semi.el $REPOS/forge/lisp/forge-topic.el → $BUILDS/forge/forge-topic.el $REPOS/forge/lisp/forge.el → $BUILDS/forge/forge.el log: [2024-02-28 19:35:44] Package queued [2024-02-28 19:35:44] Continued by: elpaca--process [2024-02-28 19:35:44] Cloning [2024-02-28 19:35:44] $git clone --depth 1 https://github.com/magit/forge.git /tmp/elpaca.Pylk1y/elpaca/repos/forge/ [2024-02-28 19:35:44] Resolving deltas: 100% (7/7), done. [2024-02-28 19:35:44] Continued by: elpaca--clone-process-sentinel [2024-02-28 19:35:44] Continued by: elpaca--configure-remotes [2024-02-28 19:35:44] Continued by: elpaca--checkout-ref [2024-02-28 19:35:44] Continued by: elpaca--dispatch-build-commands [2024-02-28 19:35:44] Queueing Dependencies [2024-02-28 19:35:45] Blocked by: (yaml markdown-mode magit ghub emacsql dash closql) [2024-02-28 19:35:45] Blocked by: (yaml markdown-mode magit ghub emacsql dash closql) [2024-02-28 19:35:45] Blocked by: (yaml markdown-mode magit ghub emacsql dash closql) [2024-02-28 19:35:45] Blocked by: (yaml magit ghub emacsql dash closql) [2024-02-28 19:35:46] Blocked by: (yaml magit ghub dash closql) [2024-02-28 19:35:46] Blocked by: (yaml magit ghub dash) [2024-02-28 19:35:46] Blocked by: (yaml magit dash) [2024-02-28 19:35:46] Blocked by: (yaml magit) [2024-02-28 19:35:49] Blocked by: (yaml) [2024-02-28 19:35:51] Continued by: elpaca--check-status [2024-02-28 19:35:51] Unblocked by: yaml [2024-02-28 19:35:51] Checking dependency versions [2024-02-28 19:35:51] Continued by: elpaca--check-version [2024-02-28 19:35:51] Linking build files [2024-02-28 19:35:51] Continued by: elpaca--link-build-files [2024-02-28 19:35:51] Build files linked [2024-02-28 19:35:51] Generating autoloads: /tmp/elpaca.Pylk1y/elpaca/builds/forge [2024-02-28 19:35:51] $/usr/bin/emacs -Q -L /tmp/elpaca.Pylk1y/elpaca/repos/elpaca/ -l /tmp/elpaca.Pylk1y/elpaca/repos/elpaca/elpaca.el --batch --eval (progn (setq gc-cons-percentage 1.0) (elpaca-generate-autoloads \"forge\" \"/tmp/elpaca.Pylk1y/elpaca/builds/forge\")) [2024-02-28 19:35:51] INFO Scraping files for loaddefs... [2024-02-28 19:35:51] INFO Scraping files for loaddefs...done [2024-02-28 19:35:51] GEN forge-autoloads.el [2024-02-28 19:35:51] Continued by: #[128 \"\\302\\301\\303\\300\\\"\\\"\\207\" [(\"Autoloads Generated\" nil) elpaca--process-sentinel apply append] 6 \" (fn &rest ARGS2)\"] [2024-02-28 19:35:51] Autoloads Generated [2024-02-28 19:35:51] Byte compiling [2024-02-28 19:35:51] $/usr/bin/emacs -q --batch --eval (let ((gc-cons-percentage 1.0) (native-comp-eln-load-path '(\"/home/n/.emacs.d/eln-cache/\" \"/usr/lib/emacs/30.0.50/native-lisp/\"))) (dolist (dir '(\"/tmp/elpaca.Pylk1y/elpaca/builds/forge\" \"/tmp/elpaca.Pylk1y/elpaca/builds/closql\" \"/tmp/elpaca.Pylk1y/elpaca/builds/emacsql\" \"/tmp/elpaca.Pylk1y/elpaca/builds/dash\" \"/tmp/elpaca.Pylk1y/elpaca/builds/ghub\" \"/tmp/elpaca.Pylk1y/elpaca/builds/treepy\" \"/tmp/elpaca.Pylk1y/elpaca/builds/magit\" \"/tmp/elpaca.Pylk1y/elpaca/builds/git-commit\" \"/tmp/elpaca.Pylk1y/elpaca/builds/with-editor\" \"/tmp/elpaca.Pylk1y/elpaca/builds/magit-section\" \"/tmp/elpaca.Pylk1y/elpaca/builds/markdown-mode\" \"/tmp/elpaca.Pylk1y/elpaca/builds/yaml\")) (let ((default-directory dir)) (add-to-list 'load-path dir) (normal-top-level-add-subdirs-to-load-path))) (byte-recompile-directory \"/tmp/elpaca.Pylk1y/elpaca/builds/forge\" 0 'force)) [2024-02-28 19:35:51] Checking /tmp/elpaca.Pylk1y/elpaca/builds/forge... [2024-02-28 19:35:51] Compiling /tmp/elpaca.Pylk1y/elpaca/builds/forge/forge-autoloads.el... [2024-02-28 19:35:51] Compiling /tmp/elpaca.Pylk1y/elpaca/builds/forge/forge-bitbucket.el... [2024-02-28 19:35:52] In toplevel form: [2024-02-28 19:35:52] forge-bitbucket.el:26:11: Error: Invalid slot name: \"#\", :column-widths [2024-02-28 19:35:52] Compiling /tmp/elpaca.Pylk1y/elpaca/builds/forge/forge-commands.el... [2024-02-28 19:35:52] In toplevel form: [2024-02-28 19:35:52] forge-commands.el:25:11: Error: forge-topic-mark-read is already defined as something else than a generic function [2024-02-28 19:35:52] Compiling /tmp/elpaca.Pylk1y/elpaca/builds/forge/forge-core.el... [2024-02-28 19:35:52] Compiling /tmp/elpaca.Pylk1y/elpaca/builds/forge/forge-db.el... [2024-02-28 19:35:52] Compiling /tmp/elpaca.Pylk1y/elpaca/builds/forge/forge-gitea.el... [2024-02-28 19:35:52] In toplevel form: [2024-02-28 19:35:52] forge-gitea.el:26:11: Error: forge-topic-mark-read is already defined as something else than a generic function [2024-02-28 19:35:52] Compiling /tmp/elpaca.Pylk1y/elpaca/builds/forge/forge-github.el... [2024-02-28 19:35:52] In toplevel form: [2024-02-28 19:35:52] forge-github.el:27:11: Error: forge-topic-mark-read is already defined as something else than a generic function [2024-02-28 19:35:52] Compiling /tmp/elpaca.Pylk1y/elpaca/builds/forge/forge-gitlab.el... [2024-02-28 19:35:52] In toplevel form: [2024-02-28 19:35:52] forge-gitlab.el:27:11: Error: forge-topic-mark-read is already defined as something else than a generic function [2024-02-28 19:35:52] Compiling /tmp/elpaca.Pylk1y/elpaca/builds/forge/forge-gogs.el... [2024-02-28 19:35:52] In toplevel form: [2024-02-28 19:35:52] forge-gogs.el:26:11: Error: forge-topic-mark-read is already defined as something else than a generic function [2024-02-28 19:35:52] Compiling /tmp/elpaca.Pylk1y/elpaca/builds/forge/forge-issue.el... [2024-02-28 19:35:52] In toplevel form: [2024-02-28 19:35:52] forge-issue.el:25:11: Error: forge-topic-mark-read is already defined as something else than a generic function [2024-02-28 19:35:52] Compiling /tmp/elpaca.Pylk1y/elpaca/builds/forge/forge-list.el... [2024-02-28 19:35:52] In toplevel form: [2024-02-28 19:35:52] forge-list.el:28:11: Error: forge-topic-mark-read is already defined as something else than a generic function [2024-02-28 19:35:52] Compiling /tmp/elpaca.Pylk1y/elpaca/builds/forge/forge-notify.el... [2024-02-28 19:35:52] In toplevel form: [2024-02-28 19:35:52] forge-notify.el:25:11: Error: forge-topic-mark-read is already defined as something else than a generic function [2024-02-28 19:35:52] Compiling /tmp/elpaca.Pylk1y/elpaca/builds/forge/forge-post.el... [2024-02-28 19:35:52] In toplevel form: [2024-02-28 19:35:52] forge-post.el:27:11: Error: forge-topic-mark-read is already defined as something else than a generic function [2024-02-28 19:35:52] Compiling /tmp/elpaca.Pylk1y/elpaca/builds/forge/forge-pullreq.el... [2024-02-28 19:35:52] In toplevel form: [2024-02-28 19:35:52] forge-pullreq.el:25:11: Error: forge-topic-mark-read is already defined as something else than a generic function [2024-02-28 19:35:52] Compiling /tmp/elpaca.Pylk1y/elpaca/builds/forge/forge-repo.el... [2024-02-28 19:35:52] In toplevel form: [2024-02-28 19:35:52] forge-repo.el:25:11: Error: forge-topic-mark-read is already defined as something else than a generic function [2024-02-28 19:35:52] Compiling /tmp/elpaca.Pylk1y/elpaca/builds/forge/forge-revnote.el... [2024-02-28 19:35:52] In toplevel form: [2024-02-28 19:35:52] forge-revnote.el:25:11: Error: forge-topic-mark-read is already defined as something else than a generic function [2024-02-28 19:35:52] Compiling /tmp/elpaca.Pylk1y/elpaca/builds/forge/forge-semi.el... [2024-02-28 19:35:52] In toplevel form: [2024-02-28 19:35:52] forge-semi.el:25:11: Error: forge-topic-mark-read is already defined as something else than a generic function [2024-02-28 19:35:52] Compiling /tmp/elpaca.Pylk1y/elpaca/builds/forge/forge-topic.el... [2024-02-28 19:35:52] In toplevel form: [2024-02-28 19:35:52] forge-topic.el:30:11: Error: forge-topic-mark-read is already defined as something else than a generic function [2024-02-28 19:35:52] Compiling /tmp/elpaca.Pylk1y/elpaca/builds/forge/forge.el... [2024-02-28 19:35:52] In toplevel form: [2024-02-28 19:35:52] forge.el:44:11: Error: forge-topic-mark-read is already defined as something else than a generic function [2024-02-28 19:35:52] Done (Total of 2 files compiled, 16 failed, 1 skipped) [2024-02-28 19:35:52] Continued by: #[128 \"\\302\\301\\303\\300\\\"\\\"\\207\" [(\"Byte compilation complete\" nil) elpaca--process-sentinel apply append] 6 \" (fn &rest ARGS2)\"] [2024-02-28 19:35:52] Byte compilation complete [2024-02-28 19:35:52] Compiling Info files [2024-02-28 19:35:52] Continued by: elpaca--compile-info [2024-02-28 19:35:52] Info source files not found [2024-02-28 19:35:52] Continued by: elpaca--dispatch-build-commands [2024-02-28 19:35:52] Activating package [2024-02-28 19:35:52] Package build dir added to load-path [2024-02-28 19:35:52] Caching autoloads [2024-02-28 19:35:52] Autoloads cached [2024-02-28 19:35:52] Continued by: elpaca--activate-package [2024-02-28 19:35:52] ✓ 8.091 secs " Test Env Elpaca e25aa78 HEAD -> master, origin/master, origin/HEAD installer: 0.6 emacs-version: GNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.41, cairo version 1.18.0) of 2024-02-28 git --version: git version 2.44.0 ```

The problem is that package.el often leaks already loaded old versions of a package into byte-code when installing a new version.

This would not apply here, as byte-compilation is done in a subprocess with only the package's dependencies made available on load-path. Any ideas?

progfolio commented 6 months ago

Looks like in my case it's due to the difference between the built-in version of transient.el currently shipping with Emacs 30.0.50 (0.3.2.50-git ede0aed) vs the MELPA version (0.5.3 beecdc8).

@tarsius Any chance of getting a transient version bump for the built-in version?

tarsius commented 6 months ago

Any chance of getting a transient version bump for the built-in version?

I can try to do that soon, but cannot promise anything.

it's due to the difference between the built-in version of transient.el currently shipping with Emacs 30.0.50 (0.3.2.50-git https://github.com/magit/forge/commit/ede0aeda1a7c0ef4713891a7b43f80bdbc7abbc7) vs the MELPA version (0.5.3 beecdc8).

That shouldn't matter. forge-pkg.el specifies that at least transient "version" 20240201 is needed. Does Elpaca not respect that?

I did some experiments a few days ago. From my first interactive attempt I remember an error along the lines of "version -1 does not satisfy 20240201". I then tried elpaca-test, which failed to install transient. I then used a modified elpaca-test, which first installed transient explicitly and then forge. The latter worked.

progfolio commented 6 months ago

Jonas Bernoulli @.***> writes:

it's due to the difference between the built-in version of transient.el currently shipping with Emacs 30.0.50 (0.3.2.50-git ede0aed) vs the MELPA version (0.5.3 beecdc8).

That shouldn't matter. forge-pkg.el specifies that at least transient "version" 20240201 is needed. Does Elpaca not respect that? [...] I then used a modified elpaca-test, which first installed transient explicitly and then forge. The latter worked.

The installation will work, but loading the package will break at runtime. One of the flaws of the YYYYMMDD style version requirement is there's no good way to know what date each of those built-in packages corresponds to. Elpaca tries to fall back to the emacs-version relase date (as there is nothing else to compare to). Obviously, that's not perfect, but it's the best solution I can think of.

I did some experiments a few days ago. From my first interactive attempt I remember an error along the lines of "version -1 does not satisfy 20240201".

Hadn't seen that error myself, but there is another Emacs bug which is affecting transient.el:

https://lists.gnu.org/archive/html/bug-gnu-emacs/2024-03/msg00177.html

Long story short, transient.el is not a member of package--builtin-versions for Emacs versions 28.1 through 29.2. Currently package.el doesn't recognize it as a builtin package on those versions. It was causing transient to fail to install via Elpaca, so I've added a workaround to Elpaca so it's properly recognized.

Any chance of getting a transient version bump for the built-in version? I can try to do that soon, but cannot promise anything.

Thanks. No rush, as I can work around it with Elpaca.