chrysn / aiocoap

The Python CoAP library
Other
264 stars 119 forks source link

Drop Python 3.7 (up to 3.9?) support #275

Closed chrysn closed 4 months ago

chrysn commented 2 years ago

The next round of Python required-version bumps is not too promising in terms of new features, but there are some:

None of the other changes appear to be very helpful to aiocoap (or they are, but are automatically useful to users of the new version, or are useful already by being in any version like the stabilization of asyncio.run); so it would seem that the earliest Python 3.7 removal is due is when dependencies start becoming hard to get by on that platform, when the CI images generally become problematic, or when the CI list of platforms is just getting too long.

Still, I'd like to check which user groups have concrete timelines:

As outlined above, I'm in no hurry to bump the Python dependency, but if anyone needs aiocoap supporting 3.8 for longer than any of those listed, please speak up.

chrysn commented 10 months ago

Seems IoT Lab won't be updating soon; users can use own Python installations instead.

By now,

so in the next go I'll probably even drop 3.9 support as well.

Python 3.10 has some interesting stuff, but off my head there aren't any places in the code that would profit from structural pattern matching. aiter and anext could be helpful for readability (but don't allow big simplifications), and there are no major enhancements in asyncio, socket, urllib or other networking related stuff -- it'll just trim down the test matrix.

chrysn commented 6 months ago

Updated report given riotdocker will update sooner this time:

Which means PyPy becomes the critical component against a 3.11 upgrade (but then again, 3.11 primarily enhances typing, and while toml is attractive for transport descriptions, it's also available as an external module)