Subject: [bug#42525] [PATCH 1/2] gnu: Add emacs-pretty-hydra.

From: "LaFreniere, Joseph" <[email-masked]>
Date: Sat, 25 Jul 2020 09:57:45 -0500

Oleg Pykhalov <[email-masked]> writes:
> Joseph LaFreniere <[email-masked]> writes:
>
>> Patch file is attached.  Note that `guix lint` reports "the 
>> source file name
>> should contain the package name";  I'm not sure how to resolve 
>> that.
>
> You could fix this by providing a ‘(file-name (git-file-name 
> name
> version))’ as in other Emacs packages.

Thanks.  Not sure how I missed that.

> 'emacs-build-system' handles '*.el' files, unless you exclude 
> them with
> the recipe bellow.  :-)

Thank you for the tip.  I have changed the include to an exclude.

> Also could you take a look on running a test suite?

The repo's test suite tests both pretty-hydra and 
major-mode-hydra.  Since major-mode-hydra is inheriting from and 
depends on this recipe, I'm assuming it would be rebuilt any time 
the pretty-hydra recipe changes.  Just to minimize the amount of 
work prying apart the repository I have left all of the tests to 
be run in the recipe for major-mode-hydra.  The updated patch for 
that will be following shortly.

--
Joseph LaFreniere
>From a08a763c0a7aa09349bdc9e65ac2d27a3c640a54 Mon Sep 17 00:00:00 2001
From: Joseph LaFreniere <[email-masked]>
Date: Sat, 18 Jul 2020 12:49:15 -0500
Subject: [PATCH 1/2] gnu: Add emacs-pretty-hydra.

* gnu/packages/emacs-xyz.scm (emacs-pretty-hydra): New variable.
---
 gnu/packages/emacs-xyz.scm | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index db395361b9..c11959dbe2 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -649,6 +649,33 @@ process, passing on the arguments as command line arguments.")
        "Magit-annex adds a few git-annex operations to the Magit interface.")
       (license license:gpl3+))))
 
+(define-public emacs-pretty-hydra
+  (package
+    (name "emacs-pretty-hydra")
+    (version "0.2.2")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/jerrypnz/major-mode-hydra.el")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "08a15knkdq35pzjq82imff016fbfdib5q4glg2xmdy2b5fnk7jqa"))))
+    (build-system emacs-build-system)
+    (propagated-inputs
+     `(("emacs-dash" ,emacs-dash)
+       ("emacs-hydra" ,emacs-hydra)
+       ("emacs-s" ,emacs-s)))
+    (arguments
+     `(#:exclude (cons "^major-mode-hydra\\.el" %default-exclude)))
+    (home-page "https://github.com/jerrypnz/major-mode-hydra.el")
+    (synopsis "Create nice-looking hydras")
+    (description
+     "This package provides the macro @code{pretty-hydra-define} to define
+hydras with one column per group of heads.")
+    (license license:gpl3+)))
+
 (define-public emacs-minions
   (package
     (name "emacs-minions")
-- 
2.27.0