File tree 2 files changed +40
-0
lines changed 2 files changed +40
-0
lines changed Original file line number Diff line number Diff line change
1
+ # Default to Python 3.6 or newer for new development
2
+
3
+ * Status: accepted
4
+ * Date: 2020-10-20
5
+
6
+ Technical Story: https://github.com/theupdateframework/tuf/issues/1125
7
+
8
+ ## Context and Problem Statement
9
+
10
+ We do not want to try and support end-of-life versions of the language.
11
+ We want to use modern language features, such as typing.
12
+ We want to ease maintainer burden, by reducing the major language versions supported.
13
+
14
+ ## Decision Drivers
15
+
16
+ * Python 2.7 is end-of-life
17
+ * Python 3.5 is end-of-life
18
+ * Modern Python allows use of desirable features such as type hints
19
+ * Supporting end-of-life Python versions adds maintenance overhead
20
+
21
+ ## Considered Options
22
+
23
+ * Support Python 2.7 and 3.5+
24
+ * Support Python 2.7 and 3.6+
25
+ * Support Python 2.7 and 3.6+ (with polyfill modules)
26
+ * Support only Python 3.6+
27
+
28
+ ## Decision Outcome
29
+
30
+ Chosen option: "Support only Python 3.6+", because we want modern features and lower
31
+ maintainer effort as we work to improve our codebase through the refactor effort.
32
+
33
+ Using modules to polyfill standard library features from Python 3.6+ feels
34
+ untenable as more libraries are dropping support for EOL Python releases.
35
+
36
+ ### Negative Consequences
37
+
38
+ * Leaves major adopter and contributor without an actively developed client for some of
39
+ their customers stuck on older Python versions.
Original file line number Diff line number Diff line change @@ -5,6 +5,7 @@ This log lists the architectural decisions for tuf.
5
5
<!-- adrlog -- Regenerate the content by using "adr-log -i". You can install it via "npm install -g adr-log" -->
6
6
7
7
- [ ADR-0000] ( 0000-use-markdown-architectural-decision-records.md ) - Use Markdown Architectural Decision Records
8
+ - [ ADR-0001] ( 0001-python-version-3-6-plus.md ) - Default to Python 3.6 or newer for new development
8
9
9
10
<!-- adrlogstop -->
10
11
You can’t perform that action at this time.
0 commit comments