As her mentor, I am very happy to propose promoting Emma Smith (@emmatyping on DPO and GitHub) to core developer. Emma has been a long time contributor to Python in many areas over the years, from mypy and typing, to packaging, and CPython itself. Emma has officially been a triager since April 2025, but has a long portfolio of contributions stretching back years. Most recently, she has contributed Zstandard support for Python 3.14. She has consistently demonstrated friendly, generous, and thoughtful contributions and collaborations.
Contribution highlights
- Authored PEP 784, introducing Zstandard in the standard library for Python 3.14
- Created the python-wasm repo containing build scripts for early Emscripten/WASM integration
- Authored PEP 561, specifying how to package type information for Python
- Authored PEP 777, proposing a new wheel format
- Authored PEP 778 (deferred), proposing symlink support in wheels
- Co-authored PEP 759 (withdrawn), proposing external wheel hosting for PyPI
- Total of 36 merged CPython PRs, co-authored 1 more, 2 currently open
Contribution details
Click to expand
Summary
- Total of 36 merged PRs, co-authored 1 more, 2 currently open
- Authored PEP 784, introducing Zstandard in the standard library
- Created the python-wasm repo containing build scripts for early Emscripten/WASM integration
Implementation of functools.singledispatchmethod
Implementation of PEP 585 (generics in stdlib)
- bpo-39481: Generic alias for itertools.chain by emmatyping · Pull Request #19417 · python/cpython · GitHub
- bpo-39481: Make enumerate, AsyncGeneratorType, mmap generic by emmatyping · Pull Request #19421 · python/cpython · GitHub
- bpo-39481: PEP 585 for difflib, filecmp, fileinput by emmatyping · Pull Request #19422 · python/cpython · GitHub
- bpo-39481: Make dataclasses.Field, contextvars.Token, ... by emmatyping · Pull Request #19425 · python/cpython · GitHub
- bpo-39481: Make functools.cached_property, partial, ... by emmatyping · Pull Request #19427 · python/cpython · GitHub
- bpo-39481: Make weakref and WeakSet generic by emmatyping · Pull Request #19497 · python/cpython · GitHub
Build system and test changes for WASM/Emscripten platform support
- bpo-40280: Disable epoll_create in Emscripten config.site (GH-30494) by emmatyping · Pull Request #30494 · python/cpython · GitHub
- bpo-40280: Add --with-emscripten-target to build for browser or node (GH-30552) by tiran · Pull Request #30552 · python/cpython · GitHub
- gh-84461: Add ability for multiprocessed libregrtest to use a different Python executable by emmatyping · Pull Request #91930 · python/cpython · GitHub
- gh-84461: Add HOSTRUNNER for program to run Python executable by emmatyping · Pull Request #91931 · python/cpython · GitHub
- gh-119336: Restore _PyLong_NumBits by emmatyping · Pull Request #119418 · python/cpython · GitHub
Zstandard / compression
- gh-132983: Introduce `compression` package and move `_compression` module by emmatyping · Pull Request #133018 · python/cpython · GitHub
- https://github.com/python/cpython/pull/133027
- gh-132983: Install compression package contents by emmatyping · Pull Request #133063 · python/cpython · GitHub
- https://github.com/python/cpython/pull/133365
- gh-132983: Add What's New entry for PEP 784 implementation by emmatyping · Pull Request #133495 · python/cpython · GitHub
- gh-132983: Style improvements for `compression.zstd` by emmatyping · Pull Request #133547 · python/cpython · GitHub
- https://github.com/python/cpython/pull/133911
- gh-132983: Refactor shared code in train_dict and finalize_dict by emmatyping · Pull Request #134432 · python/cpython · GitHub
- gh-132983: Fix refleak in zstd dictionary functions by emmatyping · Pull Request #134459 · python/cpython · GitHub
- gh-132983: Make _zstd C code PEP 7 compliant by emmatyping · Pull Request #134605 · python/cpython · GitHub
- https://github.com/python/cpython/pull/135010
Post-promotion mentoring
I will of course continue to mentor Emma after her promotion, although I am confident such direct mentorship will be primarily advisory and rarely needed.
Voting 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 is not vetoed by the steering council.
- Promote Emma Smith
- Do not promote
The poll will remain open until Wednesday July 30, 2025, midnight UTC.
Additional feedback
As a new tradition, promotions also include an anonymous feedback form that core devs can use to provide additional feedback directly to the Steering Council and the PSF Executive Director. Constructive, actionable feedback is greatly appreciated, and shared by the SC with the mentor, although of course in this case I am both an SC member and Emma’s mentor.