Subject: Re: [bug#38208] [PATCH] gnu: Add python-3.8.

From: Marius Bakke <[email-masked]>
Date: Tue, 19 Nov 2019 21:51:56 +0100

Tanguy Le Carrour <[email-masked]> writes:

> Hi Marius,
>
>
> Le 11/15, Marius Bakke a écrit :
>> Tanguy Le Carrour <[email-masked]> writes:
>> > ++    @unittest.skipIf(True, "This fails for unknown reasons on Guix")
>> > +     def test_keyboard_interrupt_exit_code(self):
>> > +         """KeyboardInterrupt triggers exit via SIGINT."""
>> > +         process = subprocess.run(
>> 
>> I'm fairly confident that these failures are because stdin is not a
>> TTY.  Can you try changing to this?
>> 
>> @unittest.skipUnless(sys.stdin.isatty(), "KeyboardInterrupts require a TTY device")
>> 
>> It would be good to submit a patch along these lines upstream if that
>> works.
>
> Thanks for the snippet! It works!
>
> I've been trying for 2 days to register on https://bugs.python.org to submit
> this patch, but failed! :-(
> I'll keep on trying with different email addresses…

Excellent, thank you very much for taking care of this.  There are five
other tests skipped for the same reason in 'python-3-fix-tests.patch',
can you include those in the upstream pull request?

> Does this mean that we have to wait for upstream to integrate it, or can
> we use the patched wersion for Guix?

I think the patch looks OK, but looking forward to hear upstreams take
on it.  In any case, it should not be a blocker.

> Anyway, I'll update this patch according to your suggestion and push it.

Push it to this bug report, presumably?  :-)

>> One final question...  Do you know how stable the Python ABI is?  Are
>> packages compiled with 3.7 guaranteed to work with 3.8?
>> 
>> I wonder if we should 1) rename it to 'python-next', and 2) override
>> 'native-search-paths' so that it searches 'lib/python3.8/site-packages'.
>> 
>> My concern is that e.g. 'guix environment --ad-hoc python python-numpy'
>> might stop working unless we rename it, and/or adjust search paths.
>> 
>> If Python 3.8 is fully backwards compatible, we probably don't have to
>> do anything, otherwise we should adjust accordingly.
>
> I don't know anything about ABI, but what I read here:
> https://www.python.org/dev/peps/pep-0384/
> So I guess it's been taken into consideration!

Cool, thanks for the link.  So it is safe to swap out Python 3.7 with
3.8 "in-place".  However I think we should still call it differently,
because the new Python won't necessarily be compatible with all the
manifests/environments out there that reference Python by name.

So if you send a patch that adds (name "python-next") to the inherited
Python package, I think we are all set.

Thank you!

> I might have some time later this week to test using Python 3.8 as
> default Python. I'll let you know!

Great, good luck!  I suspect you'll have to update many of the 'core'
Python packages along the way; feel free to drop by #guix on Freenode if
you get stuck anywhere.  :-)