Update the Python compatibility notes
Marco Ricci

Marco Ricci commited on 2026-04-02 11:24:04
Zeige 1 geänderte Dateien mit 26 Einfügungen und 4 Löschungen.


- Python 3.14 has been released, and is officially supported since
  `derivepassphrase` v0.5.1.

- Python 3.9 has reached end-of-life, but we still retain compatibility
  at least until `derivepassphrase` v1.0.

- Mention that *if* we make use of some Python functionality after the
  end-of-life of the last version not supporting this functionality,
  then we will update the declared supported Python versions
  accordingly.
... ...
@@ -1,18 +1,34 @@
1 1
 # Compatibility of `derivepassphrase` with different Python versions
2 2
 
3
+## Python 3.15  {#py3.15}
4
+
5
+Not yet supported as of April 2026, because our development infrastructure does not provide any installations of Python 3.15 to test on.
6
+
3 7
 ## Python 3.14  {#py3.14}
4 8
 
5
-Not yet supported.
6
-As of 2025-01, Python 3.14 is still in alpha stage.
9
+Supported as of v0.5.1 (June 2025) without any known issues.
7 10
 
8 11
 ## Python 3.13  {#py3.13}
9 12
 
10 13
 Currently supported without any known issues.
11 14
 
15
+### After end-of-life {#after-eol-py3.13}
16
+
17
+After Python 3.13 reaches end-of-life, future `derivepassphrase` versions may make use of the following Python functionality:
18
+
19
+  * template strings
20
+
21
+The declared minimum required Python version will then be updated accordingly.
22
+
12 23
 ## Python 3.12  {#py3.12}
13 24
 
14 25
 Currently supported without any known issues.
15 26
 
27
+### After end-of-life {#after-eol-py3.12}
28
+
29
+Python 3.13 does not offer significantly different functionality than Python 3.12.
30
+There are thus no plans to make use of additional functionality once Python 3.12 reaches end-of-life.
31
+
16 32
 ## Python 3.11  {#py3.11}
17 33
 
18 34
 Currently supported without any known issues.
... ...
@@ -24,6 +40,8 @@ After Python 3.11 reaches end-of-life, future `derivepassphrase` versions may ma
24 40
   * complex expressions in f-strings
25 41
   * type parameter syntax and the `type` statement
26 42
 
43
+The declared minimum required Python version will then be updated accordingly.
44
+
27 45
 ## Python 3.10  {#py3.10}
28 46
 
29 47
 Currently supported without any known issues.
... ...
@@ -38,9 +56,11 @@ After Python 3.10 reaches end-of-life, future `derivepassphrase` versions may ma
38 56
   * exception notes
39 57
   * [`contextlib.chdir`][]
40 58
 
59
+The declared minimum required Python version will be then updated accordingly.
60
+
41 61
 ## Python 3.9  {#py3.9}
42 62
 
43
-Currently supported without any known issues.
63
+End-of-life since October 2025, but still supported at least until `derivepassphrase` v1.0, without any known issues.
44 64
 
45 65
 Some functionality requires backported libraries (`tomllib`/`tomli`).
46 66
 
... ...
@@ -51,10 +71,12 @@ After Python 3.9 reaches end-of-life, future `derivepassphrase` versions may mak
51 71
   * structural pattern matching (`match`/`case` blocks)
52 72
   * parenthesized `with` statements
53 73
 
74
+The declared minimum required Python version will be then updated accordingly.
75
+
54 76
 ## Python 3.8 and below  {#py3.8-and-below}
55 77
 
56 78
 These versions were never explicitly supported, neither in CPython nor in PyPy.
57
-The same versions as for [Python 3.9](#py3.9) may work, but this is untested.
79
+As of v0.6, Python 3.8 is known not to work due to standard library incompatibilities.
58 80
 
59 81
 ## PyPy
60 82
 
61 83