unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#58730] [PATCH] Split emacs-piem and emacs-git-email
@ 2022-10-23  5:49 Declan Tsien
  2022-10-25  1:15 ` Declan Tsien
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Declan Tsien @ 2022-10-23  5:49 UTC (permalink / raw)
  To: 58730


[-- Attachment #1.1: Type: text/plain, Size: 297 bytes --]


Currently, emacs-piem and emacs-git-email bundle multiple lisp files with
identical functionality but for different tastes. Split into separated
packages would avoid pulling unnecessary dependencies into user profile.

Also fix info manual for emacs-git-email and add info-manual for
emacs-piem


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.2: 0001-gnu-emacs-git-email-Fix-makeinfo.patch --]
[-- Type: text/x-patch, Size: 1063 bytes --]

From 6b44b4998369f01365c0ddb1b935072cfefcbe1b Mon Sep 17 00:00:00 2001
From: Declan Tsien <declantsien@riseup.net>
Date: Sun, 23 Oct 2022 11:40:07 +0800
Subject: [PATCH 1/4] gnu: emacs-git-email: Fix makeinfo.

* gnu/packages/emacs-xyz.scm (emacs-git-email): Fix makeinfo.
---
 gnu/packages/emacs-xyz.scm | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 06ec9dd904..be6d4c6ba3 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -17341,7 +17341,8 @@ (define-public emacs-git-email
                (delete-file "git-email-piem.el")))
            (add-before 'install 'makeinfo
              (lambda _
-               (invoke "makeinfo" "doc/git-email.texi"))))))
+               (invoke "make" "doc/git-email.info")
+               (rename-file "doc/git-email.info" "git-email.info"))))))
       (native-inputs
        (list texinfo))
       (propagated-inputs

base-commit: 1f734a6f0a7db5b0e12091a0c869c5c4810ac80e
-- 
2.38.0


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.3: 0002-gnu-emacs-piem-Add-build-info-manual-phase.patch --]
[-- Type: text/x-patch, Size: 1352 bytes --]

From 3d6c28a0cbeed2f38d91cd31155a257578675f6d Mon Sep 17 00:00:00 2001
From: Declan Tsien <declantsien@riseup.net>
Date: Sun, 23 Oct 2022 11:42:19 +0800
Subject: [PATCH 2/4] gnu: emacs-piem: Add build-info-manual phase.

* gnu/packages/emacs-xyz.scm (emacs-piem): Add build-info-manual phase.
[native-inputs]: Add texinfo.
---
 gnu/packages/emacs-xyz.scm | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index be6d4c6ba3..bc56067a7c 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -7151,9 +7151,15 @@ (define-public emacs-piem
                  (lambda* (#:key inputs #:allow-other-keys)
                    (emacs-substitute-variables "piem-b4.el"
                      ("piem-b4-b4-executable"
-                      (search-input-file inputs "/bin/b4"))))))))
+                      (search-input-file inputs "/bin/b4")))))
+               (add-after 'unpack 'build-info-manual
+                 (lambda _
+                   (invoke "make" "Documentation/piem.info")
+                   (rename-file "Documentation/piem.info" "piem.info"))))))
     (inputs
      (list b4))
+    (native-inputs
+     (list texinfo))
     (propagated-inputs
      (list emacs-elfeed
            emacs-notmuch
-- 
2.38.0


[-- Attachment #1.4: 0003-gnu-emacs-piem-Split-into-multiple-separated-package.patch --]
[-- Type: text/x-patch, Size: 7563 bytes --]

From ff45839e29bad8bd4fa5d9b4868b3f68fe8d300d Mon Sep 17 00:00:00 2001
From: Declan Tsien <declantsien@riseup.net>
Date: Sun, 23 Oct 2022 11:46:37 +0800
Subject: [PATCH 3/4] gnu: emacs-piem: Split into multiple separated packages.

emacs-piem currently bundles multiple lisp files with identical functionality
but for different tastes. Split into separated packages would avoid pulling
unnecessary dependencies into user profile.

* gnu/packages/emacs-xyz.scm (emacs-piem): Split into multiple separated
packages.
* gnu/packages/emacs-xyz.scm (emacs-piem-b4): New variable.
* gnu/packages/emacs-xyz.scm (emacs-piem-elfeed): New variable.
* gnu/packages/emacs-xyz.scm (emacs-piem-eww): New variable.
* gnu/packages/emacs-xyz.scm (emacs-piem-gnus): New variable.
* gnu/packages/emacs-xyz.scm (emacs-piem-notmuch): New variable.
* gnu/packages/emacs-xyz.scm (emacs-piem-rmail): New variable.
* gnu/packages/emacs-xyz.scm (emacs-piem-lei): New variable.
---
 gnu/packages/emacs-xyz.scm | 139 +++++++++++++++++++++++++++++--------
 1 file changed, 109 insertions(+), 30 deletions(-)

diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index bc56067a7c..3f62e92116 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -7134,45 +7134,124 @@ (define-public emacs-piem
   (package
     (name "emacs-piem")
     (version "0.4.0")
-    (source
-     (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://git.kyleam.com/piem")
-             (commit (string-append "v" version))))
-       (file-name (string-append name "-" version "-checkout"))
-       (sha256
-        (base32 "0wr6n6wvznngjdp4c0pmdr4xz05dark0kxi5svzhzxsg3rdaql3z"))))
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://git.kyleam.com/piem")
+                    (commit (string-append "v" version))))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32
+                "0wr6n6wvznngjdp4c0pmdr4xz05dark0kxi5svzhzxsg3rdaql3z"))))
     (build-system emacs-build-system)
     (arguments
-     (list #:phases
-           #~(modify-phases %standard-phases
-               (add-after 'unpack 'configure
-                 (lambda* (#:key inputs #:allow-other-keys)
-                   (emacs-substitute-variables "piem-b4.el"
-                     ("piem-b4-b4-executable"
-                      (search-input-file inputs "/bin/b4")))))
-               (add-after 'unpack 'build-info-manual
-                 (lambda _
-                   (invoke "make" "Documentation/piem.info")
-                   (rename-file "Documentation/piem.info" "piem.info"))))))
-    (inputs
-     (list b4))
-    (native-inputs
-     (list texinfo))
-    (propagated-inputs
-     (list emacs-elfeed
-           emacs-notmuch
-           emacs-transient))
-    (home-page "https://docs.kyleam.com/piem")
+     (list #:exclude #~(cons* "^piem-b4.el"
+                              "^piem-elfeed.el"
+                              "^piem-eww.el"
+                              "^piem-gnus.el"
+                              "^piem-lei.el"
+                              "^piem-notmuch.el"
+                              "^piem-rmail.el"
+                              %default-exclude)
+           #:phases #~(modify-phases %standard-phases
+                        (add-after 'unpack 'build-info-manual
+                          (lambda _
+                            (invoke "make" "Documentation/piem.info")
+                            (rename-file "Documentation/piem.info" "piem.info"))))))
+    (native-inputs (list texinfo))
+    (propagated-inputs (list emacs-transient))
+    (home-page "https://docs.kyleam.com/piem/")
     (synopsis "Glue for working with public-inbox archives")
-    (description "This packages provides a collection of Emacs libraries for
+    (description
+     "This package provides a collection of Emacs libraries for
 working with public-inbox archives.  As much of the hard work here is already
 done by other Emacs libraries—things like mail clients, news readers, Git
 interfaces, and even web browsers—piem is mostly about bridging some of these
 parts for convenience.")
     (license license:gpl3+)))
 
+(define-public emacs-piem-b4
+  (package
+    (inherit emacs-piem)
+    (name "emacs-piem-b4")
+    (inputs (list b4))
+    (propagated-inputs (list emacs-piem))
+    (arguments
+     (list #:include #~(list "piem-b4.el")
+           #:phases #~(modify-phases %standard-phases
+                        (add-after 'unpack 'configure
+                          (lambda* (#:key inputs #:allow-other-keys)
+                            (emacs-substitute-variables "piem-b4.el"
+                                                        ("piem-b4-b4-executable"
+                                                         (search-input-file
+                                                          inputs "/bin/b4"))))))))
+    (synopsis "Emacs interface to the b4 tool")
+    (description
+     "This library provides a @code{emacs-transient} interface to @code{b4}.  It is
+documented in the piem manual.")))
+
+(define-public emacs-piem-elfeed
+  (package
+    (inherit emacs-piem)
+    (name "emacs-piem-elfeed")
+    (propagated-inputs (list emacs-piem emacs-elfeed))
+    (arguments
+     (list #:include #~(list "piem-elfeed.el")))
+    (synopsis "Elfeed integration for piem")
+    (description
+     "This library provides @code{emacs-elfeed} integration for @code{piem}.")))
+
+(define-public emacs-piem-eww
+  (package
+    (inherit emacs-piem)
+    (name "emacs-piem-eww")
+    (propagated-inputs (list emacs-piem))
+    (arguments
+     (list #:include #~(list "piem-eww.el")))
+    (synopsis "EWW integration for piem")
+    (description "This library provides EWW integration for @code{piem}.")))
+
+(define-public emacs-piem-gnus
+  (package
+    (inherit emacs-piem)
+    (name "emacs-piem-gnus")
+    (propagated-inputs (list emacs-piem))
+    (arguments
+     (list #:include #~(list "piem-gnus.el")))
+    (synopsis "Gnus integration for piem")
+    (description "This library provides Gnus integration for @code{piem}.")))
+
+(define-public emacs-piem-notmuch
+  (package
+    (inherit emacs-piem)
+    (name "emacs-piem-notmuch")
+    (propagated-inputs (list emacs-piem emacs-notmuch))
+    (arguments
+     (list #:include #~(list "piem-notmuch.el")))
+    (synopsis "Notmuch integration for piem")
+    (description
+     "This library provides @code{emacs-notmuch} integration for @code{piem}.")))
+
+(define-public emacs-piem-rmail
+  (package
+    (inherit emacs-piem)
+    (name "emacs-piem-rmail")
+    (propagated-inputs (list emacs-piem))
+    (arguments
+     (list #:include #~(list "piem-rmail.el")))
+    (synopsis "Rmail integration for piem")
+    (description "This library provides Rmail integration for @code{piem}.")))
+
+(define-public emacs-piem-lei
+  (package
+    (inherit emacs-piem)
+    (name "emacs-piem-lei")
+    (propagated-inputs (list emacs-piem))
+    (arguments
+     (list #:include #~(list "piem-lei.el")))
+    (synopsis "Lei integration for piem")
+    (description "This library provides lei integration for @code{piem}.")))
+
 (define-public emacs-ert-expectations
   (package
     (name "emacs-ert-expectations")
-- 
2.38.0


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.5: 0004-gnu-emacs-git-email-Split-into-multiple-separated-pa.patch --]
[-- Type: text/x-patch, Size: 6632 bytes --]

From d0c79a8c055c3818c1ea97e4cf0aa373303025e5 Mon Sep 17 00:00:00 2001
From: Declan Tsien <declantsien@riseup.net>
Date: Sun, 23 Oct 2022 11:48:13 +0800
Subject: [PATCH 4/4] gnu: emacs-git-email: Split into multiple separated
 packages.

emacs-git-email currently bundles multiple lisp files with identical
functionality but for different tastes. Split into separated packages would
avoid pulling unnecessary dependencies into user profile.

* gnu/packages/emacs-xyz.scm (emacs-git-email): Split into multiple separated
packages.
* gnu/packages/emacs-xyz.scm (emacs-git-email-gnus): New Variable.
* gnu/packages/emacs-xyz.scm (emacs-git-email-magit): New Variable.
* gnu/packages/emacs-xyz.scm (emacs-git-email-mu4e): New Variable.
* gnu/packages/emacs-xyz.scm (emacs-git-email-notmuch): New Variable.
* gnu/packages/emacs-xyz.scm (emacs-git-email-piem): New Variable.
---
 gnu/packages/emacs-xyz.scm | 115 +++++++++++++++++++++++++++++--------
 1 file changed, 90 insertions(+), 25 deletions(-)

diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 3f62e92116..0bbae04f08 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -17405,39 +17405,104 @@ (define-public emacs-git-email
     (package
       (name "emacs-git-email")
       (version (git-version "0.2.0" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://git.sr.ht/~yoctocell/git-email")
-               (commit commit)))
-         (patches
-          (search-patches "emacs-git-email-missing-parens.patch"))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32 "1lk1yds7idgawnair8l3s72rgjmh80qmy4kl5wrnqvpmjrmdgvnx"))))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://git.sr.ht/~yoctocell/git-email")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "1lk1yds7idgawnair8l3s72rgjmh80qmy4kl5wrnqvpmjrmdgvnx"))))
       (build-system emacs-build-system)
       (arguments
-       `(#:phases
-         (modify-phases %standard-phases
-           ;; piem is not yet packaged in Guix.
-           (add-after 'unpack 'remove-piem
-             (lambda _
-               (delete-file "git-email-piem.el")))
-           (add-before 'install 'makeinfo
-             (lambda _
-               (invoke "make" "doc/git-email.info")
-               (rename-file "doc/git-email.info" "git-email.info"))))))
-      (native-inputs
-       (list texinfo))
-      (propagated-inputs
-       (list mu emacs-magit emacs-notmuch))
+       (list #:exclude #~(cons* "^git-email-gnus.el"
+                                "^git-email-magit.el"
+                                "^git-email-mu4e.el"
+                                "^git-email-notmuch.el"
+                                "^git-email-piem.el"
+                                %default-exclude)
+             #:phases #~(modify-phases %standard-phases
+                          (add-before 'install 'makeinfo
+                            (lambda _
+                              (invoke "make" "doc/git-email.info")
+                              (rename-file "doc/git-email.info"
+                                           "git-email.info"))))))
+      (native-inputs (list texinfo))
       (license license:gpl3+)
       (home-page "https://sr.ht/~yoctocell/git-email")
       (synopsis "Format and send Git patches in Emacs")
       (description "This package provides utilities for formatting and
 sending Git patches via Email, without leaving Emacs."))))
 
+(define-public emacs-git-email-gnus
+  (package
+    (inherit emacs-git-email)
+    (name "emacs-git-email-gnus")
+    (propagated-inputs (list emacs-git-email))
+    (arguments
+     (list #:include #~(list "git-email-gnus.el")))
+    (synopsis "Gnus integration for git-email")
+    (description
+     "This library sets some variables for git-email to make it work
+better with Gnus.")))
+
+(define-public emacs-git-email-magit
+  (package
+    (inherit emacs-git-email)
+    (name "emacs-git-email-magit")
+    (propagated-inputs (list emacs-git-email emacs-magit))
+    (arguments
+     (list #:include #~(list "git-email-magit.el")))
+    (synopsis "Magit integration for git-email")
+    (description
+     "This library offers transient commands in the magit-status buffer
+for interacting with git-email.")))
+
+(define-public emacs-git-email-mu4e
+  (package
+    (inherit emacs-git-email)
+    (name "emacs-git-email-mu4e")
+    (propagated-inputs (list emacs-git-email mu))
+    (inputs (list `("emacs-git-email-mu4e-patch" ,(car (search-patches
+                                                        "emacs-git-email-missing-parens.patch")))))
+    (arguments
+     (list #:include #~(list "git-email-mu4e.el")
+           #:phases #~(modify-phases %standard-phases
+                        (add-after 'unpack 'apply-patch
+                          (lambda* (#:key inputs #:allow-other-keys)
+                            (let ((patch (assoc-ref inputs
+                                          "emacs-git-email-mu4e-patch")))
+                              (invoke "patch" "-p1" "--batch" "-i" patch)))))))
+    (synopsis "Mu4e integration for git-email")
+    (description
+     "This library sets some variables for git-email to make it work
+better with @code{mu}.")))
+
+(define-public emacs-git-email-notmuch
+  (package
+    (inherit emacs-git-email)
+    (name "emacs-git-email-notmuch")
+    (propagated-inputs (list emacs-git-email emacs-notmuch))
+    (arguments
+     (list #:include #~(list "git-email-notmuch.el")))
+    (synopsis "Notmuch integration for git-email")
+    (description
+     "This library sets some variables for git-email to make it work
+better with @code{emacs-notmuch}.")))
+
+(define-public emacs-git-email-piem
+  (package
+    (inherit emacs-git-email)
+    (name "emacs-git-email-piem")
+    (propagated-inputs (list emacs-git-email emacs-piem))
+    (arguments
+     (list #:include #~(list "git-email-piem.el")))
+    (synopsis "Piem integration for git-email")
+    (description
+     "This library sets some variables for git-email to make it work
+better with @code{emacs-piem}.")))
+
 (define-public emacs-erc-hl-nicks
   (package
     (name "emacs-erc-hl-nicks")
-- 
2.38.0


[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 690 bytes --]

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [bug#58730] [PATCH] Split emacs-piem and emacs-git-email
  2022-10-23  5:49 [bug#58730] [PATCH] Split emacs-piem and emacs-git-email Declan Tsien
@ 2022-10-25  1:15 ` Declan Tsien
  2022-10-29  1:30 ` bug#58730: " Declan Tsien
  2022-11-02 18:13 ` [bug#58730] " zimoun
  2 siblings, 0 replies; 6+ messages in thread
From: Declan Tsien @ 2022-10-25  1:15 UTC (permalink / raw)
  To: 58730; +Cc: Niklas Eklund, zimoun

[-- Attachment #1: Type: text/plain, Size: 18212 bytes --]

Declan Tsien <declantsien@riseup.net> writes:

> Currently, emacs-piem and emacs-git-email bundle multiple lisp files with
> identical functionality but for different tastes. Split into separated
> packages would avoid pulling unnecessary dependencies into user profile.
>
> Also fix info manual for emacs-git-email and add info-manual for
> emacs-piem
>
> From 6b44b4998369f01365c0ddb1b935072cfefcbe1b Mon Sep 17 00:00:00 2001
> From: Declan Tsien <declantsien@riseup.net>
> Date: Sun, 23 Oct 2022 11:40:07 +0800
> Subject: [PATCH 1/4] gnu: emacs-git-email: Fix makeinfo.
>
> * gnu/packages/emacs-xyz.scm (emacs-git-email): Fix makeinfo.
> ---
>  gnu/packages/emacs-xyz.scm | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
> index 06ec9dd904..be6d4c6ba3 100644
> --- a/gnu/packages/emacs-xyz.scm
> +++ b/gnu/packages/emacs-xyz.scm
> @@ -17341,7 +17341,8 @@ (define-public emacs-git-email
>                 (delete-file "git-email-piem.el")))
>             (add-before 'install 'makeinfo
>               (lambda _
> -               (invoke "makeinfo" "doc/git-email.texi"))))))
> +               (invoke "make" "doc/git-email.info")
> +               (rename-file "doc/git-email.info" "git-email.info"))))))
>        (native-inputs
>         (list texinfo))
>        (propagated-inputs
>
> base-commit: 1f734a6f0a7db5b0e12091a0c869c5c4810ac80e
> -- 
> 2.38.0
>
> From 3d6c28a0cbeed2f38d91cd31155a257578675f6d Mon Sep 17 00:00:00 2001
> From: Declan Tsien <declantsien@riseup.net>
> Date: Sun, 23 Oct 2022 11:42:19 +0800
> Subject: [PATCH 2/4] gnu: emacs-piem: Add build-info-manual phase.
>
> * gnu/packages/emacs-xyz.scm (emacs-piem): Add build-info-manual phase.
> [native-inputs]: Add texinfo.
> ---
>  gnu/packages/emacs-xyz.scm | 8 +++++++-
>  1 file changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
> index be6d4c6ba3..bc56067a7c 100644
> --- a/gnu/packages/emacs-xyz.scm
> +++ b/gnu/packages/emacs-xyz.scm
> @@ -7151,9 +7151,15 @@ (define-public emacs-piem
>                   (lambda* (#:key inputs #:allow-other-keys)
>                     (emacs-substitute-variables "piem-b4.el"
>                       ("piem-b4-b4-executable"
> -                      (search-input-file inputs "/bin/b4"))))))))
> +                      (search-input-file inputs "/bin/b4")))))
> +               (add-after 'unpack 'build-info-manual
> +                 (lambda _
> +                   (invoke "make" "Documentation/piem.info")
> +                   (rename-file "Documentation/piem.info" "piem.info"))))))
>      (inputs
>       (list b4))
> +    (native-inputs
> +     (list texinfo))
>      (propagated-inputs
>       (list emacs-elfeed
>             emacs-notmuch
> -- 
> 2.38.0
>
> From ff45839e29bad8bd4fa5d9b4868b3f68fe8d300d Mon Sep 17 00:00:00 2001
> From: Declan Tsien <declantsien@riseup.net>
> Date: Sun, 23 Oct 2022 11:46:37 +0800
> Subject: [PATCH 3/4] gnu: emacs-piem: Split into multiple separated packages.
>
> emacs-piem currently bundles multiple lisp files with identical functionality
> but for different tastes. Split into separated packages would avoid pulling
> unnecessary dependencies into user profile.
>
> * gnu/packages/emacs-xyz.scm (emacs-piem): Split into multiple separated
> packages.
> * gnu/packages/emacs-xyz.scm (emacs-piem-b4): New variable.
> * gnu/packages/emacs-xyz.scm (emacs-piem-elfeed): New variable.
> * gnu/packages/emacs-xyz.scm (emacs-piem-eww): New variable.
> * gnu/packages/emacs-xyz.scm (emacs-piem-gnus): New variable.
> * gnu/packages/emacs-xyz.scm (emacs-piem-notmuch): New variable.
> * gnu/packages/emacs-xyz.scm (emacs-piem-rmail): New variable.
> * gnu/packages/emacs-xyz.scm (emacs-piem-lei): New variable.
> ---
>  gnu/packages/emacs-xyz.scm | 139 +++++++++++++++++++++++++++++--------
>  1 file changed, 109 insertions(+), 30 deletions(-)
>
> diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
> index bc56067a7c..3f62e92116 100644
> --- a/gnu/packages/emacs-xyz.scm
> +++ b/gnu/packages/emacs-xyz.scm
> @@ -7134,45 +7134,124 @@ (define-public emacs-piem
>    (package
>      (name "emacs-piem")
>      (version "0.4.0")
> -    (source
> -     (origin
> -       (method git-fetch)
> -       (uri (git-reference
> -             (url "https://git.kyleam.com/piem")
> -             (commit (string-append "v" version))))
> -       (file-name (string-append name "-" version "-checkout"))
> -       (sha256
> -        (base32 "0wr6n6wvznngjdp4c0pmdr4xz05dark0kxi5svzhzxsg3rdaql3z"))))
> +    (source (origin
> +              (method git-fetch)
> +              (uri (git-reference
> +                    (url "https://git.kyleam.com/piem")
> +                    (commit (string-append "v" version))))
> +              (file-name (string-append name "-" version "-checkout"))
> +              (sha256
> +               (base32
> +                "0wr6n6wvznngjdp4c0pmdr4xz05dark0kxi5svzhzxsg3rdaql3z"))))
>      (build-system emacs-build-system)
>      (arguments
> -     (list #:phases
> -           #~(modify-phases %standard-phases
> -               (add-after 'unpack 'configure
> -                 (lambda* (#:key inputs #:allow-other-keys)
> -                   (emacs-substitute-variables "piem-b4.el"
> -                     ("piem-b4-b4-executable"
> -                      (search-input-file inputs "/bin/b4")))))
> -               (add-after 'unpack 'build-info-manual
> -                 (lambda _
> -                   (invoke "make" "Documentation/piem.info")
> -                   (rename-file "Documentation/piem.info" "piem.info"))))))
> -    (inputs
> -     (list b4))
> -    (native-inputs
> -     (list texinfo))
> -    (propagated-inputs
> -     (list emacs-elfeed
> -           emacs-notmuch
> -           emacs-transient))
> -    (home-page "https://docs.kyleam.com/piem")
> +     (list #:exclude #~(cons* "^piem-b4.el"
> +                              "^piem-elfeed.el"
> +                              "^piem-eww.el"
> +                              "^piem-gnus.el"
> +                              "^piem-lei.el"
> +                              "^piem-notmuch.el"
> +                              "^piem-rmail.el"
> +                              %default-exclude)
> +           #:phases #~(modify-phases %standard-phases
> +                        (add-after 'unpack 'build-info-manual
> +                          (lambda _
> +                            (invoke "make" "Documentation/piem.info")
> +                            (rename-file "Documentation/piem.info" "piem.info"))))))
> +    (native-inputs (list texinfo))
> +    (propagated-inputs (list emacs-transient))
> +    (home-page "https://docs.kyleam.com/piem/")
>      (synopsis "Glue for working with public-inbox archives")
> -    (description "This packages provides a collection of Emacs libraries for
> +    (description
> +     "This package provides a collection of Emacs libraries for
>  working with public-inbox archives.  As much of the hard work here is already
>  done by other Emacs libraries—things like mail clients, news readers, Git
>  interfaces, and even web browsers—piem is mostly about bridging some of these
>  parts for convenience.")
>      (license license:gpl3+)))
>  
> +(define-public emacs-piem-b4
> +  (package
> +    (inherit emacs-piem)
> +    (name "emacs-piem-b4")
> +    (inputs (list b4))
> +    (propagated-inputs (list emacs-piem))
> +    (arguments
> +     (list #:include #~(list "piem-b4.el")
> +           #:phases #~(modify-phases %standard-phases
> +                        (add-after 'unpack 'configure
> +                          (lambda* (#:key inputs #:allow-other-keys)
> +                            (emacs-substitute-variables "piem-b4.el"
> +                                                        ("piem-b4-b4-executable"
> +                                                         (search-input-file
> +                                                          inputs "/bin/b4"))))))))
> +    (synopsis "Emacs interface to the b4 tool")
> +    (description
> +     "This library provides a @code{emacs-transient} interface to @code{b4}.  It is
> +documented in the piem manual.")))
> +
> +(define-public emacs-piem-elfeed
> +  (package
> +    (inherit emacs-piem)
> +    (name "emacs-piem-elfeed")
> +    (propagated-inputs (list emacs-piem emacs-elfeed))
> +    (arguments
> +     (list #:include #~(list "piem-elfeed.el")))
> +    (synopsis "Elfeed integration for piem")
> +    (description
> +     "This library provides @code{emacs-elfeed} integration for @code{piem}.")))
> +
> +(define-public emacs-piem-eww
> +  (package
> +    (inherit emacs-piem)
> +    (name "emacs-piem-eww")
> +    (propagated-inputs (list emacs-piem))
> +    (arguments
> +     (list #:include #~(list "piem-eww.el")))
> +    (synopsis "EWW integration for piem")
> +    (description "This library provides EWW integration for @code{piem}.")))
> +
> +(define-public emacs-piem-gnus
> +  (package
> +    (inherit emacs-piem)
> +    (name "emacs-piem-gnus")
> +    (propagated-inputs (list emacs-piem))
> +    (arguments
> +     (list #:include #~(list "piem-gnus.el")))
> +    (synopsis "Gnus integration for piem")
> +    (description "This library provides Gnus integration for @code{piem}.")))
> +
> +(define-public emacs-piem-notmuch
> +  (package
> +    (inherit emacs-piem)
> +    (name "emacs-piem-notmuch")
> +    (propagated-inputs (list emacs-piem emacs-notmuch))
> +    (arguments
> +     (list #:include #~(list "piem-notmuch.el")))
> +    (synopsis "Notmuch integration for piem")
> +    (description
> +     "This library provides @code{emacs-notmuch} integration for @code{piem}.")))
> +
> +(define-public emacs-piem-rmail
> +  (package
> +    (inherit emacs-piem)
> +    (name "emacs-piem-rmail")
> +    (propagated-inputs (list emacs-piem))
> +    (arguments
> +     (list #:include #~(list "piem-rmail.el")))
> +    (synopsis "Rmail integration for piem")
> +    (description "This library provides Rmail integration for @code{piem}.")))
> +
> +(define-public emacs-piem-lei
> +  (package
> +    (inherit emacs-piem)
> +    (name "emacs-piem-lei")
> +    (propagated-inputs (list emacs-piem))
> +    (arguments
> +     (list #:include #~(list "piem-lei.el")))
> +    (synopsis "Lei integration for piem")
> +    (description "This library provides lei integration for @code{piem}.")))
> +
>  (define-public emacs-ert-expectations
>    (package
>      (name "emacs-ert-expectations")
> -- 
> 2.38.0
>
> From d0c79a8c055c3818c1ea97e4cf0aa373303025e5 Mon Sep 17 00:00:00 2001
> From: Declan Tsien <declantsien@riseup.net>
> Date: Sun, 23 Oct 2022 11:48:13 +0800
> Subject: [PATCH 4/4] gnu: emacs-git-email: Split into multiple separated
>  packages.
>
> emacs-git-email currently bundles multiple lisp files with identical
> functionality but for different tastes. Split into separated packages would
> avoid pulling unnecessary dependencies into user profile.
>
> * gnu/packages/emacs-xyz.scm (emacs-git-email): Split into multiple separated
> packages.
> * gnu/packages/emacs-xyz.scm (emacs-git-email-gnus): New Variable.
> * gnu/packages/emacs-xyz.scm (emacs-git-email-magit): New Variable.
> * gnu/packages/emacs-xyz.scm (emacs-git-email-mu4e): New Variable.
> * gnu/packages/emacs-xyz.scm (emacs-git-email-notmuch): New Variable.
> * gnu/packages/emacs-xyz.scm (emacs-git-email-piem): New Variable.
> ---
>  gnu/packages/emacs-xyz.scm | 115 +++++++++++++++++++++++++++++--------
>  1 file changed, 90 insertions(+), 25 deletions(-)
>
> diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
> index 3f62e92116..0bbae04f08 100644
> --- a/gnu/packages/emacs-xyz.scm
> +++ b/gnu/packages/emacs-xyz.scm
> @@ -17405,39 +17405,104 @@ (define-public emacs-git-email
>      (package
>        (name "emacs-git-email")
>        (version (git-version "0.2.0" revision commit))
> -      (source
> -       (origin
> -         (method git-fetch)
> -         (uri (git-reference
> -               (url "https://git.sr.ht/~yoctocell/git-email")
> -               (commit commit)))
> -         (patches
> -          (search-patches "emacs-git-email-missing-parens.patch"))
> -         (file-name (git-file-name name version))
> -         (sha256
> -          (base32 "1lk1yds7idgawnair8l3s72rgjmh80qmy4kl5wrnqvpmjrmdgvnx"))))
> +      (source (origin
> +                (method git-fetch)
> +                (uri (git-reference
> +                      (url "https://git.sr.ht/~yoctocell/git-email")
> +                      (commit commit)))
> +                (file-name (git-file-name name version))
> +                (sha256
> +                 (base32
> +                  "1lk1yds7idgawnair8l3s72rgjmh80qmy4kl5wrnqvpmjrmdgvnx"))))
>        (build-system emacs-build-system)
>        (arguments
> -       `(#:phases
> -         (modify-phases %standard-phases
> -           ;; piem is not yet packaged in Guix.
> -           (add-after 'unpack 'remove-piem
> -             (lambda _
> -               (delete-file "git-email-piem.el")))
> -           (add-before 'install 'makeinfo
> -             (lambda _
> -               (invoke "make" "doc/git-email.info")
> -               (rename-file "doc/git-email.info" "git-email.info"))))))
> -      (native-inputs
> -       (list texinfo))
> -      (propagated-inputs
> -       (list mu emacs-magit emacs-notmuch))
> +       (list #:exclude #~(cons* "^git-email-gnus.el"
> +                                "^git-email-magit.el"
> +                                "^git-email-mu4e.el"
> +                                "^git-email-notmuch.el"
> +                                "^git-email-piem.el"
> +                                %default-exclude)
> +             #:phases #~(modify-phases %standard-phases
> +                          (add-before 'install 'makeinfo
> +                            (lambda _
> +                              (invoke "make" "doc/git-email.info")
> +                              (rename-file "doc/git-email.info"
> +                                           "git-email.info"))))))
> +      (native-inputs (list texinfo))
>        (license license:gpl3+)
>        (home-page "https://sr.ht/~yoctocell/git-email")
>        (synopsis "Format and send Git patches in Emacs")
>        (description "This package provides utilities for formatting and
>  sending Git patches via Email, without leaving Emacs."))))
>  
> +(define-public emacs-git-email-gnus
> +  (package
> +    (inherit emacs-git-email)
> +    (name "emacs-git-email-gnus")
> +    (propagated-inputs (list emacs-git-email))
> +    (arguments
> +     (list #:include #~(list "git-email-gnus.el")))
> +    (synopsis "Gnus integration for git-email")
> +    (description
> +     "This library sets some variables for git-email to make it work
> +better with Gnus.")))
> +
> +(define-public emacs-git-email-magit
> +  (package
> +    (inherit emacs-git-email)
> +    (name "emacs-git-email-magit")
> +    (propagated-inputs (list emacs-git-email emacs-magit))
> +    (arguments
> +     (list #:include #~(list "git-email-magit.el")))
> +    (synopsis "Magit integration for git-email")
> +    (description
> +     "This library offers transient commands in the magit-status buffer
> +for interacting with git-email.")))
> +
> +(define-public emacs-git-email-mu4e
> +  (package
> +    (inherit emacs-git-email)
> +    (name "emacs-git-email-mu4e")
> +    (propagated-inputs (list emacs-git-email mu))
> +    (inputs (list `("emacs-git-email-mu4e-patch" ,(car (search-patches
> +                                                        "emacs-git-email-missing-parens.patch")))))
> +    (arguments
> +     (list #:include #~(list "git-email-mu4e.el")
> +           #:phases #~(modify-phases %standard-phases
> +                        (add-after 'unpack 'apply-patch
> +                          (lambda* (#:key inputs #:allow-other-keys)
> +                            (let ((patch (assoc-ref inputs
> +                                          "emacs-git-email-mu4e-patch")))
> +                              (invoke "patch" "-p1" "--batch" "-i" patch)))))))
> +    (synopsis "Mu4e integration for git-email")
> +    (description
> +     "This library sets some variables for git-email to make it work
> +better with @code{mu}.")))
> +
> +(define-public emacs-git-email-notmuch
> +  (package
> +    (inherit emacs-git-email)
> +    (name "emacs-git-email-notmuch")
> +    (propagated-inputs (list emacs-git-email emacs-notmuch))
> +    (arguments
> +     (list #:include #~(list "git-email-notmuch.el")))
> +    (synopsis "Notmuch integration for git-email")
> +    (description
> +     "This library sets some variables for git-email to make it work
> +better with @code{emacs-notmuch}.")))
> +
> +(define-public emacs-git-email-piem
> +  (package
> +    (inherit emacs-git-email)
> +    (name "emacs-git-email-piem")
> +    (propagated-inputs (list emacs-git-email emacs-piem))
> +    (arguments
> +     (list #:include #~(list "git-email-piem.el")))
> +    (synopsis "Piem integration for git-email")
> +    (description
> +     "This library sets some variables for git-email to make it work
> +better with @code{emacs-piem}.")))
> +
>  (define-public emacs-erc-hl-nicks
>    (package
>      (name "emacs-erc-hl-nicks")
> -- 
> 2.38.0

Hey, Niklas Eklund and zimoun

Since you are the original contributors to =emacs-git-email= and
=emacs-piem=. Here are some changes you may need to be aware of.

I've split the package into multiple separate packages. So the user wants
=git-email-notmuch= or =piem-notmuch= don't have to populate there
home environment with =mu= and other dependencies.

Can you kindly review the changes, and give your thoughts on them?

Thanks

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 690 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#58730: [PATCH] Split emacs-piem and emacs-git-email
  2022-10-23  5:49 [bug#58730] [PATCH] Split emacs-piem and emacs-git-email Declan Tsien
  2022-10-25  1:15 ` Declan Tsien
@ 2022-10-29  1:30 ` Declan Tsien
  2022-11-02 18:13 ` [bug#58730] " zimoun
  2 siblings, 0 replies; 6+ messages in thread
From: Declan Tsien @ 2022-10-29  1:30 UTC (permalink / raw)
  To: 58730-done

[-- Attachment #1: Type: text/plain, Size: 14 bytes --]


No Feedback.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 690 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [bug#58730] [PATCH] Split emacs-piem and emacs-git-email
  2022-10-23  5:49 [bug#58730] [PATCH] Split emacs-piem and emacs-git-email Declan Tsien
  2022-10-25  1:15 ` Declan Tsien
  2022-10-29  1:30 ` bug#58730: " Declan Tsien
@ 2022-11-02 18:13 ` zimoun
  2022-11-05  5:22   ` Kyle Meyer
  2022-11-05  7:18   ` Declan Tsien
  2 siblings, 2 replies; 6+ messages in thread
From: zimoun @ 2022-11-02 18:13 UTC (permalink / raw)
  To: Declan Tsien, 58730
  Cc: Kyle Meyer, public, liliana.prikler, Nicolas Goaziou,
	Andrew Tropin

Hi,

CC: emacs team


Kyle, are all the sub-packages of piem working independently?

Xinglu, are all the sub-packages of emacs-git-email working
independently?


On dim., 23 oct. 2022 at 13:49, Declan Tsien <declantsien@riseup.net> wrote:

> Subject: [PATCH 1/4] gnu: emacs-git-email: Fix makeinfo.
>
> * gnu/packages/emacs-xyz.scm (emacs-git-email): Fix makeinfo.
> ---
>  gnu/packages/emacs-xyz.scm | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)

LGTM.


> Subject: [PATCH 2/4] gnu: emacs-piem: Add build-info-manual phase.
>
> * gnu/packages/emacs-xyz.scm (emacs-piem): Add build-info-manual phase.
> [native-inputs]: Add texinfo.
> ---
>  gnu/packages/emacs-xyz.scm | 8 +++++++-
>  1 file changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
> index be6d4c6ba3..bc56067a7c 100644
> --- a/gnu/packages/emacs-xyz.scm
> +++ b/gnu/packages/emacs-xyz.scm
> @@ -7151,9 +7151,15 @@ (define-public emacs-piem
>                   (lambda* (#:key inputs #:allow-other-keys)
>                     (emacs-substitute-variables "piem-b4.el"
>                       ("piem-b4-b4-executable"
> -                      (search-input-file inputs "/bin/b4"))))))))
> +                      (search-input-file inputs "/bin/b4")))))
> +               (add-after 'unpack 'build-info-manual
> +                 (lambda _
> +                   (invoke "make" "Documentation/piem.info")
> +                   (rename-file "Documentation/piem.info" "piem.info"))))))

Here, I would build the manual before the install phase instead after
the unpack phase.



> Subject: [PATCH 3/4] gnu: emacs-piem: Split into multiple separated packages.
>
> emacs-piem currently bundles multiple lisp files with identical functionality
> but for different tastes. Split into separated packages would avoid pulling
> unnecessary dependencies into user profile.
>
> * gnu/packages/emacs-xyz.scm (emacs-piem): Split into multiple separated
> packages.
> * gnu/packages/emacs-xyz.scm (emacs-piem-b4): New variable.
> * gnu/packages/emacs-xyz.scm (emacs-piem-elfeed): New variable.
> * gnu/packages/emacs-xyz.scm (emacs-piem-eww): New variable.
> * gnu/packages/emacs-xyz.scm (emacs-piem-gnus): New variable.
> * gnu/packages/emacs-xyz.scm (emacs-piem-notmuch): New variable.
> * gnu/packages/emacs-xyz.scm (emacs-piem-rmail): New variable.
> * gnu/packages/emacs-xyz.scm (emacs-piem-lei): New variable.

Personally, I am fine with several packages.  But we could also ask if
several output would not fit the bill.  WDYT?


> ---
>  gnu/packages/emacs-xyz.scm | 139 +++++++++++++++++++++++++++++--------
>  1 file changed, 109 insertions(+), 30 deletions(-)
>
> diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
> index bc56067a7c..3f62e92116 100644
> --- a/gnu/packages/emacs-xyz.scm
> +++ b/gnu/packages/emacs-xyz.scm
> @@ -7134,45 +7134,124 @@ (define-public emacs-piem
>    (package
>      (name "emacs-piem")
>      (version "0.4.0")
> -    (source
> -     (origin
> -       (method git-fetch)
> -       (uri (git-reference
> -             (url "https://git.kyleam.com/piem")
> -             (commit (string-append "v" version))))
> -       (file-name (string-append name "-" version "-checkout"))
> -       (sha256
> -        (base32 "0wr6n6wvznngjdp4c0pmdr4xz05dark0kxi5svzhzxsg3rdaql3z"))))
> +    (source (origin
> +              (method git-fetch)
> +              (uri (git-reference
> +                    (url "https://git.kyleam.com/piem")
> +                    (commit (string-append "v" version))))
> +              (file-name (string-append name "-" version "-checkout"))
> +              (sha256
> +               (base32
> +                "0wr6n6wvznngjdp4c0pmdr4xz05dark0kxi5svzhzxsg3rdaql3z"))))

Why this cosmetic change?


>      (build-system emacs-build-system)
>      (arguments
> -     (list #:phases
> -           #~(modify-phases %standard-phases
> -               (add-after 'unpack 'configure
> -                 (lambda* (#:key inputs #:allow-other-keys)
> -                   (emacs-substitute-variables "piem-b4.el"
> -                     ("piem-b4-b4-executable"
> -                      (search-input-file inputs "/bin/b4")))))
> -               (add-after 'unpack 'build-info-manual
> -                 (lambda _
> -                   (invoke "make" "Documentation/piem.info")
> -                   (rename-file "Documentation/piem.info" "piem.info"))))))
> -    (inputs
> -     (list b4))
> -    (native-inputs
> -     (list texinfo))
> -    (propagated-inputs
> -     (list emacs-elfeed
> -           emacs-notmuch
> -           emacs-transient))
> -    (home-page "https://docs.kyleam.com/piem")
> +     (list #:exclude #~(cons* "^piem-b4.el"
> +                              "^piem-elfeed.el"
> +                              "^piem-eww.el"
> +                              "^piem-gnus.el"
> +                              "^piem-lei.el"
> +                              "^piem-notmuch.el"
> +                              "^piem-rmail.el"
> +                              %default-exclude)
> +           #:phases #~(modify-phases %standard-phases
> +                        (add-after 'unpack 'build-info-manual
> +                          (lambda _
> +                            (invoke "make" "Documentation/piem.info")
> +                            (rename-file "Documentation/piem.info" "piem.info"))))))

LGTM.


> +    (native-inputs (list texinfo))

Why this cosmetic change?

> +    (propagated-inputs (list emacs-transient))
> +    (home-page "https://docs.kyleam.com/piem/")
>      (synopsis "Glue for working with public-inbox archives")
> -    (description "This packages provides a collection of Emacs libraries for
> +    (description
> +     "This package provides a collection of Emacs libraries for

Idem.

  

> +(define-public emacs-piem-b4

[...]

> +(define-public emacs-piem-elfeed

[...]

> +(define-public emacs-piem-eww

[...]

> +(define-public emacs-piem-gnus

[...]

> +(define-public emacs-piem-notmuch

[...]

> +(define-public emacs-piem-rmail

[...]

> +(define-public emacs-piem-lei

[...]

All LGTM although I have not checked if all packages are working
independently.

--8<---------------cut here---------------start------------->8---
$ ./pre-inst-env guix build $(./pre-inst-env guix search emacs-piem | recsel -CP name) --no-grafts
/gnu/store/15gghkyq9wr2qjnlxnq5pb9k5cggcyzv-emacs-git-email-piem-0.2.0-0.b5ebade
/gnu/store/hqdv1hc8vdcym59dzfyp9s49sbjzsa37-emacs-piem-b4-0.4.0
/gnu/store/p0f8q5swvb16w3f8709643gm6f7pj6wn-emacs-piem-elfeed-0.4.0
/gnu/store/1abb0k30igcyg2vgi3w6hnmszkx1yxmc-emacs-piem-eww-0.4.0
/gnu/store/8v2vn6qdiza1lj19frf1flb7h3s3r1s3-emacs-piem-gnus-0.4.0
/gnu/store/18pbym3hwyg8m2arnin58r3vyrx4f781-emacs-piem-lei-0.4.0
/gnu/store/qsibcac82cls2r2jvnxkvc1iajja5mqg-emacs-piem-notmuch-0.4.0
/gnu/store/s6xzxjy7wsi7q5c50qxvg7mbmz1i10v0-emacs-piem-rmail-0.4.0
/gnu/store/zyy8c2q56299s510lndzmi0lk26m4wh6-emacs-piem-0.4.0
--8<---------------cut here---------------end--------------->8---



> Subject: [PATCH 4/4] gnu: emacs-git-email: Split into multiple separated
>  packages.
>
> emacs-git-email currently bundles multiple lisp files with identical
> functionality but for different tastes. Split into separated packages would
> avoid pulling unnecessary dependencies into user profile.
>
> * gnu/packages/emacs-xyz.scm (emacs-git-email): Split into multiple separated
> packages.
> * gnu/packages/emacs-xyz.scm (emacs-git-email-gnus): New Variable.
> * gnu/packages/emacs-xyz.scm (emacs-git-email-magit): New Variable.
> * gnu/packages/emacs-xyz.scm (emacs-git-email-mu4e): New Variable.
> * gnu/packages/emacs-xyz.scm (emacs-git-email-notmuch): New Variable.
> * gnu/packages/emacs-xyz.scm (emacs-git-email-piem): New Variable.
> ---
>  gnu/packages/emacs-xyz.scm | 115 +++++++++++++++++++++++++++++--------
>  1 file changed, 90 insertions(+), 25 deletions(-)
>
> diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
> index 3f62e92116..0bbae04f08 100644
> --- a/gnu/packages/emacs-xyz.scm
> +++ b/gnu/packages/emacs-xyz.scm
> @@ -17405,39 +17405,104 @@ (define-public emacs-git-email
>      (package
>        (name "emacs-git-email")
>        (version (git-version "0.2.0" revision commit))
> -      (source
> -       (origin
> -         (method git-fetch)
> -         (uri (git-reference
> -               (url "https://git.sr.ht/~yoctocell/git-email")
> -               (commit commit)))
> -         (patches
> -          (search-patches "emacs-git-email-missing-parens.patch"))
> -         (file-name (git-file-name name version))
> -         (sha256
> -          (base32 "1lk1yds7idgawnair8l3s72rgjmh80qmy4kl5wrnqvpmjrmdgvnx"))))
> +      (source (origin
> +                (method git-fetch)
> +                (uri (git-reference
> +                      (url "https://git.sr.ht/~yoctocell/git-email")
> +                      (commit commit)))
> +                (file-name (git-file-name name version))
> +                (sha256
> +                 (base32
> +                  "1lk1yds7idgawnair8l3s72rgjmh80qmy4kl5wrnqvpmjrmdgvnx"))))

Idem about cosmetic change?  The rest LGTM.



> +(define-public emacs-git-email-gnus

[...]

> +(define-public emacs-git-email-magit

[...]

> +(define-public emacs-git-email-mu4e
> +  (package
> +    (inherit emacs-git-email)
> +    (name "emacs-git-email-mu4e")
> +    (propagated-inputs (list emacs-git-email mu))
> +    (inputs (list `("emacs-git-email-mu4e-patch" ,(car (search-patches
> +                                                        "emacs-git-email-missing-parens.patch")))))

Usually, ’match’ is preferred over ’car’; for instance,

        ,(match (search-patches
                 "emacs-git-email-missing-parens.patch")
           ((head tail ...) head))


> +(define-public emacs-git-email-notmuch

[...]

> +(define-public emacs-git-email-piem

[...]


All LGTM although I have not checked if all packages are working
independently.

--8<---------------cut here---------------start------------->8---
$ ./pre-inst-env guix build $(./pre-inst-env guix search emacs-git-email | recsel -CP name) 
/gnu/store/qpll3r2mj17klmlij939fd576zzspnyp-emacs-git-email-gnus-0.2.0-0.b5ebade
/gnu/store/aw7v8mwgnk8qf2mhwzsrp4y38b35yl98-emacs-git-email-magit-0.2.0-0.b5ebade
/gnu/store/w84d3c2w6r1f1jk0izz72kgz9p2942ab-emacs-git-email-mu4e-0.2.0-0.b5ebade
/gnu/store/saw1nnjsn8j5kxmnrnnbn2zqp9hs7iv2-emacs-git-email-notmuch-0.2.0-0.b5ebade
/gnu/store/15gghkyq9wr2qjnlxnq5pb9k5cggcyzv-emacs-git-email-piem-0.2.0-0.b5ebade
/gnu/store/kl1q1kc140v8kmx4g4564z3nx83vm5h7-emacs-git-email-0.2.0-0.b5ebade
--8<---------------cut here---------------end--------------->8---


Cheers,
simon




^ permalink raw reply	[flat|nested] 6+ messages in thread

* [bug#58730] [PATCH] Split emacs-piem and emacs-git-email
  2022-11-02 18:13 ` [bug#58730] " zimoun
@ 2022-11-05  5:22   ` Kyle Meyer
  2022-11-05  7:18   ` Declan Tsien
  1 sibling, 0 replies; 6+ messages in thread
From: Kyle Meyer @ 2022-11-05  5:22 UTC (permalink / raw)
  To: zimoun
  Cc: Declan Tsien, public, liliana.prikler, Andrew Tropin, 58730,
	Nicolas Goaziou

zimoun writes:

> Kyle, are all the sub-packages of piem working independently?

-elfeed, -eww, -gnus, -notmuch, and -rmail are integration libraries
that, when their corresponding minor modes are enabled, wire themselves
up to piem.el hooks.  None of these libraries depend on each other, and
piem.el doesn't depend on any of them being present.

-lei is an integration library as well, though it's a bit more involved
because it provides an interface to public-inbox's lei (mostly just `lei
q' at the moment).  piem.el does bind a piem-lei command in
piem-dispatch, so that of course won't be found if piem-lei.el isn't
present, but otherwise things should be functional.

-b4 is a little different.  It implements b4 support of course, but it's
not an "integration library" like the ones referred to above.  b4 is the
main workhorse for applying patch series, regardless of whether that's
from Gnus or Notmuch or whatnot.  I know some people use piem.el without
b4, and I'm glad if that works for their needs, but in my view b4
support is a core part of piem.

> On dim., 23 oct. 2022 at 13:49, Declan Tsien <declantsien@riseup.net> wrote:
[...]
>> Subject: [PATCH 2/4] gnu: emacs-piem: Add build-info-manual phase.
>>
>> * gnu/packages/emacs-xyz.scm (emacs-piem): Add build-info-manual phase.
>> [native-inputs]: Add texinfo.
>> ---
>>  gnu/packages/emacs-xyz.scm | 8 +++++++-
>>  1 file changed, 7 insertions(+), 1 deletion(-)
>>
>> diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
>> index be6d4c6ba3..bc56067a7c 100644
>> --- a/gnu/packages/emacs-xyz.scm
>> +++ b/gnu/packages/emacs-xyz.scm
>> @@ -7151,9 +7151,15 @@ (define-public emacs-piem
>>                   (lambda* (#:key inputs #:allow-other-keys)
>>                     (emacs-substitute-variables "piem-b4.el"
>>                       ("piem-b4-b4-executable"
>> -                      (search-input-file inputs "/bin/b4"))))))))
>> +                      (search-input-file inputs "/bin/b4")))))
>> +               (add-after 'unpack 'build-info-manual
>> +                 (lambda _
>> +                   (invoke "make" "Documentation/piem.info")
>> +                   (rename-file "Documentation/piem.info" "piem.info"))))))
>
> Here, I would build the manual before the install phase instead after
> the unpack phase.

Declan, thanks, I appreciate you adding the manual.

>> Subject: [PATCH 3/4] gnu: emacs-piem: Split into multiple separated packages.
>>
>> emacs-piem currently bundles multiple lisp files with identical functionality
>> but for different tastes. Split into separated packages would avoid pulling
>> unnecessary dependencies into user profile.
>>
>> * gnu/packages/emacs-xyz.scm (emacs-piem): Split into multiple separated
>> packages.
>> * gnu/packages/emacs-xyz.scm (emacs-piem-b4): New variable.
>> * gnu/packages/emacs-xyz.scm (emacs-piem-elfeed): New variable.
>> * gnu/packages/emacs-xyz.scm (emacs-piem-eww): New variable.
>> * gnu/packages/emacs-xyz.scm (emacs-piem-gnus): New variable.
>> * gnu/packages/emacs-xyz.scm (emacs-piem-notmuch): New variable.
>> * gnu/packages/emacs-xyz.scm (emacs-piem-rmail): New variable.
>> * gnu/packages/emacs-xyz.scm (emacs-piem-lei): New variable.
>
> Personally, I am fine with several packages.  But we could also ask if
> several output would not fit the bill.  WDYT?

Yes, I also wondered about using multiple outputs instead.

Two comments on "avoid[ing] pulling in unnecessary dependencies":

 * -eww, -gnus, and -rmail use libraries that ship with Emacs, so
    splitting them out doesn't remove any dependencies.

 * -lei doesn't bring in any dependencies because public-inbox isn't
    listed as an input.




^ permalink raw reply	[flat|nested] 6+ messages in thread

* [bug#58730] [PATCH] Split emacs-piem and emacs-git-email
  2022-11-02 18:13 ` [bug#58730] " zimoun
  2022-11-05  5:22   ` Kyle Meyer
@ 2022-11-05  7:18   ` Declan Tsien
  1 sibling, 0 replies; 6+ messages in thread
From: Declan Tsien @ 2022-11-05  7:18 UTC (permalink / raw)
  To: zimoun; +Cc: 58730

[-- Attachment #1: Type: text/plain, Size: 1509 bytes --]

zimoun <zimon.toutoune@gmail.com> writes:

>> ---
>>  gnu/packages/emacs-xyz.scm | 139 +++++++++++++++++++++++++++++--------
>>  1 file changed, 109 insertions(+), 30 deletions(-)
>>
>> diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
>> index bc56067a7c..3f62e92116 100644
>> --- a/gnu/packages/emacs-xyz.scm
>> +++ b/gnu/packages/emacs-xyz.scm
>> @@ -7134,45 +7134,124 @@ (define-public emacs-piem
>>    (package
>>      (name "emacs-piem")
>>      (version "0.4.0")
>> -    (source
>> -     (origin
>> -       (method git-fetch)
>> -       (uri (git-reference
>> -             (url "https://git.kyleam.com/piem")
>> -             (commit (string-append "v" version))))
>> -       (file-name (string-append name "-" version "-checkout"))
>> -       (sha256
>> -        (base32 "0wr6n6wvznngjdp4c0pmdr4xz05dark0kxi5svzhzxsg3rdaql3z"))))
>> +    (source (origin
>> +              (method git-fetch)
>> +              (uri (git-reference
>> +                    (url "https://git.kyleam.com/piem")
>> +                    (commit (string-append "v" version))))
>> +              (file-name (string-append name "-" version "-checkout"))
>> +              (sha256
>> +               (base32
>> +                "0wr6n6wvznngjdp4c0pmdr4xz05dark0kxi5svzhzxsg3rdaql3z"))))
>
> Why this cosmetic change?
>

I believe this change was made by =guix style= or =guix lint=. I am not
sure. BTW, I am OK with the way it is now (bundled), I can easily decouple them in my
guix-home configuration file.


[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 690 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2022-11-05  7:19 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-10-23  5:49 [bug#58730] [PATCH] Split emacs-piem and emacs-git-email Declan Tsien
2022-10-25  1:15 ` Declan Tsien
2022-10-29  1:30 ` bug#58730: " Declan Tsien
2022-11-02 18:13 ` [bug#58730] " zimoun
2022-11-05  5:22   ` Kyle Meyer
2022-11-05  7:18   ` Declan Tsien

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).