Skip to content

Tracker for Supported Python versions #1295

@sethmlarson

Description

@sethmlarson

Support Matrix for Python / Elastic Stack version

Version Download Percentage Currently Supported (7.x) Supported in Next Major (8.x)
2.7 10.72% X X?
3.4 0.07% X
3.5 1.22% X
3.6 28.95% X X
3.7+ 59.04% X X
3.x+ 89.28% X X

The column for "Supported in Next Major" is subject to change until feature freeze of the next major depending on usage.
Data was last updated from downloads for 2021-03-10

Process

Currently we support Python 2.7, and 3.4 onwards as of Elasticsearch v7.x.
Python versions will come out every year however the amount of changes between 3.x to 3.[x + 1] are much smaller than 2 to 3.

Here's the query being used to determine what Python versions should be supported in 8.x by looking at the split of downloads for 7.x:

SELECT SUBSTR(details.implementation.version, 1, 3) AS ver, COUNT(*) as dwn FROM `the-psf.pypi.file_downloads` WHERE DATE(timestamp) = "2021-04-22" AND file.project = 'elasticsearch' AND file.version = '7.12.0' AND # Filter out PyPy versions SUBSTR(details.implementation.version, 1, 1) <= '3' AND ( # Filter out Python 2.6 or earlier SUBSTR(details.implementation.version, 1, 1) != '2' OR SUBSTR(details.implementation.version, 1, 3) = '2.7' ) AND ( # Filter out Python 3.3 or earlier SUBSTR(details.implementation.version, 1, 1) != '3' OR SUBSTR(details.implementation.version, 3, 3) >= '4' ) GROUP BY ver ORDER BY dwn DESC 

JSON results from Google BigQuery fed into this little script to quickly recalculate:

x = {tuple([int(p) for p in d["ver"].split(".")]): int(d["dwn"]) for d in x} total = sum(x.values()) x['3.7+'] = sum([v for k, v in x.items() if k >= (3, 7)]) x['3.x+'] = sum([v for k, v in x.items() if isinstance(k, tuple) and k >= (3,)]) for k in list(x.keys()): if isinstance(k, tuple) and k >= (3, 7): x.pop(k) for k, v in x.items(): print(k, f"{v * 100.0 / total:.2f}%")

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions