unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* gnu: python-pytest: Update to 5.2.1.
@ 2019-10-23  7:22 Tanguy Le Carrour
  2019-10-23  8:00 ` Efraim Flashner
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Tanguy Le Carrour @ 2019-10-23  7:22 UTC (permalink / raw)
  To: Guix

Hi Guix!

I'm working on updating python-pytest and… not everything is going as
smoothly as I was expecting! :-(

Pytest 5.2.1 depends on Pluggy >=0.12.0… which depends on
importlib-metadata. But when I had the latter as a propagated-input to
python-pluggy, then `guix build` gets stuck.

    diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
    index a7f83dcd31..ab80cdebf9 100644
    --- a/gnu/packages/python-xyz.scm
    +++ b/gnu/packages/python-xyz.scm
    @@ -8914,17 +8914,19 @@ library as well as on the command line.")
     (define-public python-pluggy
       (package
        (name "python-pluggy")
    -   (version "0.11.0")
    +   (version "0.13.0")
        (source
         (origin
          (method url-fetch)
          (uri (pypi-uri "pluggy" version))
          (sha256
           (base32
    -       "10511a54dvafw1jrk75mrhml53c7b7w4yaw7241696lc2hfvr895"))))
    +       "0d4gsvb4kjqhiqqi4bbsdp7s1xlyl5phibcw1q1mrpd65xia2pzs"))))
        (build-system python-build-system)
        (native-inputs
         `(("python-setuptools-scm" ,python-setuptools-scm)))
    +   (propagated-inputs
    +    `(("python-importlib-metadata" ,python-importlib-metadata)))
        (synopsis "Plugin and hook calling mechanism for Python")
        (description "Pluggy is an extraction of the plugin manager as used by
     Pytest but stripped of Pytest specific details.")

The problem seems to be that python-importlib-metadata's dependency graph
contains… python-pluggy!

How am I supposed to fix this chicken and egg situation?! Is this
something that should be notified to upstream?!

Regards

-- 
Tanguy

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: gnu: python-pytest: Update to 5.2.1.
  2019-10-23  7:22 gnu: python-pytest: Update to 5.2.1 Tanguy Le Carrour
@ 2019-10-23  8:00 ` Efraim Flashner
  2019-10-23 15:47   ` Giovanni Biscuolo
  2019-10-23 17:47 ` Marius Bakke
  2020-01-07 22:39 ` Maxim Cournoyer
  2 siblings, 1 reply; 8+ messages in thread
From: Efraim Flashner @ 2019-10-23  8:00 UTC (permalink / raw)
  To: Tanguy Le Carrour; +Cc: Guix

[-- Attachment #1: Type: text/plain, Size: 2567 bytes --]

On Wed, Oct 23, 2019 at 09:22:43AM +0200, Tanguy Le Carrour wrote:
> Hi Guix!
> 
> I'm working on updating python-pytest and… not everything is going as
> smoothly as I was expecting! :-(
> 
> Pytest 5.2.1 depends on Pluggy >=0.12.0… which depends on
> importlib-metadata. But when I had the latter as a propagated-input to
> python-pluggy, then `guix build` gets stuck.
> 
>     diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
>     index a7f83dcd31..ab80cdebf9 100644
>     --- a/gnu/packages/python-xyz.scm
>     +++ b/gnu/packages/python-xyz.scm
>     @@ -8914,17 +8914,19 @@ library as well as on the command line.")
>      (define-public python-pluggy
>        (package
>         (name "python-pluggy")
>     -   (version "0.11.0")
>     +   (version "0.13.0")
>         (source
>          (origin
>           (method url-fetch)
>           (uri (pypi-uri "pluggy" version))
>           (sha256
>            (base32
>     -       "10511a54dvafw1jrk75mrhml53c7b7w4yaw7241696lc2hfvr895"))))
>     +       "0d4gsvb4kjqhiqqi4bbsdp7s1xlyl5phibcw1q1mrpd65xia2pzs"))))
>         (build-system python-build-system)
>         (native-inputs
>          `(("python-setuptools-scm" ,python-setuptools-scm)))
>     +   (propagated-inputs
>     +    `(("python-importlib-metadata" ,python-importlib-metadata)))
>         (synopsis "Plugin and hook calling mechanism for Python")
>         (description "Pluggy is an extraction of the plugin manager as used by
>      Pytest but stripped of Pytest specific details.")
> 
> The problem seems to be that python-importlib-metadata's dependency graph
> contains… python-pluggy!
> 
> How am I supposed to fix this chicken and egg situation?! Is this
> something that should be notified to upstream?!
> 

I assume python-importlib-metadata only needs python-pytest for running
the test suite. We have a couple of python libraries that have
'-bootstrap' added to the end. You could try making a
python-importlib-metadata-bootstrap which doesn't use python-pytest and
doesn't run the test suite, and use that as an input for python-pytest.

Or if that's not the circle that's created then you'll have to find
where it is. Same advice though, create another package with less
functionality or without tests and use that to break the cycle.

-- 
Efraim Flashner   <efraim@flashner.co.il>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: gnu: python-pytest: Update to 5.2.1.
  2019-10-23  8:00 ` Efraim Flashner
@ 2019-10-23 15:47   ` Giovanni Biscuolo
  0 siblings, 0 replies; 8+ messages in thread
From: Giovanni Biscuolo @ 2019-10-23 15:47 UTC (permalink / raw)
  To: Efraim Flashner, Tanguy Le Carrour; +Cc: Guix

Hi Efraim,

Efraim Flashner <efraim@flashner.co.il> writes:

[...]

> I assume python-importlib-metadata only needs python-pytest for running
> the test suite. We have a couple of python libraries that have
> '-bootstrap' added to the end. You could try making a
> python-importlib-metadata-bootstrap which doesn't use python-pytest and
> doesn't run the test suite, and use that as an input for python-pytest.
>
> Or if that's not the circle that's created then you'll have to find
> where it is. Same advice though, create another package with less
> functionality or without tests and use that to break the cycle.

This is an interesting advice, AFAIU it deserves a specific section in
the Cookbook but I'm not able to elaborate and clearly document how to
"break the cycle": please Efraim are you willing to elaborate and send a
patch for this?

[...]

Thanks! Gio'

-- 
Giovanni Biscuolo

Xelera IT Infrastructures

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: gnu: python-pytest: Update to 5.2.1.
  2019-10-23  7:22 gnu: python-pytest: Update to 5.2.1 Tanguy Le Carrour
  2019-10-23  8:00 ` Efraim Flashner
@ 2019-10-23 17:47 ` Marius Bakke
  2019-10-25  0:42   ` Maxim Cournoyer
  2020-01-07 22:39 ` Maxim Cournoyer
  2 siblings, 1 reply; 8+ messages in thread
From: Marius Bakke @ 2019-10-23 17:47 UTC (permalink / raw)
  To: Tanguy Le Carrour, Guix

[-- Attachment #1: Type: text/plain, Size: 2099 bytes --]

Tanguy Le Carrour <tanguy@bioneland.org> writes:

> Hi Guix!
>
> I'm working on updating python-pytest and… not everything is going as
> smoothly as I was expecting! :-(
>
> Pytest 5.2.1 depends on Pluggy >=0.12.0… which depends on
> importlib-metadata. But when I had the latter as a propagated-input to
> python-pluggy, then `guix build` gets stuck.
>
>     diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
>     index a7f83dcd31..ab80cdebf9 100644
>     --- a/gnu/packages/python-xyz.scm
>     +++ b/gnu/packages/python-xyz.scm
>     @@ -8914,17 +8914,19 @@ library as well as on the command line.")
>      (define-public python-pluggy
>        (package
>         (name "python-pluggy")
>     -   (version "0.11.0")
>     +   (version "0.13.0")
>         (source
>          (origin
>           (method url-fetch)
>           (uri (pypi-uri "pluggy" version))
>           (sha256
>            (base32
>     -       "10511a54dvafw1jrk75mrhml53c7b7w4yaw7241696lc2hfvr895"))))
>     +       "0d4gsvb4kjqhiqqi4bbsdp7s1xlyl5phibcw1q1mrpd65xia2pzs"))))
>         (build-system python-build-system)
>         (native-inputs
>          `(("python-setuptools-scm" ,python-setuptools-scm)))
>     +   (propagated-inputs
>     +    `(("python-importlib-metadata" ,python-importlib-metadata)))
>         (synopsis "Plugin and hook calling mechanism for Python")
>         (description "Pluggy is an extraction of the plugin manager as used by
>      Pytest but stripped of Pytest specific details.")
>
> The problem seems to be that python-importlib-metadata's dependency graph
> contains… python-pluggy!
>
> How am I supposed to fix this chicken and egg situation?! Is this
> something that should be notified to upstream?!

It would be great if you can make upstream aware of the issue.

Note that if you just want to be able to use Pytest 5.x on the master
branch, you can instead add a separate 'python-pluggy-0.13' variable and
use that for 'python-pytest-5'.

We'll still need to break the cycle in 'core-updates' though...

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: gnu: python-pytest: Update to 5.2.1.
  2019-10-23 17:47 ` Marius Bakke
@ 2019-10-25  0:42   ` Maxim Cournoyer
  2019-10-25  6:49     ` Tanguy Le Carrour
  0 siblings, 1 reply; 8+ messages in thread
From: Maxim Cournoyer @ 2019-10-25  0:42 UTC (permalink / raw)
  To: Marius Bakke; +Cc: Guix

Hello,

Marius Bakke <mbakke@fastmail.com> writes:

> Tanguy Le Carrour <tanguy@bioneland.org> writes:
>
>> Hi Guix!
>>
>> I'm working on updating python-pytest and… not everything is going as
>> smoothly as I was expecting! :-(
>>
>> Pytest 5.2.1 depends on Pluggy >=0.12.0… which depends on
>> importlib-metadata. But when I had the latter as a propagated-input to
>> python-pluggy, then `guix build` gets stuck.
>>
>>     diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
>>     index a7f83dcd31..ab80cdebf9 100644
>>     --- a/gnu/packages/python-xyz.scm
>>     +++ b/gnu/packages/python-xyz.scm
>>     @@ -8914,17 +8914,19 @@ library as well as on the command line.")
>>      (define-public python-pluggy
>>        (package
>>         (name "python-pluggy")
>>     -   (version "0.11.0")
>>     +   (version "0.13.0")
>>         (source
>>          (origin
>>           (method url-fetch)
>>           (uri (pypi-uri "pluggy" version))
>>           (sha256
>>            (base32
>>     -       "10511a54dvafw1jrk75mrhml53c7b7w4yaw7241696lc2hfvr895"))))
>>     +       "0d4gsvb4kjqhiqqi4bbsdp7s1xlyl5phibcw1q1mrpd65xia2pzs"))))
>>         (build-system python-build-system)
>>         (native-inputs
>>          `(("python-setuptools-scm" ,python-setuptools-scm)))
>>     +   (propagated-inputs
>>     +    `(("python-importlib-metadata" ,python-importlib-metadata)))
>>         (synopsis "Plugin and hook calling mechanism for Python")
>>         (description "Pluggy is an extraction of the plugin manager as used by
>>      Pytest but stripped of Pytest specific details.")
>>
>> The problem seems to be that python-importlib-metadata's dependency graph
>> contains… python-pluggy!
>>
>> How am I supposed to fix this chicken and egg situation?! Is this
>> something that should be notified to upstream?!
>
> It would be great if you can make upstream aware of the issue.
>
> Note that if you just want to be able to use Pytest 5.x on the master
> branch, you can instead add a separate 'python-pluggy-0.13' variable and
> use that for 'python-pytest-5'.
>
> We'll still need to break the cycle in 'core-updates' though...

I too had looked into updating python-pytest, and realized the same
thing.  There's a way out, though.  Python 3.8.0 will include
'import-metadata' as a core library [0].

Let's package Python 3.8.0 on core-updates!

[0]  https://docs.python.org/3/whatsnew/3.8.html#new-modules

Maxim

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: gnu: python-pytest: Update to 5.2.1.
  2019-10-25  0:42   ` Maxim Cournoyer
@ 2019-10-25  6:49     ` Tanguy Le Carrour
  0 siblings, 0 replies; 8+ messages in thread
From: Tanguy Le Carrour @ 2019-10-25  6:49 UTC (permalink / raw)
  To: Maxim Cournoyer; +Cc: Guix

Le 10/24, Maxim Cournoyer a écrit :
> I too had looked into updating python-pytest, and realized the same
> thing.  There's a way out, though.  Python 3.8.0 will include
> 'import-metadata' as a core library [0].
> 
> Let's package Python 3.8.0 on core-updates!
> 
> [0]  https://docs.python.org/3/whatsnew/3.8.html#new-modules

Sounds like a plan!
I'll look into it later today or at the week end!


-- 
Tanguy

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: gnu: python-pytest: Update to 5.2.1.
  2019-10-23  7:22 gnu: python-pytest: Update to 5.2.1 Tanguy Le Carrour
  2019-10-23  8:00 ` Efraim Flashner
  2019-10-23 17:47 ` Marius Bakke
@ 2020-01-07 22:39 ` Maxim Cournoyer
  2020-01-08  7:48   ` Tanguy Le Carrour
  2 siblings, 1 reply; 8+ messages in thread
From: Maxim Cournoyer @ 2020-01-07 22:39 UTC (permalink / raw)
  To: Tanguy Le Carrour; +Cc: Guix

Hello Tanguy,

Tanguy Le Carrour <tanguy@bioneland.org> writes:

> Hi Guix!
>
> I'm working on updating python-pytest and… not everything is going as
> smoothly as I was expecting! :-(
>
> Pytest 5.2.1 depends on Pluggy >=0.12.0… which depends on
> importlib-metadata. But when I had the latter as a propagated-input to
> python-pluggy, then `guix build` gets stuck.
>
>     diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
>     index a7f83dcd31..ab80cdebf9 100644
>     --- a/gnu/packages/python-xyz.scm
>     +++ b/gnu/packages/python-xyz.scm
>     @@ -8914,17 +8914,19 @@ library as well as on the command line.")
>      (define-public python-pluggy
>        (package
>         (name "python-pluggy")
>     -   (version "0.11.0")
>     +   (version "0.13.0")
>         (source
>          (origin
>           (method url-fetch)
>           (uri (pypi-uri "pluggy" version))
>           (sha256
>            (base32
>     -       "10511a54dvafw1jrk75mrhml53c7b7w4yaw7241696lc2hfvr895"))))
>     +       "0d4gsvb4kjqhiqqi4bbsdp7s1xlyl5phibcw1q1mrpd65xia2pzs"))))
>         (build-system python-build-system)
>         (native-inputs
>          `(("python-setuptools-scm" ,python-setuptools-scm)))
>     +   (propagated-inputs
>     +    `(("python-importlib-metadata" ,python-importlib-metadata)))
>         (synopsis "Plugin and hook calling mechanism for Python")
>         (description "Pluggy is an extraction of the plugin manager as used by
>      Pytest but stripped of Pytest specific details.")
>
> The problem seems to be that python-importlib-metadata's dependency graph
> contains… python-pluggy!
>
> How am I supposed to fix this chicken and egg situation?! Is this
> something that should be notified to upstream?!
>
> Regards

I think I had told you this over IRC, but for the record: Python 3.8
will include importlib-metadata in its core libraries, so after we move
to it on core-updates the chicken and egg situation will be no more.

Maxim

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: gnu: python-pytest: Update to 5.2.1.
  2020-01-07 22:39 ` Maxim Cournoyer
@ 2020-01-08  7:48   ` Tanguy Le Carrour
  0 siblings, 0 replies; 8+ messages in thread
From: Tanguy Le Carrour @ 2020-01-08  7:48 UTC (permalink / raw)
  To: Maxim Cournoyer; +Cc: Guix

Hi Maxim,

Le 01/07, Maxim Cournoyer a écrit :
> Tanguy Le Carrour <tanguy@bioneland.org> writes:
> > I'm working on updating python-pytest and… not everything is going as
> > smoothly as I was expecting! :-(
> > […]
> > How am I supposed to fix this chicken and egg situation?! Is this
> > something that should be notified to upstream?!
> I think I had told you this over IRC, but for the record: Python 3.8
> will include importlib-metadata in its core libraries, so after we move
> to it on core-updates the chicken and egg situation will be no more.

You definitevely told me! But, the past few weeks (month?) have been quite busy,
sorry!
I haven't given another try to python-pytest (yet), but I've been
working on poetry (update to 1.0.0) and… that's pretty much everything!
:-(

I'll keep you guys posted as soon as I've made it work!
But if anyone else wants to give it a try, please do! :-)

Regards,

-- 
Tanguy

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2020-01-08  7:48 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-10-23  7:22 gnu: python-pytest: Update to 5.2.1 Tanguy Le Carrour
2019-10-23  8:00 ` Efraim Flashner
2019-10-23 15:47   ` Giovanni Biscuolo
2019-10-23 17:47 ` Marius Bakke
2019-10-25  0:42   ` Maxim Cournoyer
2019-10-25  6:49     ` Tanguy Le Carrour
2020-01-07 22:39 ` Maxim Cournoyer
2020-01-08  7:48   ` Tanguy Le Carrour

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).