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

From: Tanguy Le Carrour <[email-masked]>
Date: Tue, 19 Nov 2019 09:26:28 +0100

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…

Does this mean that we have to wait for upstream to integrate it, or can
we use the patched wersion for Guix?
Anyway, I'll update this patch according to your suggestion and push it.

> > +(define-public python-3.8
> > +  (package
> > +    (inherit python-3.7)
> > +    (version "3.8.0")
> > +    (source
> > +     (origin
> > +       (inherit (package-source python-3.7))
> > +       (uri (string-append "https://www.python.org/ftp/python/"
> > +                           version "/Python-" version ".tar.xz"))
> > +       (sha256 (base32 "110d0did9rxn7rg85kf2fwli5hqq44xv2d8bi7d92m7v2d728mmk"))
> > +       (patches (search-patches
> > +                 "python-3.8-search-paths.patch"
> > +                 "python-3-fix-tests.patch"
> > +                 "python-3.8-fix-tests.patch"
> > +                 "python-3-deterministic-build-info.patch"))
> > +       (snippet
> > +        '(begin
> > +           ;; Delete the bundled copy of libexpat.
> > +           (delete-file-recursively "Modules/expat")
> > +           (substitute* "Modules/Setup"
> > +             ;; Link Expat instead of embedding the bundled one.
> > +             (("^#pyexpat.*") "pyexpat pyexpat.c -lexpat\n"))
> > +           #t))))))
> 
> 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!

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

Regards,

-- 
Tanguy