1
- # Release 4.12.0a1 and 4.12.0a2
2
-
3
- These releases primarily test a revised release workflow. If all goes
4
- well, release 4.12.0rc1 will follow soon.
5
-
6
- - Backport the ` typing.NoDefault ` sentinel object from Python 3.13.
7
- TypeVars, ParamSpecs and TypeVarTuples without default values now have
8
- their ` __default__ ` attribute set to this sentinel value.
9
- - TypeVars, ParamSpecs and TypeVarTuples now have a ` has_default() `
10
- method, matching ` typing.TypeVar ` , ` typing.ParamSpec ` and
11
- ` typing.TypeVarTuple ` on Python 3.13+.
12
- - TypeVars, ParamSpecs and TypeVarTuples with ` default=None ` passed to
13
- their constructors now have their ` __default__ ` attribute set to ` None `
14
- at runtime rather than ` types.NoneType ` .
15
- - Fix most tests for ` TypeVar ` , ` ParamSpec ` and ` TypeVarTuple ` on Python
16
- 3.13.0b1 and newer.
17
- - Backport CPython PR [ #118774 ] ( https://github.com/python/cpython/pull/118774 ) ,
18
- allowing type parameters without default values to follow those with
19
- default values in some type parameter lists. Patch by Alex Waygood,
20
- backporting a CPython PR by Jelle Zijlstra.
21
- - It is now disallowed to use a ` TypeVar ` with a default value after a
22
- ` TypeVarTuple ` in a type parameter list. This matches the CPython
23
- implementation of PEP 696 on Python 3.13+.
24
- - Fix bug in PEP-696 implementation where default values for ` ParamSpec ` s
25
- would be cast to tuples if a list was provided as the default value.
26
- Patch by Alex Waygood.
1
+ # Release 4.12.0rc1 (May 16, 2024)
2
+
3
+ This release focuses on compatibility with the upcoming release of
4
+ Python 3.13. Most changes are related to the implementation of type
5
+ parameter defaults (PEP 696).
6
+
7
+ Thanks to all of the people who contributed patches, especially Alex
8
+ Waygood, who did most of the work adapting typing-extensions to the
9
+ CPython PEP 696 implementation.
10
+
11
+ Full changelog:
12
+
13
+ - Improve the implementation of type parameter defaults (PEP 696)
14
+ - Backport the ` typing.NoDefault ` sentinel object from Python 3.13.
15
+ TypeVars, ParamSpecs and TypeVarTuples without default values now have
16
+ their ` __default__ ` attribute set to this sentinel value.
17
+ - TypeVars, ParamSpecs and TypeVarTuples now have a ` has_default() `
18
+ method, matching ` typing.TypeVar ` , ` typing.ParamSpec ` and
19
+ ` typing.TypeVarTuple ` on Python 3.13+.
20
+ - TypeVars, ParamSpecs and TypeVarTuples with ` default=None ` passed to
21
+ their constructors now have their ` __default__ ` attribute set to ` None `
22
+ at runtime rather than ` types.NoneType ` .
23
+ - Fix most tests for ` TypeVar ` , ` ParamSpec ` and ` TypeVarTuple ` on Python
24
+ 3.13.0b1 and newer.
25
+ - Backport CPython PR [ #118774 ] ( https://github.com/python/cpython/pull/118774 ) ,
26
+ allowing type parameters without default values to follow those with
27
+ default values in some type parameter lists. Patch by Alex Waygood,
28
+ backporting a CPython PR by Jelle Zijlstra.
29
+ - It is now disallowed to use a ` TypeVar ` with a default value after a
30
+ ` TypeVarTuple ` in a type parameter list. This matches the CPython
31
+ implementation of PEP 696 on Python 3.13+.
32
+ - Fix bug in PEP-696 implementation where a default value for a ` ParamSpec `
33
+ would be cast to a tuple if a list was provided.
34
+ Patch by Alex Waygood.
27
35
- Fix ` Protocol ` tests on Python 3.13.0a6 and newer. 3.13.0a6 adds a new
28
36
` __static_attributes__ ` attribute to all classes in Python,
29
37
which broke some assumptions made by the implementation of
@@ -46,6 +54,13 @@ well, release 4.12.0rc1 will follow soon.
46
54
` typing.ContextManager ` and ` typing.AsyncContextManager ` on Python
47
55
3.13+.
48
56
- Backport ` types.CapsuleType ` from Python 3.13.
57
+ - Releases are now made using [ Trusted Publishers] ( https://docs.pypi.org/trusted-publishers/ )
58
+ improving the security of the release process. Patch by Jelle Zijlstra.
59
+
60
+ # Release 4.12.0a1 and 4.12.0a2 (May 16, 2024)
61
+
62
+ These releases primarily test a revised release workflow. If all goes
63
+ well, release 4.12.0rc1 will follow soon.
49
64
50
65
# Release 4.11.0 (April 5, 2024)
51
66
0 commit comments