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.