Replies: 3 comments 3 replies
-
AFAICT, Kopf, as a framework, will only be used to build operators. They then run as some form of container "inside" Kubernetes. The operators will (unlikely?) run on some server connecting into K8s "from the outside". So, from where I'm sitting, requiring new Python versions isn't a matter of LTS support on production hosts, but rather availability of the Python version on developer machines. |
Beta Was this translation helpful? Give feedback.
-
Asked here: https://twitter.com/nolar/status/1344953069361115142 — some answers give a hint: Long story short, it seems that most Kubernetes-accessing apps (those using the official client, not just running inside of Kubernetes) are stuck in Python 3.7, barely upgrade even to 3.8. And, among all packages (really all), it also looks like Python 3.7 is growing its share despite 3.8 is there for months-years. The conclusion is: it makes sense to support 3.7 for some time (a couple of years?) before reconsidering. PyPI shares its raw data which can be analysed with SQL: https://packaging.python.org/guides/analyzing-pypi-package-downloads/ Here are some anchor libraries to see the state of things and the trends (made on 01.01.2021): The SQL query used:
The same source, another view: It's even worse for Kubernetes-accessing anchors: 3.7 is only slightly above 3.6 (Kopf does not work in 3.6 at all), while 3.8 is far below. This graph of pypi-tools shows that 3.8 is gaining traction, but 3.7 is still expanding. |
Beta Was this translation helpful? Give feedback.
-
Another reason to not drop Python 3.7 support: PyPy is compatible with Python 2.7, 3.6, and 3.7 only — 3.8+ versions are not mentioned. Kopf runs quite well with PyPy — even with the |
Beta Was this translation helpful? Give feedback.
-
Python 3.7 support is considered to be dropped, restricting Kopf to Python >= 3.8.
Why not >= 3.9? One reason considered in #74 (for Python 3.6) was that some companies restrict their environments to LTS versions only (vendor-provided, or for any other reasons), so it is too early for such a framework-level requirement (the operators can use any versions of Python).
The latest Ubuntu LTS (20.04 since Apr'2020) contains Python 3.8 by default. And it was out there for 8 months already — enough time to upgrade and migrate.
RedHat Enterprise Linux 8 (released May'2019) commits to Python 3.6 support for the whole 8.x series, but RHEL 8.2 (Apr'2020) officially provides Python 3.8 in addition to 3.6 (link).
So, there seems to be no reason to support Python 3.7 even for these restrictive use-cases.
QUESTIONS:
Tell us why this might be a bad idea to drop Python 3.7 support.
Beta Was this translation helpful? Give feedback.
All reactions