Subject: Re: [bug#51675] [PATCH 3/5] gnu: Add python-pydoctor.

From: Vinicius Monego <[email-masked]>
Date: Fri, 12 Nov 2021 18:02:36 +0000

Em dom, 2021-11-07 às 21:45 -0500, Stephen Paul Weber escreveu:
> * gnu/packages/python-xyz.scm (python-pydoctor): New variable.
> ---
>  gnu/packages/python-xyz.scm | 38
> +++++++++++++++++++++++++++++++++++++
>  1 file changed, 38 insertions(+)
> 
> diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-
> xyz.scm
> index 96718c7c18..f439ffd91e 100644
> --- a/gnu/packages/python-xyz.scm
> +++ b/gnu/packages/python-xyz.scm
> @@ -27693,3 +27693,41 @@ simple mock/record and a complete
> capture/replay framework.")
>       "Ijson is an iterative JSON parser with standard Python
> iterator
>  interfaces.")
>      (license license:bsd-3)))
> +
> +(define-public python-pydoctor
> +  (package
> +    (name "python-pydoctor")
> +    (version "21.9.2")
> +    (source
> +      (origin
> +        (method url-fetch)
> +        (uri (pypi-uri "pydoctor" version))
> +        (sha256
> +          (base32
> "0nknh3k4zv505031ga8ira0d4slvwwm5g5bzjacjidmi2mmjj311"))))
> +    (build-system python-build-system)
> +    (arguments
> +     ; Some tests use network and cache storage
> +     '(#:tests? #f))

Can these tests be skipped somehow? If Pytest is used there may be a
pytest mark, or if they are in specific files these files can be
deleted in a phase. If they are few they can be skipped manually too.

> +    (propagated-inputs
> +      `(("python-appdirs" ,python-appdirs)
> +        ("python-astor" ,python-astor)
> +        ("python-attrs" ,python-attrs)
> +        ("python-cachecontrol" ,python-cachecontrol)
> +        ("python-docutils" ,python-docutils)
> +        ("python-importlib-metadata" ,python-importlib-metadata)
> +        ("python-importlib-resources" ,python-importlib-resources)
> +        ("python-requests" ,python-requests)
> +        ("python-twisted" ,python-twisted)))

Does this package only provides an executable? Inputs can be normal
inputs in that case, the libraries will be wrapped to the executable in
the 'wrap phase.

> +    (native-inputs
> +      `(("python-beautifulsoup4" ,python-beautifulsoup4)
> +        ("python-hypothesis" ,python-hypothesis)
> +        ("python-pytest" ,python-pytest)
> +        ("python-sphinx" ,python-sphinx)))

If the tests still can't run these inputs can be removed or commented
out.

> +    (home-page "https://github.com/twisted/pydoctor")
> +    (synopsis "Python API documentation generator")
> +    (description "A documentation generator that works by static
> analysis.
> +It puts a fair bit of effort into resolving imports and computing
> inheritance
> +hierarchies and, as it aims at documenting Twisted, knows about
> zope.interface's
> +declaration API and can present information about which classes
> implement which
> +interface, and vice versa.")

Description should have full sentences. A rule of thumb is to use the
package name, e.g. "Pydoctor is a [...]" or "This package provides
[...]".

> +    (license license:expat)))