Subject: Re: [bug#47593] [PATCH 3/6] gnu: python-xyz: Add python-uqbar.

From: Bonface Munyoki K. <[email-masked]>
Date: Tue, 13 Apr 2021 23:52:15 +0300

Efraim Flashner <[email-masked]> writes:

> I haven't tried building this package yet. The sphinx packages are in
> sphinx.scm and the graphviz packages are in graphviz.scm. I think I
> would put it in graphviz.
>

Now that you've pointed it out, I see it! That
makes sense.

[...]

> guix lint should've caught this.

I seem to have skipped doing this. I need to find
a way to integrating "guix lint" to my Emacs
workflow since I seem to always somehow forget to
do this.

> If the pypi version from 'guix import
> ppyi uqbar' doesn't work for building then you should use git-fetch to
> download the source. The github archive URLs tend to get regenerated
> from time to time.

I went with the GitHub version since the pypi version
doesn't have tests. So in such cases, is it still
preferable to use the pypi version?

>> +       (sha256
>> +        (base32
>> +         "02kfvwh94ca0y3hsfrc071ga3g3vqflhyv4w4hif34dyj2skvpa8"))))
>> +    (build-system python-build-system)
>> +    (arguments
>> +     `(#:phases
>> +       (modify-phases %standard-phases
>> +         (add-after 'unpack 'patch
>> +           (lambda _
>> +             (substitute* "setup.py"
>> +               ;; Latest versions of sphink-rtd-theme require npm to build.
>> +               (("sphinx-rtd-theme >= 0.4.0") "sphinx-rtd-theme >= 0.2.4")
>> +               (("black == 19.10b0") "black >= 19.10b0"))
>> +             #t))
>> +         (replace 'check
>> +           (lambda _
>> +             (invoke "python" "-m" "pytest" "tests")
>
> We want the ability to skip the tests, so this should be
> (lambda* (#:key tests? #:allow-other-keys)
>   (when tests?
>     (invoke ...
>

Never knew this! Learnt something new. Thanks!

>> +             #t)))))
>> +    (propagated-inputs
>> +     `(("graphviz" ,graphviz)
>
> Is it possible to substitute the actual calls to the graphviz binaries
> in the package?

Not really. However...

> We don't want to have to propagate non-python packages.
>

... We could add the graphviz to native
inputs since it's only required at build-time when
running one of the tests.

>> +       ("python-black" ,python-black)
>> +       ("python-sphinx" ,python-sphinx)
>> +       ("python-sphinx-rtd-theme"
>> +        ,python-sphinx-rtd-theme)
>> +       ("python-unidecode" ,python-unidecode)))
>> +    (native-inputs
>> +     `(("python-flake8" ,python-flake8)
>> +       ("python-isort" ,python-isort)
>> +       ("python-mypy" ,python-mypy)
>> +       ("python-pytest" ,python-pytest)
>> +       ("python-pytest-cov" ,python-pytest-cov)))
>> +    (home-page
>> +     "https://github.com/josiah-wolf-oberholtzer/uqbar")
>> +    (synopsis
>> +     "Tools for building documentation with Sphinx, Graphviz and LaTeX")
>> +    (description
>> +     "Tools for building documentation with Sphinx, Graphviz and LaTeX")
>
> This should be a full sentence.
>

Noted :)
>> +    (license license:expat)))
>> -- 
>> 2.31.0
>> 
>> 
>> 
>> 

-- 
Bonface M. K. D4F09EB110177E03C28E2FE1F5BBAE1E0392253F
Humble GNU Emacs User / Bearer of scheme-y parens
Curator: <https://upbookclub.com> / Twitter: @BonfaceKilz