Guido and I want to propose promoting Ken Jin as a core developer.
- Promote Ken Jin
- Don’t promote Ken Jin
I have been mentoring Ken Jin for a long time (I previously gave him triage privileges time ago). Ken has been very active in the project, actively reviewing pull requests and fixing bugs (some of them notably complex) and he has been contributing both to code and documentation. He is a very enthusiastic and energetic person and during this time he has made great progress in learning the CPython workflow, CPython internals and how to keep things maintainable and backwards compatible. He also has actively participated in many important areas such as Python performance and typing (see below).
Ken has been working with Guido for quite some time as well, specially in the typing module and in typing related PEPs. During this time he has also prove to be quite proficient in writing clear documentation and in doing useful reviews of it.
- Merged PRs: Search · is:pr is:merged author:Fidget-Spinner archived:false org:python · GitHub
- Reviewed PRs: Search · reviewed-by:Fidget-Spinner -author:Fidget-Spinner archived:false org:python · GitHub
- Involvement in issues: Search · involves:Fidget-Spinner archived:false org:python · GitHub
- BPO bugs noised
- Co-authored the Python Language Reference for pattern matching: https://github.com/python/cpython/pull/24664
- Updated compiler docs in the devguide: Bring compiler docs up to speed with Python 3.10 by Fidget-Spinner · Pull Request #706 · python/devguide · GitHub</titl
- Authored documentation for typing PEPs:
PEP 585 (Type Hinting Generics In Standard Collections) https://github.com/python/cpython/pull/22615
PEP 604 (Allow writing union types as X | Y) bpo-41428: Documentation for PEP 604 by Fidget-Spinner · Pull Request #22517 · python/cpython · GitHub
PEP 612 (Parameter Specification Variables) https://github.com/python/cpython/pull/23702
PEP 647 (User-Defined Type Guards) bpo-43766: Implement PEP 647 (User-Defined Type Guards) in typing.py by Fidget-Spinner · Pull Request #25282 · python/cp
Initial implementation of PEP 612 in C and Python, then re-wrote it again only in Python.
Downstreamed implementation to typing_extensions later: bpo-41559: Implement PEP 612 - Add ParamSpec and Concatenate to typing by Fidget-Spinner · Pull Request #23702 · python/
Added CALL_METHOD_KW opcode, keyword counterpart to CALL_METHOD.
Fixed consistency issues between typing.Callable and collections.abc.Callable
Fixed various bugs in typing.
- Researched and implemented CALL_FUNCTION opcode specialization via PEP 659 (Specializing Adaptive Interpreter) with lots of help from Mark. PR unmerged, we’re still trying to assess whether it’s worth the maintenance cost, and we’re waiting for other optimizations in CPython.
- Researched viability of specializing FOR_ITER opcode. Temporarily dropped because common cases slowed down, and 10% faster for long loops doesn’t justify the complexity.
- Researched viability of specializing LOAD_METHOD opcode. Still a WIP, but more promising than the other two.
As it was done in previous promotions we will continue to mentor him for one month after his promotion (if it’s accepted) to help him to deal with his new responsibilities, and we plan to require him to ask us before merging anything until he will be used to the process.
As a reminder from PEP 13 regarding voting rules:
It is granted by receiving at least two-thirds positive votes in a core team vote that is open for one week and with no veto by the steering council.