From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id B313C138334 for ; Tue, 19 Nov 2019 14:30:40 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id B9C90E0923; Tue, 19 Nov 2019 14:30:35 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 97FDCE08F5 for ; Tue, 19 Nov 2019 14:30:34 +0000 (UTC) Received: from pomiot (c134-66.icpnet.pl [85.221.134.66]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: mgorny) by smtp.gentoo.org (Postfix) with ESMTPSA id 8A14034D0B7; Tue, 19 Nov 2019 14:30:32 +0000 (UTC) Message-ID: <94ed9a2e16d2d42949cdf6dc0f9915624e099f12.camel@gentoo.org> Subject: [gentoo-dev] [RFC] Python 2.7 & PyPy 2.7 From: =?UTF-8?Q?Micha=C5=82_G=C3=B3rny?= To: gentoo-dev Cc: python Date: Tue, 19 Nov 2019 15:30:27 +0100 Organization: Gentoo Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-DLvrMsJdu/AEBPCJItx9" User-Agent: Evolution 3.32.4 Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-dev@lists.gentoo.org Reply-to: gentoo-dev@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply MIME-Version: 1.0 X-Archives-Salt: 40f5ca0c-e766-4c74-b886-d0130e9d60ca X-Archives-Hash: d00a956180ab7df980ac5642e3abc179 --=-DLvrMsJdu/AEBPCJItx9 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi, TL;DR: I'd like to propose starting to eliminate PyPy2.7 support in packages soonish, and non-critical features for Python 2.7. As you probably already know, Python 2.7 is going EOL by the end of the year [1]. Upstream is planning to make one more security release mid-April but that's it. I don't think we're going to remove the interpreter itself anytime soon but... A growing number of projects are dropping support for Python 2 and starting to be 3-only [2]. Of big influential packages this includes IPython, pytest, sphinx, tox. The packages in the middle have huge numbers of revdeps. Right now, their users are usually preventing from downgrading due to py2 revdeps, and our work is becoming increasingly harder. Now, PyPy upstream is not planning to kill PyPy2.7 anytime soon [3].=20 However, it will still be affected by packages losing support for Python 2, and given its compatibility problems existing already, this will become even worse. PyPy3 is actually better in both regards. All this considered, I'd like to propose the following: 1. We'd keep Python 2.7 and PyPy 2.7 interpreters for as long as we can feasibly can. Even after the last upstream release, we should be able to keep it as long as people supply patches to keep it working. 2. We'd start sunsetting PyPy 2.7 support in packages real soon. It's quite a hassle already, due to its incompatibilities with CPython 2.7, and we just don't have the manpower to keep supporting it. PyPy 3.* target will continue being supported. 3. We'd start sunsetting Python 2.7 for non-critical features. For example, packages using Sphinx to build documentation will slowly start requiring Python 3.x to do that. This will make it possible for more people to upgrade to newer package versions, without py2 revdeps holding them back. 4. Once PyPy2.7 target is gone and more packages lose py2 support, we'd remove Python 2.7 from default PYTHON_TARGETS. Py2-only packages will now get 2.7 implicitly enabled via IUSE defaults (as the only target available), and their deps can have them enabled via package.use in profils. WDYT? [1] https://www.python.org/dev/peps/pep-0373/#update [2] https://python3statement.org/#sections40-timeline [3] https://pypy.readthedocs.io/en/latest/faq.html#how-long-will-pypy-suppo= rt-python2 --=20 Best regards, Micha=C5=82 G=C3=B3rny --=-DLvrMsJdu/AEBPCJItx9 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- iQGTBAABCgB9FiEEx2qEUJQJjSjMiybFY5ra4jKeJA4FAl3T/IRfFIAAAAAALgAo aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEM3 NkE4NDUwOTQwOThEMjhDQzhCMjZDNTYzOUFEQUUyMzI5RTI0MEUACgkQY5ra4jKe JA7ZSwgAoaxyfeKH+EPoiu+EV5uzjXnLH2ZV4NnppWGYFm+ThTWqgBwFPL8XajLp Vl4j/ilpOU33gBJZ6/hQTTentK49FdkEqVSZa4AswqcjniA8dUDu/boNCx8SWfft ZeZPsPVYFCZUSjzQtdY1B+o0DNtzISa/OdUVFTEqVfcwFvzwJHRaWm+1zLAZe9bj dXufbTByW5lVzni+ry0OCmlRnmHFmQSQOU84CJEeoETKCWsl9J9m46oHPPBfdjex 8ZkdkLS8MiGyYGCJFxXgqrbbHAq+E4H60kPapp+oYdhS0Mdzb97rQ73Pq4FlHSYj E0GU1s6aSHMR6UZTpIyrfDxWE6RrCg== =oJgB -----END PGP SIGNATURE----- --=-DLvrMsJdu/AEBPCJItx9--