unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
From: Jack Hill <jackhill@jackhill.us>
To: Ryan Prior <rprior@protonmail.com>
Cc: 40757@debbugs.gnu.org
Subject: [bug#40757] New package: VisiData
Date: Wed, 22 Apr 2020 11:53:18 -0400 (EDT)	[thread overview]
Message-ID: <alpine.DEB.2.20.2004221104500.5735@marsh.hcoop.net> (raw)
In-Reply-To: <RoiyMULUjGVOW3uPsdNHBfZqzTyiHm9dNBj8afqAl9_u2qg5u3biqdqlHbKYgjIq33NPdMcFO1jxE-5DK0dJjLet2xcW_DAjuKnV9zFc7lI=@protonmail.com>

Ryan,

On Wed, 22 Apr 2020, Ryan Prior via Guix-patches via wrote:

> Hi Guix! This patch adds a package for VisiData.
> 
> VisiData is an interactive multitool for tabular data. It combines the clarity of a
> spreadsheet, the efficiency of the terminal, and the power of Python, into a
> lightweight utility which can handle millions of rows with ease.
> https://www.visidata.org/, GPLv3

Thanks for the patch! This looks like some cool software.

I'm not an expert reviewer, but I'd like to try to help by offering the 
following suggestions for improvement.

>diff --git a/gnu/packages/visidata.scm b/gnu/packages/visidata.scm
>new file mode 100644
>index 0000000000..d9df94dc9b
>--- /dev/null
>+++ b/gnu/packages/visidata.scm

When adding new modules, please also add the file to gnu/local.mk

>+(define-module (visidata)

The module name should be (gnu packages visidata) to match the filesystem 
path.

It might be helpful to catch problems like this to try to apply your patch 
apply your patch to a guix source checkout, and try building your package 
from there. The manual has some documentation about that, 
<https://guix.gnu.org/manual/en/html_node/Building-from-Git.html>, but I 
can answer questions as well.

>+(define-public visidata
>+  (package
>+   (name "visidata")
>+   (version "1.5.2")
>+   (source (origin
>+            (method url-fetch)
>+            (uri (string-append "https://github.com/saulpw/visidata/archive/v" version ".tar.gz"))

The GitHub archive URIs are not stable and could result in a different 
hash in the future. Often in these cases we use git-fetch, but since 
visidata is available on pypi, I would recommend

(uri (pypi-uri "visidata" version))

>+            (sha256 (base32 "0h7hq6bnc8svkcc9995kkmgcb9n5qgm85rsshzzdicmg9rg3ymhi"))))
>+   (build-system python-build-system)
>+   (arguments '(#:tests? #f))
>+   ;; Tests disabled because they are not packaged with the source tarball.
>+   ;; View test status here: https://circleci.com/gh/saulpw/visidata/tree/stable
>+   ;; Upstream suggests tests will be packaged with tarball around 2.0 release.

Nitpick: I would prefer to have the comment before the code. I think the 
line about circleci could be removed, but the other two seem good.

>+   (native-inputs
>+    `(("python-dateutil" ,python-dateutil)
>+      ("python-fonttools" ,python-fonttools)
>+      ("python-h5py" ,python-h5py)
>+      ("python-lxml" ,python-lxml)
>+      ("python-openpyxl" ,python-openpyxl)
>+      ("python-psycopg2" ,python-psycopg2)
>+      ("python-pyyaml" ,python-pyyaml)
>+      ("python-requests" ,python-requests)
>+      ("python-xlrd" ,python-xlrd)
>+      ("python-pandas" ,python-pandas)))

Are these all native inputs (required to make the build system run)? I 
expect that some of them could be moved to inputs (run-tine dependencies).

>+   (synopsis "Visidata: A terminal spreadsheet multitool for discovering and arranging data")

guix lint reports that the synopsis should not start with the package 
name. In this case, I think it could be changed to, "Terminal spreadsheet 
for discovering and arranging data".

>+   (description
>+    "VisiData is an interactive multitool for tabular data. It combines the

Please use two spaces between sentences in the description.

>+clarity of a spreadsheet, the efficiency of the terminal, and the power of
>+Python, into a lightweight utility which can handle millions of rows with ease.")

Nitpick: "with ease" sounds like a marketing term, and I believe we can 
leave it out here.

>+   (home-page "https://www.visidata.org/")
>+   (license gpl3)))

In other modules, we import licenses with the license: prefix, so we can 
refer to licenses as like license:gpl3. It might be nice to do that 
here for consistency as well.

The vdtui.py file is under the expat license, so we should record that 
here. With these changes the license field would become something like:

(license (list license:gpl3
                license:expat)) ; visidata/vdtui.py

Thanks and all the best,
Jack

  reply	other threads:[~2020-04-22 15:54 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-22  0:51 [bug#40757] New package: VisiData Ryan Prior via Guix-patches via
2020-04-22 15:53 ` Jack Hill [this message]
2020-04-22 20:24   ` Ryan Prior via Guix-patches via
2020-04-22 21:03     ` Jack Hill
2020-04-23  5:25   ` Ricardo Wurmus
2020-04-23 15:29     ` Jack Hill
2020-04-23  5:24 ` bug#40757: " Ricardo Wurmus

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=alpine.DEB.2.20.2004221104500.5735@marsh.hcoop.net \
    --to=jackhill@jackhill.us \
    --cc=40757@debbugs.gnu.org \
    --cc=rprior@protonmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).