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.
2735- Fix ` Protocol ` tests on Python 3.13.0a6 and newer. 3.13.0a6 adds a new
2836 ` __static_attributes__ ` attribute to all classes in Python,
2937 which broke some assumptions made by the implementation of
@@ -46,6 +54,13 @@ well, release 4.12.0rc1 will follow soon.
4654 ` typing.ContextManager ` and ` typing.AsyncContextManager ` on Python
4755 3.13+.
4856- 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.
4964
5065# Release 4.11.0 (April 5, 2024)
5166
0 commit comments