Subject: [bug#39396] [PATCH] gnu: Add grip.

From: Efraim Flashner <[email-masked]>
Date: Sun, 2 Feb 2020 21:56:25 +0200

On Sun, Feb 02, 2020 at 08:35:45PM +0100, Jakub Kądziołka wrote:
> * gnu/packages/python-web.scm (grip, python-path-and-address): New
>   variables.

Please split this into two patches.

> ---
>  gnu/packages/python-web.scm | 59 +++++++++++++++++++++++++++++++++++++
>  1 file changed, 59 insertions(+)
> 
> diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
> index 9464021d82..a6b1e97ba1 100644
> --- a/gnu/packages/python-web.scm
> +++ b/gnu/packages/python-web.scm
> @@ -31,6 +31,7 @@
>  ;;; Copyright © 2019 Brendan Tildesley <[email-masked]>
>  ;;; Copyright © 2019 Pierre Langlois <[email-masked]>
>  ;;; Copyright © 2019 Tanguy Le Carrour <[email-masked]>
> +;;; Copyright © 2020 Jakub Kądziołka <[email-masked]>
>  ;;;
>  ;;; This file is part of GNU Guix.
>  ;;;
> @@ -3494,3 +3495,61 @@ is part of the Weblate translation platform.")
>      (description "This package provides an extended library for interacting
>  with GitLab instances through their API.")
>      (license license:lgpl3+)))
> +
> +(define-public python-path-and-address
> +  (package
> +    (name "python-path-and-address")
> +    (version "2.0.1")
> +    (source
> +     (origin
> +       ;; Use git-fetch because pypi-url fails.

I managed to get the pypi importer to work:
guix environment --ad-hoc unzip -- guix import pypi path-and-address
just make sure to add the ".zip" at the end of the uri of the generated
package.

> +       (method git-fetch)
> +       (uri (git-reference
> +             (url "https://github.com/joeyespo/path-and-address")
> +             (commit (string-append "v" version))))
> +       (file-name (git-file-name name version))
> +       (sha256
> +        (base32
> +         "0b0afpsaim06mv3lhbpm8fmawcraggc11jhzr6h72kdj1cqjk5h6"))))
> +    (build-system python-build-system)

This package didn't show any tests run, so after some experimentation I
ended up with the following addition:

(arguments
 `(#:phases
   (modify-phases %standard-phases
     (replace 'check
       (lambda* (#:key inputs outputs #:allow-other-keys)
         (add-installed-pythonpath inputs outputs)
         (invoke "py.test"))))))
(native-inputs
 `(("python-pytest" ,python-pytest)))

> +    (home-page "https://github.com/joeyespo/path-and-address")
> +    (synopsis "Functions for command-line server tools used by humans")
> +    (description "Path-and-address resolves ambiguities of command-line
> +interfaces, inferring which argument is the path, and which is the address.")
> +    (license license:expat)))
> +

This package I also didn't see run any tests. I'd suggest checking out
the .travis.yml file to see what they do for the tests.

> +(define-public grip
> +  ;; No release by upstream for quite some time, some bugs fixed since. See:
> +  ;; https://github.com/joeyespo/grip/issues/304
> +  (let ((commit "27a4d6d87ea1d0ea7f7f120de55baabee3de73e3"))
> +    (package
> +      (name "grip")
> +      (version (git-version "4.5.2" "1" commit))
> +      (source
> +       (origin
> +         (method git-fetch)
> +         (uri (git-reference
> +               (url "https://github.com/joeyespo/grip")
> +               (commit commit)))
> +         (file-name (git-file-name name version))
> +         (sha256
> +          (base32
> +           "0kx5hgb3q19i4l18a4vqdq9af390xgpk88lp2ay75qi96k0dc68w"))))
> +      (build-system python-build-system)
> +      (propagated-inputs
> +       `(("python-docopt" ,python-docopt)
> +         ("python-flask" ,python-flask)
> +         ("python-markdown" ,python-markdown)
> +         ("python-path-and-address" ,python-path-and-address)
> +         ("python-pygments" ,python-pygments)
> +         ("python-requests" ,python-requests)))
> +      (native-inputs
> +       `(("python-responses" ,python-responses)))
> +      (home-page "https://github.com/joeyespo/grip")
> +      (synopsis "Preview Markdown files using the GitHub API")
> +      (description "Grip is a command-line server application written in Python
> +that uses the GitHub Markdown API to render a local Markdown file.  The styles
> +and rendering come directly from GitHub, so you'll know exactly how it will
> +appear.  Changes you make to the file will be instantly reflected in the browser
> +without requiring a page refresh.")
> +      (license license:expat))))
> -- 
> 2.25.0
> 
> 
> 
> 

-- 
Efraim Flashner   <[email-masked]>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted