Skip to content
Merged
Changes from 1 commit
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
10b67f7
PEP 729: Typing Council
JelleZijlstra Sep 23, 2023
8c045fd
shut up the linter for now
JelleZijlstra Sep 23, 2023
2623a65
PEP 729 suggestions (#4)
hauntsaninja Sep 23, 2023
c3ba3a1
More examples (#5)
hauntsaninja Sep 23, 2023
54e6bfb
Reconcile discussion on how to approach the spec (#6)
hauntsaninja Sep 23, 2023
f70124f
Do not delegate by default (#7)
hauntsaninja Sep 26, 2023
487a5ff
Change to self-governance (#8)
hauntsaninja Sep 26, 2023
4177bce
do nothing? (#9)
hauntsaninja Sep 28, 2023
edc5376
Add "Relationship with type checkers" (#10)
JelleZijlstra Sep 28, 2023
ab8a36c
shantanu owns it too
JelleZijlstra Sep 28, 2023
ee7fa12
copyright stanza
JelleZijlstra Sep 28, 2023
672d6d4
newline
JelleZijlstra Sep 28, 2023
f956b1b
Apply suggestions from code review
hauntsaninja Sep 28, 2023
86f3c4d
Add __exit__ as an example of underspecification
JelleZijlstra Sep 28, 2023
47c5502
Apply suggestions from code review
JelleZijlstra Sep 28, 2023
b9ac647
Update peps/pep-0729.rst
JelleZijlstra Sep 29, 2023
75f5456
Update peps/pep-0729.rst
JelleZijlstra Sep 29, 2023
4811fa7
Update peps/pep-0729.rst
JelleZijlstra Sep 29, 2023
07bb2a0
More feedback from Guido
JelleZijlstra Sep 29, 2023
418d546
More specific than "end users"
JelleZijlstra Sep 29, 2023
de3ce06
Post on Discourse, wait a week
JelleZijlstra Sep 29, 2023
d3d5e78
minor rewording
JelleZijlstra Oct 1, 2023
db5c10b
Merge branch 'main' into typing-council
JelleZijlstra Oct 1, 2023
ca317b7
They should care about runtime
JelleZijlstra Oct 4, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Change to self-governance (#8)
* Change to self-governance

* .
  • Loading branch information
hauntsaninja authored Sep 26, 2023
commit 487a5ffe91124f40ad9d24deff9f7610250a958b
49 changes: 42 additions & 7 deletions peps/pep-0729.rst
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ The Typing Council's mandate is to ensure that the Python type system is:
by :pep:`484`, the primary use case is static analysis, but there are others,
such as runtime type checking, static compilation, IDE support, and documentation.
The Typing Council should consider all of these use cases when making decisions,
and be open to supporting additinal use cases as they come up.
and be open to supporting additional use cases as they come up.
* **Usable**: The type system should be easy to use for Python developers. It
should be ergonomic to write well-typed Python code that is accepted by type
checkers. There should be good documentation for the type system.
Expand All @@ -144,12 +144,31 @@ The Typing Council's mandate is to ensure that the Python type system is:
Operations and process
----------------------

The council has three members, which are appointed by the Steering Council among
prominent community members, such as Python core developers and maintainers of
major type checkers. Normally council members serve one-year terms, renewable
indefinitely, but they may resign or be removed by the Steering Council at any
time. (Removal by the Steering Council should be an exceptional situation in
case of major misconduct, inactivity, or similar situations.)
The council would have three members, comprised of prominent community members,
Comment thread
JelleZijlstra marked this conversation as resolved.
such as Python core developers and maintainers of major type checkers.

The Steering Council would appoint the initial Typing Council. There is no term
limit for council members. Council members may resign their position at any time.
There is a norm that at least one person will voluntarily resign from the
Comment thread
JelleZijlstra marked this conversation as resolved.
Outdated
Typing Council each year.

To determine replacements, nominations will be collected from the typing
community. Self-nominations are allowed. The Typing Council will then decide
Comment thread
JelleZijlstra marked this conversation as resolved.
Outdated
the replacement member(s) from the nominees. The expectation is that this would
be done by fiat, but the Typing Council can choose a replacement by any means
they see fit, including a vote.
Comment thread
JelleZijlstra marked this conversation as resolved.

The Typing Council remains accountable to the Steering Council. At any point,
for any reason, the Steering Council could (publicly or privately) make a
specific change or request a non-specific change to the composition of the
Typing Council.
Comment thread
JelleZijlstra marked this conversation as resolved.

We acknowledge that this is a not particularly democratic structure and puts
a lot of faith in the Typing Council. However, the Python community has a long
history of success with not particularly democratic structures! We believe
self-governance, cycling of membership, and accountability to the
Steering Council will be sufficient to ensure that the Typing Council is meeting
the needs of the community.
Comment thread
JelleZijlstra marked this conversation as resolved.

The council would operate primarily through reviews of GitHub PRs. Regular
meetings are likely not necessary, but the council may set up video calls, a
Expand Down Expand Up @@ -333,3 +352,19 @@ but it means that the Typing Council can immediately start making a difference
anywhere in the type system by improving and clarifying the specification.
A formalization effort can still proceed by gradually replacing sections of the
specification.

Alternate governance mechanisms
-------------------------------

An earlier draft of this PEP suggested that the Steering Council appoint
members of the Typing Council each year. The current Steering Council suggested
that it would be better to have the Typing Council self-organise and avoid
the need for the Steering Council to continuously supervise the Typing Council.

Alternate governance mechanisms are possible, including more democratic ones,
but these typically raise several thorny questions, require much heavier
amounts of process and are potentially more divisive. For example, see the PEP
8000 series, or recent discussions about alternative governance in other Python
subcommunities. Ultimately, the Typing Council exists at the behest of the
Comment thread
JelleZijlstra marked this conversation as resolved.
Outdated
Steering Council, and so can rely on it to bootstrap governance and serve as an
accountability mechanism.