schema icon indicating copy to clipboard operation
schema copied to clipboard

Drop support for obsolete python versions

Open sevdog opened this issue 3 years ago • 8 comments

Drops support for Python < 3.6 (also removing requirements for contextlib2 backport).

Also adds support for Python 3.10

sevdog avatar Dec 30 '21 08:12 sevdog

Hmm, I'm not opposed to this, but why drop old versions? What does it achieve?

skorokithakis avatar Dec 30 '21 09:12 skorokithakis

Hmm, I'm not opposed to this, but why drop old versions? What does it achieve?

Since old versions of python are no more developer nor supported if there is no a founded request to support them it is cheaper to drop them. Expecially for python 2.x which has sunset on 1 Jan 2020, and brings a lot o compatibility issues (like "futures", string types detection and backports).

This can also be achieved at code level using six and backports, but the paingoes beyond the gain IMO (expecially if you want to keep also Python 2.6 which reached EOL in 2013).

This may be related to a "major" release, since may introduce "backwards incompatible changes" (even if is just an issue related to the interpreter).

sevdog avatar Dec 30 '21 09:12 sevdog

I agree in general, but would rather couple this with some breaking changes (ie drop support for old versions when we use new features). On one hand, if we don't drop support, nobody will know they can use the new features. On the other hand, if we drop support now and need to release a small fix or feature soon, that'll have to be a major version...

skorokithakis avatar Dec 30 '21 09:12 skorokithakis

Closes #282.

gschaffner avatar Jun 28 '22 23:06 gschaffner

Resolves the test regression on Python < 3.3 caused by #268; see #276.

gschaffner avatar Jun 28 '22 23:06 gschaffner

@skorokithakis Maybe I misunderstand, but I don't think that a small fix/feature soon would necessitate a major version bump if this was merged.

Under SemVer, dropping support for old versions of Python can be done as a minor version bump. Old Pythons can be dropped in a backwards-compatible way if, in packaging, you prevent the new schema version from being installed on Pythons it does not support. For setuptools via setup.py, passing python_requires=">=3.6" would do this.

gschaffner avatar Jun 28 '22 23:06 gschaffner

Hmm, come to think of it, you're right, @gschaffner. We'd need to make these changes in the setup.py, but it sounds like that'd be OK.

skorokithakis avatar Jun 28 '22 23:06 skorokithakis

#291 addresses the change in requirements for contextlib2.

sevdog avatar Jul 25 '23 10:07 sevdog