python-tuf/docs/adr/0001-python-version-3-6-plus.md
Joshua Lock 71de3f64ef ADR: only use Python 3.6+
Document the decision drop support for EOL Python versions, most notable
Python 2.7

Fixes #1125

Signed-off-by: Joshua Lock <jlock@vmware.com>
2020-10-26 16:26:52 +00:00

39 lines
1.3 KiB
Markdown

# Default to Python 3.6 or newer for new development
* Status: accepted
* Date: 2020-10-20
Technical Story: https://github.com/theupdateframework/tuf/issues/1125
## Context and Problem Statement
We do not want to try and support end-of-life versions of the language.
We want to use modern language features, such as typing.
We want to ease maintainer burden, by reducing the major language versions supported.
## Decision Drivers
* Python 2.7 is end-of-life
* Python 3.5 is end-of-life
* Modern Python allows use of desirable features such as type hints
* Supporting end-of-life Python versions adds maintenance overhead
## Considered Options
* Support Python 2.7 and 3.5+
* Support Python 2.7 and 3.6+
* Support Python 2.7 and 3.6+ (with polyfill modules)
* Support only Python 3.6+
## Decision Outcome
Chosen option: "Support only Python 3.6+", because we want modern features and lower
maintainer effort as we work to improve our codebase through the refactor effort.
Using modules to polyfill standard library features from Python 3.6+ feels
untenable as more libraries are dropping support for EOL Python releases.
### Negative Consequences
* Leaves major adopter and contributor without an actively developed client for some of
their customers stuck on older Python versions.