Python 3.5, released in September 2015, brings a lot of improvements and bug fixes compared to Python 3.4, including native support for the async/await syntax. I want to set a timeline to phase out Python 3.4 support and make Python 3.5.2 the minimum required version for Home Assistant.
Let's make the first release in 2018 be Python 3.5.2+ only.
ProactorEventLoop
got SSL support in 3.5)The chances are high that anyone doing a clean install today will end up with Python 3.5 or higher.
Home Assistant uses the aiohttp framework for HTTP client and server. The aiohttp project has stated (reference) to drop Python 3.4 support in January 2018.
We currently have 47.5% of the users running Python 3.4.X.
Ubuntu 16.04 (the latest LTS release) gives Python 3.5.2, once upgraded. :+1:
Is it possible to look up of the people running 3.4, which OS are they using?
Also, if aiohttp is dropping 3.4 support, it's hard to argue for keeping it ourselves.
For Hassbian based on Raspbian Stretch I have a pre-release out.
It's currently a work in progress that I could release as is but we will loose some functionality. It's fairly well documented in the #Hassbian channel and in this issue.
Short summary of things that are problematic currently are:
Unsure if Libcec works for our other distributions?
Given the usage graph I think we should keep support for 3.4 for as long as we can. At least until aiohttp supports it. I would says at least until we really need a version of aiohttp that doesn't support 3.4
We could start displaying a warning. First on log output, later on UI.
Yes @andrey-git, I agree. That's why I suggested January 1, as that's when aiohttp will no longer support it.
I think it is a good idea to start showing a warning starting next release and just announce that we will eventually drop it.
@balloob Is there any platform that we don't have the possibility to migrate to python 3.5 now?
I would recommend writing a blog post about the drop of 3.4 and having a notification in the next and forward releases of HA where the system is running on Python <3.5.
The more time before it's dropped the less of a flashback mosts likely.
1 month after this issue has been created and people running Python 3.4 has dropped to 39%.
I suggest for now that we don't drop support until aiohttp makes a release that is Python 3.5 only.
aiohttp is discussing their next major version that will drop support for Python 3.4: https://github.com/aio-libs/aiohttp/issues/2343
Following that thread and agree with Ballob that hopefully they will follow
Debian stable as a reference on what to deprecate.
Den tor 19 okt. 2017 02:21Paulus Schoutsen notifications@github.com skrev:
aiohttp is discussing their next major version that will drop support for
Python 3.4: aio-libs/aiohttp#2343
https://github.com/aio-libs/aiohttp/issues/2343—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/home-assistant/home-assistant/issues/9328#issuecomment-337764209,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABrPCp8bwj1K1IvW-JPdzLK0AjmpHWvdks5stpXtgaJpZM4PP-p3
.
It's 2018 now. We're going to drop 3.4 support once aiohttp releases v3, which is expected soon.
We're going to follow Debian stable and are going to jump to Python 3.5.3 as minimum version
@balloob : is there any reason to wait for aiohttp? if you look at their release plan : https://github.com/aio-libs/aiohttp/milestone/17 it looks like there is still a mile to go ...
What are the current usage numbers?
@Julius2342 That is a list of things aiohttp would like to have for 3.0, not their release plan (source). Their biggest change was to change to async/await and they already finished that.
Current numbers of impacted users:
Python 3.5.3 was picked because it is in Debian Stable. It also contains a few changes that are nice for asyncio (more info about that here)
20% is significant. Should we have a branch with last 3.4-supporting version that can get critical fixes?
Yes. We will tag a certain release as "last 3.4" release and will keep that around for security fixes.
Aiohttp 3 beta has been published to PyPi: https://github.com/aio-libs/aiohttp/issues/2343#issuecomment-364088942
I will announce in the next release that 0.64 will be the last release to support Python 3.4
Most helpful comment
@balloob Is there any platform that we don't have the possibility to migrate to python 3.5 now?
I would recommend writing a blog post about the drop of 3.4 and having a notification in the next and forward releases of HA where the system is running on Python <3.5.
The more time before it's dropped the less of a flashback mosts likely.