Subject: Re: [PATCH 3/5] gnu: Add python-aiostream.

From: Vinicius Monego <[email-masked]>
Date: Tue, 18 May 2021 22:31:06 +0000

Hi,

Em sex, 2021-05-14 às 23:17 +0200, Stefan Reichör escreveu:
> * gnu/packages/python-xyz.scm (python-aiostream): New variable.

Thank you.

> 
> +(define-public python-aiostream
> +  (package
> +    (name "python-aiostream")
> +    (version "0.4.3")
> +    (source
> +      (origin
> +        (method url-fetch)
> +        (uri (pypi-uri "aiostream" version))
> +        (sha256
> +          (base32
> +           
> "1k33bxrp24pa7c3hygzkv0lqvjil689aj442hzhgzv8vsbqmwd1n"))))
> +    (build-system python-build-system)
> +    (arguments
> +     `(#:tests? #f)) ; tests fail, not sure why

Tests are not included in the PyPI tarball. That happens often in the
Python ecosystem, and in those cases we fetch directly from the
upstream repository.

After changing the source and adding #:test-target "pytest" to the
arguments (requires python-pytest-runner which is already there), I
could succesfully build the project with tests:

    (source
     (origin
       (method git-fetch)
       (uri (git-reference
             (url "https://github.com/vxgmichel/aiostream")
             (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32
"1r3x9qwl08yscmzvhafc6gsmq84lr17s6p7a1qxr49cmdvjzsc13"))))
    (arguments
     `(#:test-target "pytest"))

Note that python-build-system will run "python setup.py test" which is
used for unittest tests. If the project uses Pytest, as many do, we
often have to be explicit in the build either by adding #:test-target
"pytest" to the arguments and python-pytest-runner to native-inputs, or
by replacing the check phase and invoking pytest manually. Since
pytest-runner was deprecated recently, I believe the latter is the
better option from now on. The build could succeed without being
explicit, but you will see a message like "0 tests ran succesfully".
That may have happened in patches 2 and 5 from the series.

> +    (home-page
> +      "https://github.com/vxgmichel/aiostream")
> +    (synopsis
> +      "Generator-based operators for asynchronous iteration")

We don't break lines for the arguments of home-page and synopsis. The
pypi importer will add them by default, but they should be removed
while editing.

In the description, I'd replace "aiostream" with "@code{aiostream}".

The LICENSE file states GPL 3, though there are no copyright headers to
say "any later version". setup.py also says "gplv3". I'm guessing the
license should be gpl3 only, though I'm not sure about that one.

LGTM otherwise.

Could you check the rest of the series to see if the tests are running
correctly and then send a v2? I am not a committer and can't apply it
myself, so I have to leave that part for somebody else.

Vinicius