[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: switching to Python 3.x
From: |
Jonas Hahnfeld |
Subject: |
Re: switching to Python 3.x |
Date: |
Mon, 06 Jan 2020 19:12:02 +0100 |
User-agent: |
Evolution 3.34.3 |
Am Donnerstag, den 19.12.2019, 20:13 +0100 schrieb Jonas Hahnfeld:
> Hello friends of Python 3!
>
> to make the initial proposal short: With today's patches, I think
> 'master' would be ready to switch over to Python 3.x.
> As a reminder, Python 2 will go EOL on 1st of January 2020 - in 13 days
> if I counted correctly. That probably doesn't mean that Python 2.x will
> go away immediately, but I strongly believe that active projects should
> switch. Eventually Linux distributions will start dropping packages
> that depend on Python 2.x, and I personally don't want LilyPond to be
> one of them.
>
> There's still one preparatory patch left, but it will break
> compatibility with Python 2.4 which is still supported right now:
> https://sourceforge.net/p/testlilyissues/issues/5645/
>
> As far as I can tell, the change works fine with Python 2.7. We could
> land this immediately before switching to Python 3 if building 'master'
> with Python 2.4 is critical. If needed, we would still retain the
> ability to bisect via Python 2.7.
>
> The switch itself requires 3 changes which I would propose to squash
> into one commit: (I'll put all of this into
> https://sourceforge.net/p/testlilyissues/issues/5646/
> )
> 1) Adapt the build system to find and require Python 3.
> patch:
> https://codereview.appspot.com/545370043
>
> 2) The largest part of the switch is running 2to3 which is now able to
> handle the rest of the conversion automatically. For reference, changes
> for current 'master' are here:
> https://codereview.appspot.com/573340043
>
> 3) Fix-up two places in the scripts afterwards:
> 3a) Remove the call to sys.setdefaultencoding which doesn't exist in
> Python 3.x (and is only available right now because of a dirty hack).
> 3b) Replace cgi.escape by html.escape. While not strictly needed, I
> think we should include this change because they removed cgi.escape in
> Python 3.8 after only deprecating it in Python 3.2. The replacement
> html.escape is only available since that Python 3.2, so we can't do
> this before switching.
> patch:
> https://codereview.appspot.com/561270043
>
>
> One point worth discussing is the future minimum version of Python 3.x.
> In the patch, I'm proposing Python 3.5 because it will allow us to
> address a few deprecation warnings, especially about module 'imp'.
> It should be available in most Linux distributions:
> * CentOS 7 provides Python 3.6 since some minor releases
> * Debian 9 (Stretch) has packages for Python 3.5, Debian 10 (Buster)
> even for Python 3.6
> * Ubuntu 16.04 LTS has Python 3.5, version 18.04 LTS has Python 3.6
>
> Debian 8 (Jessie) only has Python 3.4, but even its LTS support will
> end next June (2020-06). Would it be acceptable to drop support for
> this distribution building 'master'?
> On the GUB side, I already added a spec for Python 3.7.4 (also for
> Windows via binary packages) and this worked successfully in September.
> Is there a major distribution missing that doesn't provide at least
> Python 3.5?
>
> Let me know what you think!
So far, I've only received a single (positive) response off-list and a
bit of feedback on the posted patches. What do others think?
To make this explicit: The proposal is to drop support for Python 2
(now EOL), requiring everyone wishing to build LilyPond 'master' to
have an appropriate version of Python 3 available. This should be
sufficiently easy (see above), but I'd like to have consensus on this.
Regards,
Jonas
> P.S.: For the curious, I've pushed the mentioned changes as separate
> commits to dev/hahnjo/python3. It passes a check against a baseline
> created from current 'master' with Python 2, so you might give it a try
> on your end ;-)
signature.asc
Description: This is a digitally signed message part
- Re: switching to Python 3.x,
Jonas Hahnfeld <=
- Re: switching to Python 3.x, David Kastrup, 2020/01/06
- Re: switching to Python 3.x, Jonas Hahnfeld, 2020/01/06
- Re: switching to Python 3.x, Han-Wen Nienhuys, 2020/01/26
- Re: switching to Python 3.x, Jonas Hahnfeld, 2020/01/26
- Re: switching to Python 3.x, Han-Wen Nienhuys, 2020/01/26
- Re: switching to Python 3.x, David Kastrup, 2020/01/26
- Re: switching to Python 3.x, Han-Wen Nienhuys, 2020/01/26
- Re: switching to Python 3.x, David Kastrup, 2020/01/26
- Re: switching to Python 3.x, Jonas Hahnfeld, 2020/01/26