Advantages of going to 3.6+:
__aiter__ mess goes awayDisadvantages:
My feeling is that it's not quite time to drop 3.5 support, but it wouldn't be too bad to start allowing f-strings in the medium term. And beyond that pypy becomes the gating factor.
Odd opinion -- I live in 3.6 only world since b2.
wrt. distro -- that's where pyenv comes in :) or docker
pypy is a bummer, but then again I don't see many projects start with pypy.
What are the options?
We're definitely not going to maintain 2 branches :-). It's more about when the benefits outweigh the costs. The benefits are currently pretty minor, and as a practical-oriented project we want to avoid creating annoyances for users when possible (and "can't run on ubuntu without weird setup" is definitely an annoyance in these days when so many people run ubuntu servers).
Personally, I don't even use the distro-provided python: pyenv ftw!
Well, here's a legitimate argument in favor of dropping support for CPython 3.5: the MacOS releases use an ancient openssl that's making it difficult to properly test our ssl support (https://github.com/pyca/pyopenssl/issues/624)
we want to avoid creating annoyances for users when possible (and "can't run on ubuntu without weird setup" is definitely an annoyance in these days when so many people run ubuntu servers).
Current Ubuntu LTS ships cpython 3.6.6
But I use Debian on several of my systems and it won't be before end of 2019 that I can move them to Debian Buster which will have cpython 3.7 (or 3.8?)
Of course I could use pyenv, but I prefer to use the system's python installation.
Next CentOS/RHEL (probably released beginning of 2019) will have cpython 3.6.6 from what I can see.
In my opinion, a good date to drop python 3.5 support would be some time after next debian release, i.e. mid/end 2019.
I'd like to second @joernheissler's "after the next debian release" proposal.
Another problem that would go away if we dropped 3.5 support: https://github.com/python-trio/trio/pull/1320#issuecomment-559691361
good time to drop python 3.5
Another one is https://github.com/python-trio/trio/pull/1306 (but this is only about 3.5.0). But then it's easy to fix.
Looks like Debian stable has 3.7 and Ubuntu 18.04 LTS has 3.6 so we're good there. I don't know what RHEL supports but we probably don't have users there anyway.
According to https://pypistats.org/packages/trio, ~10% of the downloads are Python 3.5 compared to ~20% before 2019-08. But it's quite noisy and it's hard to draw conclusions from those numbers.
But then its end-of-life is 2020-09-13.
RedHat 8 has python 3.6 https://developers.redhat.com/blog/2018/11/14/python-in-rhel-8/
Ubuntu 18.04 LTS has 3.7.3, it's just not an alias for the python3 package.
pypy is at 3.6.9.
RHEL 8 might add newer releases through EPEL some time in the future. But no idea when/if this will happen. RHEL 7 already supports py3.6 through EPEL.
I.e. users that use a "stable" version of the major distros are at least on py3.6
Another reason for dropping support for Python 3.5 is that it forces us to use Ubuntu 14.04 on Travis and it's currently broken on travis-ci.com (but works fine on travis-ci.org).
The latest release Trio (v0.14.0) has deprecated support for Python 3.5, and will issue a warning at import time.
Most helpful comment
The latest release Trio (v0.14.0) has deprecated support for Python 3.5, and will issue a warning at import time.