diff mbox series

[bug#62503] emacs-beframe

Message ID a4231f1f76eb2fc09de3bc9a64add78b@posteo.net
State New
Headers show
Series [bug#62503] emacs-beframe | expand

Commit Message

sourcepluck@posteo.net March 28, 2023, 1:44 p.m. UTC
Hello wonderful maintainer(s) of Guix,

Jamie Cullen here. This is my first ever patch, first ever commit, first 
ever packaged package, first ever time doing anything mildly useful with 
Git, etc etc. Excitement is tantamount here.

Please don't hesitate to tell me about even the smallest modification on 
my side, and any length of an explanation here via mail. I'm ready to 
put the work in to get this lovely package right. At all times during 
the packaging process, I was vascillating between understanding 20-80% 
of what I was doing.

We got there though, and everything seems to be passing the tests.

I couldn't check "guix edit", I think because my EDITOR environment 
variable wasn't set up properly. I messed with it for ten minutes, it 
wouldn't work, but I'm pretty sure it was just a thing on my side and 
that the package is fine, because all other tests looked good -- after 
loads of faffing around of course, and carefully developing a loving 
relationship with the generous error messages being thrown at me :)

Thanks so much for all your work, you people are legends. I love Guix, 
and can see worlds opening up to me. Keep up the good fight.

Jamie

Comments

Nicolas Goaziou March 30, 2023, 8:50 p.m. UTC | #1
Hello,

sourcepluck@posteo.net writes:

> Jamie Cullen here. This is my first ever patch, first ever commit,
> first ever packaged package, first ever time doing anything mildly
> useful with Git, etc etc. Excitement is tantamount here.

This sure is a good first patch. Since I had only nitpicks to write,
I applied it directly. Thank you!

> Please don't hesitate to tell me about even the smallest modification
> on my side, and any length of an explanation here via mail.

I wrote below what small changes I made to your package definition.

> +(define-public emacs-beframe
> +  (package
> +    (name "emacs-beframe")
> +    (version "0.2.0")
> +    (source (origin
> +              (method git-fetch)
> +              (uri (git-reference
> +                    (url "https://git.sr.ht/~protesilaos/beframe")
> +                    (commit "edfab6eefe4ac35cd8d1ed87fc7f670496d25e40")))

We don't usually insert commit hashes here, but rather bind hash to
`commit' and put (commit commit) above.

I a comment, I also mentioned the commit was actually a version bump,
which is the reason why there is no revision number.

> +              (file-name (git-file-name name version))
> +              (sha256
> +               (base32
> +                "0sd8r3icaj2gl7f62fyzlwkkb05mc3cwsqgicw0n1x07s5ir3129"))))
> +    (build-system emacs-build-system)
> +    (native-inputs (list texinfo))

Nitpick: native inputs are usually listed after arguments.

> +    (arguments
> +     (list
> +      #:phases
> +      #~(modify-phases
> +            %standard-phases
> +          (add-after 'install 'makeinfo
> +            (lambda* (#:key outputs #:allow-other-keys)

Since you don't use `output' key, (lambda _ ...) is sufficient.

> +              (install-file
> +               "beframe.info"
> +               (string-append #$output "/share/info")))))))

Nitpick: I think a better indentation is:

  (install-file "beframe.info"
                (string-append #$output "/share/info"))

> +    (description
> +     "Beframe enables a frame-oriented Emacs workflow where each frame has
> +access to the list of buffers visited therein.  In the interest of brevity, we
> +call buffers that belong to frames \"beframed\".  Producing multiple
> frames does

In Texinfo, double quotes are ``...'', not "...".

Regards,
diff mbox series

Patch

From 379b0ae24c900d3bb129039921e5e5425db57692 Mon Sep 17 00:00:00 2001
From: Jamie Cullen <sourcepluck@posteo.net>
Date: Tue, 28 Mar 2023 15:36:48 +0200
Subject: [PATCH 1/1] gnu: Add emacs-beframe.

---
 gnu/packages/emacs-xyz.scm | 41 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)

diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index da2856abc8..8c4f2dc78d 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -15931,6 +15931,47 @@  (define-public emacs-tmr
     (license (list license:gpl3+
                    license:fdl1.3+)))) ;GFDLv1.3+ for the manual
 
+(define-public emacs-beframe
+  (package
+    (name "emacs-beframe")
+    (version "0.2.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://git.sr.ht/~protesilaos/beframe")
+                    (commit "edfab6eefe4ac35cd8d1ed87fc7f670496d25e40")))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0sd8r3icaj2gl7f62fyzlwkkb05mc3cwsqgicw0n1x07s5ir3129"))))
+    (build-system emacs-build-system)
+    (native-inputs (list texinfo))
+    (arguments
+     (list
+      #:phases
+      #~(modify-phases
+            %standard-phases
+          (add-after 'install 'makeinfo
+            (lambda* (#:key outputs #:allow-other-keys)
+              (invoke "emacs"
+                      "--batch"
+                      "--eval=(require 'ox-texinfo)"
+                      "--eval=(find-file \"README.org\")"
+                      "--eval=(org-texinfo-export-to-info)")
+              (install-file
+               "beframe.info"
+               (string-append #$output "/share/info")))))))
+    (home-page "https://protesilaos.com/emacs/beframe")
+    (synopsis "Isolate Emacs buffers per frame")
+    (description
+     "Beframe enables a frame-oriented Emacs workflow where each frame has
+access to the list of buffers visited therein.  In the interest of brevity, we
+call buffers that belong to frames \"beframed\".  Producing multiple frames does
+not generate multiple buffer lists.  There still is only one global list of
+buffers.  Beframing them simply filters the list.")
+    (license (list license:gpl3+
+                   license:fdl1.3+)))) ; GFDLv1.3+ for the manual
+
 (define-public emacs-gn-mode
   (package
     (name "emacs-gn-mode")
-- 
2.39.2