Skip to content

Commit

Permalink
ADR: only use Python 3.6+
Browse files Browse the repository at this point in the history
Document the decision drop support for EOL Python versions, most notable
Python 2.7

Fixes theupdateframework#1125

Signed-off-by: Joshua Lock <[email protected]>
  • Loading branch information
joshuagl authored and MVrachev committed Oct 28, 2020
1 parent 9b384df commit 703d9bc
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 0 deletions.
39 changes: 39 additions & 0 deletions docs/adr/0001-python-version-3-6-plus.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# 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.
1 change: 1 addition & 0 deletions docs/adr/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ This log lists the architectural decisions for tuf.
<!-- adrlog -- Regenerate the content by using "adr-log -i". You can install it via "npm install -g adr-log" -->

- [ADR-0000](0000-use-markdown-architectural-decision-records.md) - Use Markdown Architectural Decision Records
- [ADR-0001](0001-python-version-3-6-plus.md) - Default to Python 3.6 or newer for new development

<!-- adrlogstop -->

Expand Down

0 comments on commit 703d9bc

Please sign in to comment.