Python 3.x version support / dropping 3.5 and 3.6

Augie Fackler raf at durin42.com
Wed Mar 2 16:09:16 UTC 2022



> On Mar 1, 2022, at 2:53 PM, Raphaël Gomès <raphael.gomes at octobus.net> wrote:
> 
> 
> On 2/27/22 22:19, Gregory Szorc wrote:
>> 6.1 will be the last release to support Python 2.7. That means 6.2 will be Python 3 only.
>> 
>> Currently our Python 3 support is for 3.5-3.10.
>> 
>> Python 3.5 dropped out of support in September 2020 and Python 3.6 in December 2021 (https://endoflife.date/python).
>> 
>> Do we have any interest in dropping support for 3.5 or 3.6 in the 6.2 release?
>> 
>> Features of interest in 3.6:
>> 
>> * Variable type annotations. (Annotating on <3.6 requires special syntax in comments)
>> * Stabilization of async (unsure how much we'll adopt async though)
>> * PEP 519 path protocol. This might enable us to clean up path handling throughout the codebase by adopting richly typed path objects with nice path-like primitives.
>> * Enhancements to typing module to make it more useful.
>> 
>> Features of interest in 3.7:
>> 
>> * Postponed evaluation of type annotations (this is likely huge for managing startup time)
>> * importlib.resources (allows us to clean up non-module file loading)
>> * @dataclass and data classes
>> 
>> I think the only in-support major distro still supporting 3.5 is Debian 9 Stretch, which goes out of support on 2022-06-30.
>> 
>> 3.6 is more complicated. CentOS/RHEL 7 and Ubuntu 18.04 ship Python 3.6. Although the former is already out of support. Ubuntu 18.04 is still in main support until 2023-04-03 and has security support for another few years.
>> 
>> My pulse on the larger Python ecosystem is that 3.5 is mostly dead and 3.6 is starting to wilt but not quite dead. Tons of projects dropped 3.5 in the past year.
>> 
>> **So I'd like to propose dropping support for Python 3.5 in 6.2.** That would mean 6.1 is our last release with both Python 2.7 and 3.5 support.
>> 
> Agreed, I think this is cautious enough.
>> I don't think I can in good faith recommend dropping 3.6 support at this time since it is still in wide use. But I do like the allure of the above highlighted features in 3.7 and think they could lead to a higher quality Mercurial and cleaner code base. If anyone else wants to make the case for dropping 3.6 despite its apparent use in supported distros, I'd love to hear it.
>> 
> +1

Throwing an idea out there: we stop testing against 3.6 and don’t sweat breakages now that it’s EOL upstream, but accept patches from people that care (eg distro packagers) to keep it alive for some amount of time after the Python version goes EOL.

Thoughts?

>> 
>> _______________________________________________
>> Mercurial-devel mailing list
>> Mercurial-devel at mercurial-scm.org <mailto:Mercurial-devel at mercurial-scm.org>
>> https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel <https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel>
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at mercurial-scm.org <mailto:Mercurial-devel at mercurial-scm.org>
> https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel <https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mercurial-scm.org/pipermail/mercurial-devel/attachments/20220302/ba3296a7/attachment-0002.html>


More information about the Mercurial-devel mailing list