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}%")
Support Matrix for Python / Elastic Stack version
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:
JSON results from Google BigQuery fed into this little script to quickly recalculate: