Subject: Re: [bug#40417] Add emacs-magit-annex

From: Christopher Lemmer Webber <[email-masked]>
Date: Mon, 27 Apr 2020 15:11:19 -0400

Kyle Meyer writes:

> Christopher Lemmer Webber <[email-masked]> writes:
>
>> Kyle Meyer writes:
>
>>> It looks like emacs-magit uses a revision that follows the popup to
>>> transient switch that happened after the 2.90.1 release.  Magit-annex's
>>> master branch has been updated to work with transient and will be
>>> released along with the next release of Magit.
>>
>> That may explain why I had to manually insert the @ keybinding it
>> supposedly should have done automatically.
>
> Correct.
>
>> I'm a little confused since I haven't been following magit though.
>> "popup to transient switch"?
>
> Sorry, here's more context: Magit's popup interface used to be defined
> with Magit-Popup.  Jonas Bernoulli wrote Transient to replace
> Magit-Popup [^1].  As of 1ed3febf (Merge branch 'transient' [#3728],
> 2019-02-14), all of Magit's popups have been rewritten with Transient.
> That change hasn't made it into a release yet, but it happened before
> the revision that emacs-magit is built from.
>
> [^1]: https://emacsair.me/2019/02/14/transient-0.1/

Ok, revised patch.  It works fine, though I am getting these errors:

  Compiling /gnu/store/3lc8vna2n2nhcdkfiqldg426ngjmzjnm-emacs-magit-annex-1.7.1-1.0bc9673/share/emacs/site-lisp/magit-annex-autoloads.el...

  In toplevel form:
  magit-annex-autoloads.el:10:45:Warning: reference to free variable
      ‘magit-mode-map’
  
  In end of data:
  magit-annex-autoloads.el:60:1:Warning: the function ‘transient-append-suffix’
      is not known to be defined.
  Compiling /gnu/store/3lc8vna2n2nhcdkfiqldg426ngjmzjnm-emacs-magit-annex-1.7.1-1.0bc9673/share/emacs/site-lisp/magit-annex.el...
  Loading /gnu/store/h9ihmqaf15vw70p6hxfqb4s48wwl5cn1-emacs-magit-2.90.1-3.c761d28/share/emacs/site-lisp/magit-version.el (source)...
  
  In end of data:
  magit-annex.el:834:1:Warning: the function ‘magit-log-setup-buffer’ is not
      known to be defined.
  Done (Total of 2 files compiled)

That seems strange/alarming.

Nonetheless, it seems to work fine... so not sure why we're getting that
error then.

One more question... emacs-xyz.scm seems inconsistent.  We have both of
these input styles:

      (propagated-inputs
       `(("magit" ,emacs-magit)
         ("transient" ,emacs-transient)))

      (propagated-inputs
       `(("emacs-magit" ,emacs-magit)
         ("emacs-transient" ,emacs-transient)))

The latter is more common amongst the rest of Guix... anyone have a
guess as to why we've got this variant of package input styles across
Guix's Emacs packages tho?

From 82f83b5ca6d955130f6e4a3324d54229d225556b Mon Sep 17 00:00:00 2001
From: Christopher Lemmer Webber <[email-masked]>
Date: Thu, 2 Apr 2020 15:03:27 -0400
Subject: [PATCH] gnu: Add emacs-magit-annex.

* gnu/packages/emacs-xyz.scm (emacs-magit-annex): New variable.
---
 gnu/packages/emacs-xyz.scm | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index a0275cbe18..c56766047d 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -475,6 +475,31 @@ these arguments.  The prototypical use is for the command to call an external
 process, passing on the arguments as command line arguments.")
     (license license:gpl3+)))
 
+(define-public emacs-magit-annex
+  (let ((commit "0bc96737634e78ac7c7f8a3f73190531c0890914")
+        (revision "1"))
+    (package
+      (name "emacs-magit-annex")
+      (version (git-version "1.7.1" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/magit/magit-annex.git")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "1lm8412n2046fz8n7rfbadyww2074lsxq0w4gm1x1alraz5im5h4"))))
+      (build-system emacs-build-system)
+      (propagated-inputs
+       `(("magit" ,emacs-magit)
+         ("transient" ,emacs-transient)))
+      (home-page "https://github.com/magit/magit-annex/")
+      (synopsis "Git-annex support for Magit")
+      (description
+       "Magit-annex adds a few git-annex operations to the Magit interface.")
+      (license license:gpl3+))))
+
 (define-public emacs-minions
   (package
     (name "emacs-minions")
-- 
2.26.0