diff mbox series

[bug#41455,2/2] gnu: Add python-libtmux

Message ID 87ftbnyug6.fsf@alice.lan
State Accepted
Headers show
Series None | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch success View Laminar job

Commit Message

Edouard Klein May 26, 2020, 8:24 a.m. UTC
* gnu/packages/tmux.scm (python-libtmux): New variable.
---
 gnu/packages/tmux.scm | 48 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 48 insertions(+)

Comments

Marius Bakke May 30, 2020, 12:17 p.m. UTC | #1
Edouard Klein <edk@beaver-labs.com> writes:

> * gnu/packages/tmux.scm (python-libtmux): New variable.

[...]
  
> +(define-public python-libtmux
> +  (package
> +    (name "python-libtmux")
> +    (version "0.8.2")
> +    (source
> +     (origin
> +       (method git-fetch)
> +       ;; Pypi source tarball does not include tests
             PyPI                  ---->               .

See nit-picks above ^.  :-)

> +       (uri (git-reference
> +             (url "https://github.com/tmux-python/libtmux.git")
> +             (commit (string-append "v" version))))
> +       (file-name "python-libtmux")

This should be (git-file-name name version).

> +       (sha256
> +        (base32
> +         "1akjv6aqpc690c4l2cjh0fxbpxxg63sfjggapfjjjaqmcl38g1dz"))))
> +    (build-system python-build-system)
> +    (propagated-inputs
> +     `(("python-pytest-4" ,python-pytest-4)
> +       ("tmux" ,tmux)
> +       ("procps" ,procps)))  ;; Tests need top
                               ^^^
Just a single semicolon for margin comments.

Also, all of these should probably be 'native-inputs'.

> +    (arguments
> +     `(#:phases
> +       (modify-phases %standard-phases
> +         (replace 'check
> +           (lambda _
> +             ;; Extend PYTHONPATH so the built package will be found.
> +             (setenv "PYTHONPATH"
> +                     (string-append (getcwd) "/build/lib:"
> +                                    (getenv "PYTHONPATH")))
> +             ;; Skip tests that I suspect fail because of a change
> +             ;; in behavior in tmux 3 from tmux 2
> +             ;; https://github.com/tmux-python/libtmux/issues/281
> +             (invoke "pytest" "-vv" "-k"
> +                     (string-append "not test_show_option_unknown "
> +                                    "and not test_show_window_option_unknown"))
> +             #t)))))
> +    (home-page
> +     "https://github.com/tmux-python/libtmux")

This line break is unnecessary.

> +    (synopsis "Scripting library / orm for tmux")

Can we use "Python API for tmux"?

> +    (description "Libtmux is the tool behind tmuxp, a tmux workspace manager in python.

Use @command{tmuxp}.

> +It builds upon tmux's target and formats to create an object mapping to traverse,

"target" and "formats" sounds weird.  I know it has been taken from the
upstream README, but they have links to clarify the situation.

Perhaps just "It creates object mappings to traverse, ..."
diff mbox series

Patch

diff --git a/gnu/packages/tmux.scm b/gnu/packages/tmux.scm
index 8b54849b18..c4dd963b53 100644
--- a/gnu/packages/tmux.scm
+++ b/gnu/packages/tmux.scm
@@ -7,6 +7,7 @@ 
 ;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2019 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
+;;; Copyright © 2020 Edouard Klein <edk@beaver-labs.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -30,8 +31,11 @@ 
   #:use-module (guix git-download)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system trivial)
+  #:use-module (guix build-system python)
   #:use-module (gnu packages)
   #:use-module (gnu packages bash)
+  #:use-module (gnu packages check)
+  #:use-module (gnu packages linux)
   #:use-module (gnu packages libevent)
   #:use-module (gnu packages ncurses))
 
@@ -138,6 +142,50 @@  command and helper commands provided by tmuxifier to manage Tmux sessions and
 windows.")
     (license license:expat)))
 
+(define-public python-libtmux
+  (package
+    (name "python-libtmux")
+    (version "0.8.2")
+    (source
+     (origin
+       (method git-fetch)
+       ;; Pypi source tarball does not include tests
+       (uri (git-reference
+             (url "https://github.com/tmux-python/libtmux.git")
+             (commit (string-append "v" version))))
+       (file-name "python-libtmux")
+       (sha256
+        (base32
+         "1akjv6aqpc690c4l2cjh0fxbpxxg63sfjggapfjjjaqmcl38g1dz"))))
+    (build-system python-build-system)
+    (propagated-inputs
+     `(("python-pytest-4" ,python-pytest-4)
+       ("tmux" ,tmux)
+       ("procps" ,procps)))  ;; Tests need top
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'check
+           (lambda _
+             ;; Extend PYTHONPATH so the built package will be found.
+             (setenv "PYTHONPATH"
+                     (string-append (getcwd) "/build/lib:"
+                                    (getenv "PYTHONPATH")))
+             ;; Skip tests that I suspect fail because of a change
+             ;; in behavior in tmux 3 from tmux 2
+             ;; https://github.com/tmux-python/libtmux/issues/281
+             (invoke "pytest" "-vv" "-k"
+                     (string-append "not test_show_option_unknown "
+                                    "and not test_show_window_option_unknown"))
+             #t)))))
+    (home-page
+     "https://github.com/tmux-python/libtmux")
+    (synopsis "Scripting library / orm for tmux")
+    (description "Libtmux is the tool behind tmuxp, a tmux workspace manager in python.
+It builds upon tmux's target and formats to create an object mapping to traverse,
+ inspect and interact with live tmux sessions.")
+    (license license:expat)))
+
 (define-public tmux-xpanes
   (package
     (name "tmux-xpanes")