Subject: Re: Magit/Transient error message

From: aurtzy <[email-masked]>
Date: Tue, 30 Jul 2024 18:50:12 -0400

Hi Daniel,

 > Running M-x magit-branch generates the following error:
 >
 > transient-setup: Symbol’s function definition is void:
 > transient-prefix-object
 >
 > In order to reproduce:
 >
 > guix shell emacs emacs-magit -- emacs -Q
 >
 > M-x magit-version
 > Magit 3.3.0-8.538cb2f, Transient 0.7.3, Git 2.45.2, Emacs 29.4, gnu/linux

It looks like this is because emacs is actually using the built-in (older)
version of transient, while magit relies on a function from a newer version.

Evaluating the following definition from the newer transient source code 
fixes
this particular issue for me (I've put it in my init.el for the time being):

#+begin_src lisp
   (defun transient-prefix-object ()
     (or transient--prefix transient-current-prefix))
#+end_src

This sounds similar to another issue with embark and org [1], however in 
that
report it was because emacs-org was not included in the environment; in this
case, the newer version of transient is already an input of magit in the 
guix
package, so I'm not sure what's happening here.

[1] https://github.com/oantolin/embark/issues/723

Cheers,

aurtzy