Patchwork gnu: python-pip: Update to 9.0.1

login
register
mail settings
Submitter Maxim Cournoyer
Date Nov. 29, 2016, 1:08 a.m.
Message ID <87r35v9joe.fsf@gmail.com>
Download mbox | patch
Permalink /patch/18023/
State New
Headers show

Comments

Maxim Cournoyer - Nov. 29, 2016, 1:08 a.m.
* gnu/packages/python.scm (python-pip, python2-pip): Update to 9.0.1.
---
 gnu/packages/python.scm | 21 +++++++++++----------
 1 file changed, 11 insertions(+), 10 deletions(-)
Danny Milosavljevic - Nov. 29, 2016, 10:56 p.m.
Hi,

On Mon, 28 Nov 2016 17:08:49 -0800
Maxim Cournoyer <maxim.cournoyer@gmail.com> wrote:

>      (inputs
> -      `(("python-setuptools" ,python-setuptools)
> -        ("python-virtualenv" ,python-virtualenv)
> -        ;; Tests
> -        ("python-mock" ,python-mock)
> -        ("python-pytest" ,python-pytest)
> -        ("python-scripttest" ,python-scripttest)))
> +     `(("python-setuptools" ,python-setuptools)
> +       ;; Tests requirements.
> +       ("python-mock" ,python-mock)
> +       ("python-pretend" ,python-pretend)
> +       ("python-pytest" ,python-pytest)
> +       ("python-scripttest" ,python-scripttest)
> +       ("python-virtualenv" ,python-virtualenv)))

Why are the test requirements regular inputs? If they aren't required at runtime, they should be native-inputs.
Hartmut Goebel - Nov. 30, 2016, 9:57 a.m.
Hi,

On Mon, 28 Nov 2016 17:08:49 -0800
Maxim Cournoyer <maxim.cournoyer@gmail.com> wrote:

>      (inputs
> -      `(("python-setuptools" ,python-setuptools)> +     `(("python-setuptools" ,python-setuptools)

setuptools is now part of each Python installation on Guix, even for
python2 and pip does not require any special version of setuptools
AFAIK. So this input can be removed at all.
Maxim Cournoyer - Dec. 12, 2016, 4:37 p.m.
Danny Milosavljevic <dannym@scratchpost.org> writes:

> Hi,
>
> On Mon, 28 Nov 2016 17:08:49 -0800
> Maxim Cournoyer <maxim.cournoyer@gmail.com> wrote:
>
>>      (inputs
>> -      `(("python-setuptools" ,python-setuptools)
>> -        ("python-virtualenv" ,python-virtualenv)
>> -        ;; Tests
>> -        ("python-mock" ,python-mock)
>> -        ("python-pytest" ,python-pytest)
>> -        ("python-scripttest" ,python-scripttest)))
>> +     `(("python-setuptools" ,python-setuptools)
>> +       ;; Tests requirements.
>> +       ("python-mock" ,python-mock)
>> +       ("python-pretend" ,python-pretend)
>> +       ("python-pytest" ,python-pytest)
>> +       ("python-scripttest" ,python-scripttest)
>> +       ("python-virtualenv" ,python-virtualenv)))
>
> Why are the test requirements regular inputs? If they aren't required at runtime, they should be native-inputs.

Hi Danny, and sorry for my delayed answer.

I was under the impression that native-inputs only had meaning when
cross-compiling and that otherwise they were the same.  From the guix
manual, section 5.1.1, it says:


     The distinction between ‘native-inputs’ and ‘inputs’ is
     necessary when considering cross-compilation.  When
     cross-compiling, dependencies listed in ‘inputs’ are built for
     the _target_ architecture; conversely, dependencies listed in
     ‘native-inputs’ are built for the architecture of the _build_
     machine.


But then at section 7.6.5.1 it also says:


    Python packages required only at build time—e.g., those listed with
    the ‘setup_requires’ keyword in ‘setup.py’—or only for
    testing—e.g., those in ‘tests_require’—go into ‘native-inputs’.
    The rationale is that (1) they do not need to be propagated because
    they are not needed at run time, and (2) in a cross-compilation
    context, it’s the “native” input that we’d want.
     

I stand corrected, thanks! I'll rework the pip package definition and
send a patch later this week, also taking into account the latest
changes to the python build system from Hartmut.

Maxim
Maxim Cournoyer - Dec. 12, 2016, 4:41 p.m.
Hartmut Goebel <h.goebel@crazy-compilers.com> writes:

> Hi,
>
> On Mon, 28 Nov 2016 17:08:49 -0800
> Maxim Cournoyer <maxim.cournoyer@gmail.com> wrote:
>
>>      (inputs
>> -      `(("python-setuptools" ,python-setuptools)
> …
>> +     `(("python-setuptools" ,python-setuptools)
>
> setuptools is now part of each Python installation on Guix, even for
> python2 and pip does not require any special version of setuptools
> AFAIK. So this input can be removed at all.

Hi Hartmut, and thanks for your work on the new Python build
system. I'll try to get familiar with it this week and send a reworked
patch.

It makes a lot of sense that the build system should take care of the
setuptools dependency for us, it being the canonical tool to build
Python packages.

Maxim

Patch

diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 39b40e7..2bf7ec9 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -6752,27 +6752,28 @@  library.")
 (define-public python-pip
   (package
     (name "python-pip")
-    (version "8.0.2")
+    (version "9.0.1")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "pip" version))
        (sha256
         (base32
-         "08cm8d4228fj0qnrysy3qv1a6022zr3dcs25amd14lgxil6vvx26"))))
+         "03clr9c1dih5n9c00c592zzvf6r1ffimywkaq9agcqdllzhl7wh9"))))
     (build-system python-build-system)
     (inputs
-      `(("python-setuptools" ,python-setuptools)
-        ("python-virtualenv" ,python-virtualenv)
-        ;; Tests
-        ("python-mock" ,python-mock)
-        ("python-pytest" ,python-pytest)
-        ("python-scripttest" ,python-scripttest)))
+     `(("python-setuptools" ,python-setuptools)
+       ;; Tests requirements.
+       ("python-mock" ,python-mock)
+       ("python-pretend" ,python-pretend)
+       ("python-pytest" ,python-pytest)
+       ("python-scripttest" ,python-scripttest)
+       ("python-virtualenv" ,python-virtualenv)))
     (home-page "https://pip.pypa.io/")
     (synopsis
-      "Package manager for Python software")
+     "Package manager for Python software")
     (description
-      "Pip is a package manager for Python software, that finds packages on the
+     "Pip is a package manager for Python software, that finds packages on the
 Python Package Index (PyPI).")
     (license license:expat)))