|
| 1 | +Meta-topics |
| 2 | +=========== |
| 3 | + |
| 4 | +About this specification |
| 5 | +------------------------ |
| 6 | + |
| 7 | +This document was created following the acceptance of :pep:`729` |
| 8 | +to serve as a specification for the Python type system. The |
| 9 | +initial text consists of the "Specification" sections of :pep:`484` |
| 10 | +and subsequent typing-related PEPs, pasted together and reorganized. |
| 11 | +This creates a document that encompasses all aspects of the type |
| 12 | +system that have been specified in PEPs, but not necessarily a |
| 13 | +coherent whole. The hope is that incremental improvements will |
| 14 | +be made to this document to make it more coherent and complete. |
| 15 | + |
| 16 | +Changing the specification |
| 17 | +-------------------------- |
| 18 | + |
| 19 | +Changes to the specification come in three kinds: |
| 20 | + |
| 21 | +- Minor, non-substantive changes can simply be proposed as PRs to |
| 22 | + the `python/typing <https://github.com/python/typing>`__ repository, |
| 23 | + and may be merged by anyone with commit access. Such changes may |
| 24 | + include formatting fixes, linking improvements, etc. |
| 25 | +- Substantive changes that do not rise to the level of a PEP must |
| 26 | + be approved by the Typing Council. The procedure is described below. |
| 27 | +- Major changes should go through the PEP process, as described in |
| 28 | + :pep:`1`. What counts as a major change is not precisely defined, |
| 29 | + but it would generally include any change of a similar magnitude |
| 30 | + to `previous typing PEPs <https://peps.python.org/topic/typing/>`__. |
| 31 | + |
| 32 | +Changes that need Typing Council approval go through three steps: |
| 33 | + |
| 34 | +- Open a discussion on `discuss.python.org <https://discuss.python.org/c/typing/32>`__ |
| 35 | + describing the issue. |
| 36 | +- Open a PR on `python/typing <https://github.com/python/typing>`__ |
| 37 | + that changes the spec and, if applicable, the |
| 38 | + `conformance test suite <https://github.com/python/typing/tree/main/conformance>`__. |
| 39 | +- `Open an issue <https://github.com/python/typing-council/issues/new>`__ on |
| 40 | + the Typing Council's issue tracker asking for a decision. |
| 41 | + |
| 42 | +The Typing Council has `published <https://github.com/python/typing-council/blob/main/README.md>`__ |
| 43 | +some guidance on useful information to gather when proposing a change |
| 44 | +to the spec, including: |
| 45 | + |
| 46 | +- A survey of the current behavior of major type checkers. |
| 47 | +- A rationale for why the proposed behavior is better than alternatives. |
| 48 | +- An implementation or proposed implementation of the proposed behavior |
| 49 | + in at least one major type checker. |
0 commit comments