Python versions to be supported by nameko v3.x

Current 2.X nameko version supports python 2.7, 3.4+.

What are plans for python version supported in future version 3.x?

Python 2.7 is to reach end of life very soon. Python 3.4 reached it’s end of life. I personally switched to Python 3.6, where I find f-strings and where I enjoy type annotations.

Narrowing python version supported would simplify development but I can understand, installed base can be strong reason to stay with older versions for a while.

The only clues we have to the installation base are the download stats from PyPI. Last time I checked there was a significant amount of usage on 2.7. I will look again but I think we need to keep Python 2 at least until it reaches end of life.

We could drop official support for 3.4 if it’s already end of life, although I’m not sure it buys us anything while we’re also supporting older versions.

Keeping support of python 2.7 till EOL sounds reasonable.

Features which the code base could benefit from:

  • python 3.5: type hints (makes code documentation much more readable) according to PEP484
  • python 3.6: f-strings

I have no idea about python 3.x pypi download statistics, but consider deprecation notice in nameko 3.x release. I am afraid python 3.5 (with EOL 2012-09-13) will have significant share thanks to debian stretch installation base.

These are the PyPI download stats for the last 30 days:

(Generated with https://github.com/ofek/pypinfo)

$ pypinfo --days 30 nameko pyversion

| python_version | download_count |
| -------------- | -------------- |
| 3.6            |         22,885 |
| 2.7            |         10,215 |
| 3.7            |          4,840 |
| 3.5            |          2,015 |
| 3.4            |          1,719 |
| 3.3            |              1 |
| Total          |         41,675 |

Nice table.

Thinking forward I would imagine releasing nameko 4.x somewhere in 2020, when py2.7 is already over and py3.5 still living but probably not receiving (any or much) updates. I would say end of py2.7 is rather clear concept.

Regarding nameko 4.x plans for py3.x I see following options (sorted in order of my preferences):

  • decide to drop py3.5 in nameko 4.x, support only py3.6+
  • decide to stay with 3.5+ in nameko 4.x
  • do some poll (as current downloads do not reflect really installed base)

But definitely, it is not me to decide that. I have better finish beginning next week my CLI refactoring stuff to get something real completed.

1 Like