Subject: Re: [bug#58072] [PATCH] gnu: Add python-textual.

From: Björn Höfling <[email-masked]>
Date: Tue, 27 Sep 2022 23:09:30 +0200

Hi Brian,

On Sun, 25 Sep 2022 05:59:24 -0700
Brian Kubisiak <[email-masked]> wrote:

> * gnu/packages/python-xyz.scm (python-textual): New variable.
> ---
>  gnu/packages/python-xyz.scm | 44

 [..]
> +    (source (origin
> +              (method url-fetch)
> +              (uri (pypi-uri "textual" version))
> +              (sha256
> +               (base32
> +
> "08yg5a51hz1axfj5hx28hx31gq5apcj6vpkkmawmiplisa73z25j"))))
> +    (build-system python-build-system)
> +    (arguments
> +     (list #:phases
> +       #~(modify-phases %standard-phases
> +           (replace 'check
> +             (lambda* (#:key inputs tests? #:allow-other-keys)
> +               (when tests?
> +                 (copy-recursively (string-append
> +                                    (assoc-ref inputs "tests")
> "/tests")
> +                                   "tests")
> +                 (invoke "python" "-m" "pytest" "-vv")))))))
> +    (propagated-inputs
> +     (list python-rich python-typing-extensions))
> +    (native-inputs
> +     `(("python-pytest" ,python-pytest)
> +       ("tests"
> +        ;; The release on pypi comes without tests.  We can't build
> from this
> +        ;; checkout, though, because installation requires an
> invocation of
> +        ;; poetry.
> +        ,(origin
> +           (method git-fetch)
> +           (uri (git-reference
> +                 (url "https://github.com/Textualize/textual")
> +                 (commit (string-append "v" version))))
> +           (file-name (git-file-name name version))
> +           (sha256
> +            (base32
> +
> "0b3ycwqhp21mg9fvmadgxhgbvkwq6fd784l2xcmvy77rravrnnax"))))))

You download the sources twice: Once from pypi, and another time from
GitHub as "test" input. I would suggest you use directly the GitHub
sources as main sources. Then you also don't need the modified 'check
phase. 

As an example, I found python-identify, which also comments on the
sources that there are no tests in PyPi (please add that comment too,
it makes it clear why not to use PyPi).

Would you like to send an updated patch?

Thanks,

Björn