Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 46d7064

Browse files
Spec: Add "meta" file describing process for changing the spec (#1573)
I think this isn't currently very clearly documented. Hopefully this will be a good place to find it.
1 parent 7b192dc commit 46d7064

3 files changed

Lines changed: 54 additions & 1 deletion

File tree

README.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,10 @@ For conversations that are more suitable to a chat platform, you can use one of
2121
This GitHub repository is used for several things:
2222

2323
- The documentation at [typing.readthedocs.io](https://typing.readthedocs.io/)
24-
is maintained in the [docs directory](./docs).
24+
is maintained in the [docs directory](./docs). This includes the
25+
[specification](https://typing.readthedocs.io/en/latest/spec/index.html) for the
26+
type system. See especially [the update procedure](https://typing.readthedocs.io/en/latest/spec/meta.html)
27+
for the spec.
2528

2629
- A [discussion forum](https://github.com/python/typing/discussions) for typing-related user
2730
help is hosted here.

docs/spec/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ Specification for the Python type system
66
:caption: Contents:
77

88
type-system
9+
meta
910
concepts
1011
annotations
1112
special-types

docs/spec/meta.rst

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
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

Comments
 (0)