emacs-evil / evil-magit

Black magic or evil keys for magit
https://github.com/justbur/evil-magit
GNU General Public License v3.0
272 stars 16 forks source link

void function transient-suffix-put when loading from use- #68

Closed OZoneGuy closed 4 years ago

OZoneGuy commented 4 years ago

I am using use-package to load evil-magit.

evil and magit are both loaded.

Each time I try to load the .emacs file I get this error:

Error (use-package): evil-magit/:catch: Symbol’s function definition is void: transient-suffix-put

Running emacs --debug-inti gives me the following trace:

Debugger entered--Lisp error: (void-function transient-suffix-put)
  transient-suffix-put(magit-branch "x" :key "X")
  evil-magit-change-popup-key(magit-branch "x" "X" magit-branch-reset)
  apply(evil-magit-change-popup-key (magit-branch "x" "X" magit-branch-reset))
  evil-magit-adjust-popups()
  evil-magit-init()
  require(evil-magit nil t)
  (not (require (quote evil-magit) nil t))
  (if (not (require (quote evil-magit) nil t)) (display-warning (quote use-package) (format "Cannot load %s" (quote evil-magit)) :error))
  (lambda nil (if (not (require (quote evil-magit) nil t)) (display-warning (quote use-package) (format "Cannot load %s" (quote evil-magit)) :error)))()
  eval-after-load(magit (lambda nil (if (not (require (quote evil-magit) nil t)) (display-warning (quote use-package) (format "Cannot load %s" (quote evil-magit)) :error))))
  (lambda nil (eval-after-load (quote magit) (function (lambda nil (if (not (require (quote evil-magit) nil t)) (display-warning (quote use-package) (format "Cannot load %s" (quote evil-magit)) :error))))))()
  eval-after-load(evil (lambda nil (eval-after-load (quote magit) (function (lambda nil (if (not (require ... nil t)) (display-warning (quote use-package) (format "Cannot load %s" ...) :error)))))))
  (condition-case err (eval-after-load (quote evil) (function (lambda nil (eval-after-load (quote magit) (function (lambda nil (if ... ...))))))) ((debug error) (funcall use-package--warning13 :catch err)))
  (progn (defvar use-package--warning13 (function (lambda (keyword err) (let ((msg (format "%s/%s: %s" ... keyword ...))) (display-warning (quote use-package) msg :error))))) (condition-case err (eval-after-load (quote evil) (function (lambda nil (eval-after-load (quote magit) (function (lambda nil ...)))))) ((debug error) (funcall use-package--warning13 :catch err))))
  (if (not (member nil (mapcar (function featurep) (quote (magit evil))))) (progn (defvar use-package--warning13 (function (lambda (keyword err) (let ((msg ...)) (display-warning (quote use-package) msg :error))))) (condition-case err (eval-after-load (quote evil) (function (lambda nil (eval-after-load (quote magit) (function ...))))) ((debug error) (funcall use-package--warning13 :catch err)))))
  eval-buffer(#<buffer  *load*> nil "/home/omar/.emacs" nil t)  ; Reading at buffer position 4577
  load-with-code-conversion("/home/omar/.emacs" "/home/omar/.emacs" t t)
  load("~/.emacs" t t)
  #f(compiled-function () #<bytecode 0x1df989>)()
  command-line()
  normal-top-level()

It looks like an issue with the function (transient-suffix-put).

Related function inside of .emacs:

(use-package evil-magit
  :ensure t
  :requires (magit evil)
  :after (magit evil))

A very similar error appears when loading the package via (require 'evil-magit):

Symbol's function definition is void: transient-suffix-put

It seems that transient-suffix-put is the source of the issue.

PS. if there are some issues with my formatting please let me know. This is my first issue submit :)

OZoneGuy commented 4 years ago

After some investigation, the function seems to be part of magit. Although, greping through the current repo only yielded transient-suffix inside lisp/magit-submodule.el. Also, looking through the downloaded package from melpa did not show anything starting with transient-suffix.

The command used to grep was the following(inside the magit directory):

grep -Hr "transient-suffix*" .

The line function responsible for this error here

justbur commented 4 years ago

I think you have an old version of magit.

On Sat, Aug 10, 2019 at 8:17 PM omar notifications@github.com wrote:

After some investigation, the function seems to be part of magit. Although, greping through the current repo only yielded transient-suffix inside lisp/magit-submodule.el. Also, looking through the downloaded package from melpa did not show anything starting with transient-suffix.

The command used to grep was the following(inside the magit directory):

grep -Hr "transient-suffix*" .

The line function responsible for this error here https://github.com/emacs-evil/evil-magit/blob/6a32e4359cbd2803bafb7134cb6df312644ac986/evil-magit.el#L573

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/emacs-evil/evil-magit/issues/68?email_source=notifications&email_token=AAQ3E7RVMMMM27ZFMRJDKI3QD5LAJA5CNFSM4IK2IE32YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD4AXMNY#issuecomment-520189495, or mute the thread https://github.com/notifications/unsubscribe-auth/AAQ3E7RGXVOBWGJUXX5C37LQD5LAJANCNFSM4IK2IE3Q .

OZoneGuy commented 4 years ago

And that seems to the issue, thank you very much. It is funny though, I just installed emacs a few days ago. I would think that the packages will be freshly installed and up to date! But apparently, they were not.

For those having the same issue, you need to update your packages!