- FAQ about me (including links to talks and interviews)
- Blog (latest post published on 2025-03-07)
- Mastodon (with 3,382 followers)
- Bluesky (with 3,537 followers)
Last updated 2025-04-10.
Over the past 21 years, I have made some commit to 281 projects (some of which are my own).
(Grouped by commit count.)
≥ 103
≥ 102
- python/peps
- microsoft/vscode-python
- brettcannon/python-launcher
- microsoft/vscode-jupyter
- brettcannon/caniusepython3
- python/devguide
- microsoft/Pyjion
- gidgethub/gidgethub
- brettcannon/oplop
- brettcannon/desugar
- brettcannon/dotconfig
- python/the-knights-who-say-ni
- brettcannon/free-labour
- brettcannon/travelbrag
- pypa/packaging
- brettcannon/dotfiles
- Which-Film/which-film.info
≥ 101
- brettcannon/mousebender
- microsoft/pvscbot
- python/importlib_resources
- PyCQA/modernize
- brettcannon/release-often
- python/bedevere
- python/devinabox
- brettcannon/WWBD
- brettcannon/trips-history
- brettcannon/pep425
- brettcannon/microvenv
- brettcannon/check-for-changed-files
- brettcannon/py-pip
- brettcannon/python-azure-web-app-cookiecutter
- brettcannon/stdlib-stats
- brettcannon/cpython-wasi-build
- brettcannon/mnfy
- microsoft/vscode-docs-archive
- dabeaz/curio
- microsoft/vscode-docs
- brettcannon/sans-io
- brettcannon/modutil
- pypa/packaging.python.org
- brettcannon/time-clock
- brettcannon/riscv-harmony
- elixir-lang/elixir-lang.github.com
- brettcannon/flatten_filenames
- brettcannon/find-duplicate-files
- brettcannon/basicenum
- uranusjr/packaging-metadata-comparisons
- angular/angular.js
- pypa/setuptools
- python-trio/trio
- microsoft/vscode-dev-containers
- python/core-workflow
- dusty-phillips/rescript-zora
- microsoft/vscode-python-devicesimulator
- Azure-Samples/Azure-MachineLearning-DataScience
- brettcannon/pip-secure-install
- Azure/msrest-for-python
- brettcannon/record-type
- emmatyping/python-wasm
- Azure/msrestazure-for-python
- pypa/distutils
- python-hyper/uritemplate
- microsoft/TypeScript-Handbook
- brettcannon/defy-layout-scorer
- orsenthil/cpython-hg-to-git
- python/buildmaster-config
- python-hglib
≥ 100
- python3statement/python3statement.github.io
- benjaminp/six
- JuliaLang/julia
- brettcannon/choose-a-font.dev
- python/steering-council
- brettcannon/importlib
- dusty-phillips/match-variant
- microsoft/vscode-telemetry-extractor
- python/blurb
- rescript-lang/rescript-lang.org
- brettcannon/nowhere-on-the-web
- eclipse-archived/ceylon-lang.org
- lustre-labs/lustre
- microsoft/vscode-anaconda-extension-pack
- Azure/azure-sdk-for-python
- python/cherry-picker
- beeware/toga
- brettcannon/porting-to-python-3-notebook
- micktwomey/pyiso8601
- rust-lang/rust
- python/planet
- microsoft/vscode
- python/typeshed
- brettcannon/vscode-zephyr-asdl
- cookiecutter/cookiecutter
- Homebrew/legacy-homebrew
- openlawlibrary/pygls
- Homebrew/homebrew-core
- aosabook/500lines
- WebAssembly/design
- square/dagger
- github/gitignore
- pypa/pipenv
- python/psf-salt
- Mariatta/github-bot-tutorial
- thechangelog/show-notes
- vstinner/misc
- jazzband/pip-tools
- badges/shields
- brettcannon/cpython-wasi-buildbot
- micropython/micropython
- microsoft/vscode-wiki
- dotnet/docs
- inko-lang/inko
- microsoft/vscode-docker
- aio-libs/aiohttp
- python/core-sprint
- conda/conda
- ponylang/pony-tutorial
- MeeseeksBox/meeseeksbox.github.io
- bloodyowl/rescript-test
- python/python-docs-theme
- python-hyper/h2
- kushaldas/pep582
- asyncio-docs/asyncio-doc
- conda/ceps
- microsoft/language-server-protocol
- microsoft/vscode-isort
- riverscuomo/apps
- MPOS/php-mpos
- kushaldas/pym
- python/typing
- pypa/flit
- bytecodealliance/wasmtime
- moby/mobywebsite
- matplotlib/matplotlib
- gleam-lang/language-tour
- larryhastings/appeal
- python/pythonineducation.org
- pyscript/pyscript
- WebAssembly/wasi-sdk
- MicrosoftDocs/visualstudio-docs
- beeware/liquid-demo
- progit/progit2
- jaraco/skeleton
- buildout/buildout
- microsoftarchive/msgraph-sdk-python
- microsoft/vscode-python-templates
- vibora-io/vibora
- astral-sh/ruff
- python/pyperformance
- sarugaku/resolvelib
- rustwasm/book
- microsoft/sql-server-samples
- dabeaz/ply
- microsoft/TypeScript-wiki
- Django
- syl20bnr/spacemacs
- lustre-labs/ui
- jupyterlab/jupyterlab
- bungcip/better-toml
- brettcannon/character-frequency
- pytest-dev/pytest
- rust-lang/rustfmt
- python/pythontestdotnet
- pycascades/welcome-wagon-2018
- Fyrd/caniuse
- Quansight-Labs/free-threaded-compatibility
- okken/pytest-srcpaths
- hynek/build-and-inspect-python-package
- score-spec/spec
- PyCQA/pyflakes
- victor-o-silva/python-links-from-link-header
- huggingface/agents-course
- stellar-deprecated/docs
- stellar/new-docs
- zwaldowski/match-label-action
- psf/webassembly
- actions-rs/install
- mesonbuild/meson
- microsoft/debugpy
- devcontainers/images
- pypa/setuptools-scm
- mozilla-services/konfig
- microsoft/az-partner-center-cli
- cometkim/rescript-vitest
- riscv-software-src/riscv-tests
- Enderchief/gleam-tools
- Azure/azure-functions-python-library
- microsoft/PTVS
- pyca/pyopenssl
- pypa/build
- Homebrew/brew
- clearlydefined/website
- gitkraken/vscode-gitlens
- starship/starship
- pypa/pipx
- oauthlib/oauthlib
- getsentry/responses
- nayafia/nayafia
- adafruit/Adafruit_CircuitPython_CircuitPlayground
- ansible/ansible
- jupyter/notebook
- 11ty/11ty-website
- extism/extism
- riverscuomo/new-albums
- conda/conda-build
- wntrblm/nox
- microsoftgraph/microsoft-graph-docs-contrib
- golang/go
- vega/ipyvega
- Azure/azure-cosmos-python
- python-poetry/tomlkit
- microsoftgraph/python-sample-pagination
- spotify/pedalboard
- chhantyal/py3readiness
- aurelia/documentation
- conda/conda-docs
- gleam-lang/gleam
- absurdia/absurdia-py
- kushaldas/asaman
- ericpalakovichcarr/pytest-pythonpath
- facebook/pyre-check
- palantir/python-language-server
- ebkalderon/tower-lsp
- cardoe/stderrlog-rs
- sphinx-doc/sphinx
- GraphQLGuide/book
- livebook-dev/livebook
- bitbldr/sprocket_docs
- python/mypy
- gleam-lang/website
- topazproject/topaz
- rocketreach/rocketreach_python
- Azure/azure-cli
- psf/black
- pypa/trove-classifiers
- diogonfs/pyinit
- rust-lang/log
- microsoft/vscode-tools-for-ai
- lorenzofox3/zora
- casey/just
- jupyter-book/mystmd.org
- google/grumpy
- realpython/python-guide
- pdm-project/pdm
- python/importlib_metadata
- Devid-Ba/Text-adventure
- stellar/awesome-stellar
- pablogsal/cpython_leaderboard
- scikit-learn/scikit-learn
- microsoft/vscode-pylint
- vscode-restructuredtext/vscode-restructuredtext
- pyvideo/old-pyvideo
- pyvideo/data
- MicrosoftDocs/azure-docs
- saschpe/mozilla-plugins
- markshannon/faster-cpython
- gleam-lang/otp
- VSCodeVim/Vim
- MagicStack/MagicPython
- google/yapf
- jupyter/jupyter.github.io
- WebAssembly/component-model
- w3c/ServiceWorker
- twisted/klein
- astral-sh/uv
- microsoft/vscode-extension-samples
- dusty-phillips/macabre
- Lukasa/language-restructuredtext
- pypi/warehouse
- regebro/supporting-python-3
- luabud/hello-vscodespaces
- briandealwis/ferret
- psf/fundable-packaging-improvements
- microsoft/python-sample-vscode-django-tutorial
- bagder/http2-explained
- devcontainers/features
- PyPy
- defusedexpat
- expat
- Mercurial
- vim
I have (co-)authored 32 PEPs.
(Listed from oldest to newest, although I may have become a co-author post-creation.)
# | Title | Status | Co-authors |
---|---|---|---|
4 | Deprecation of Standard Modules | 🏃 | Martin von Löwis |
2 | Procedure for Adding New Modules | 🏃 | Martijn Faassen |
11 | CPython platform support | 🏃 | Martin von Löwis |
12 | Sample reStructuredText PEP Template | 🏃 | David Goodger, Barry Warsaw |
3100 | Miscellaneous Python 3.0 Plans | ✅ | |
339 | Design of the CPython Compiler | 🤦 | |
348 | Exception Reorganization for Python 3.0 | ❌ | |
352 | Required Superclass for Exceptions | ✅ | Guido van Rossum |
360 | Externally Maintained Packages | ✅ | |
362 | Function Signature Object | ✅ | Jiwon Seo, Yury Selivanov, Larry Hastings |
3108 | Standard Library Reorganization | ✅ | |
3113 | Removal of Tuple Parameter Unpacking | ✅ | |
3122 | Delineation of the main module | ❌ | |
374 | Choosing a distributed VCS for the Python project | ✅ | Stephen J. Turnbull, Alexandre Vassalotti, Barry Warsaw, Dirkjan Ochtman |
401 | BDFL Retirement | ❌ | Barry Warsaw |
3003 | Python Language Moratorium | ✅ | Jesse Noller, Guido van Rossum |
399 | Pure Python/C Accelerator Module Compatibility Requirements | ✅ | |
512 | Migrating from hg.python.org to GitHub | ✅ | |
488 | Elimination of PYO files | ✅ | |
518 | Specifying Minimum Build System Requirements for Python Projects | ✅ | Nathaniel J. Smith, Donald Stufft |
519 | Adding a file system path protocol | ✅ | Koos Zevenhoven |
523 | Adding a frame evaluation API to CPython | ✅ | Dino Viehland |
8001 | Python Governance Voting Process | ✅ | Christian Heimes, Donald Stufft, Eric Snow, Gregory P. Smith, Łukasz Langa, Mariatta, Nathaniel J. Smith, Pablo Galindo Salgado, Raymond Hettinger, Tal Einat, Tim Peters, Zachary Ware |
594 | Removing dead batteries from the standard library | ✅ | Christian Heimes |
621 | Storing project metadata in pyproject.toml | ✅ | Dustin Ingram, Paul Ganssle, Pradyun Gedam, Sébastien Eustace, Thomas Kluyver, Tzu-ping Chung |
650 | Specifying Installer Requirements for Python Projects | 🤦 | Vikram Jayanthi, Dustin Ingram |
641 | Using an underscore in the version portion of Python 3.10 compatibility tags | ❌ | Steve Dower, Barry Warsaw |
665 | A file format to list Python dependencies for reproducibility of an application | ❌ | Pradyun Gedam, Tzu-ping Chung |
685 | Comparison of extra names for optional distribution dependencies | 👍 | |
751 | A file format to record Python dependencies for installation reproducibility | 👍 | |
758 | Allow ``except`` and ``except*`` expressions without parentheses | 👍 | Pablo Galindo |
760 | No More Bare Excepts | 🤦 | Pablo Galindo |
I'm the 5th most prolific PEP author.
- Alyssa Coghlan (52)
- Guido van Rossum (49)
- Barry Warsaw (41)
- Victor Stinner (34)
- Brett Cannon (32)
- Donald Stufft (21)
- Petr Viktorin (18)
- Martin von Löwis (17)
- Łukasz Langa (15)
- Nathaniel J. Smith (15)
- Steve Dower (15)
- Raymond Hettinger (14)
- Antoine Pitrou (13)
- Mark Shannon (12)
- Eric Snow (12)
- Georg Brandl (11)
- Tim Peters (10)
- A.M. Kuchling (10)
- Marc-André Lemburg (9)
- Paul Moore (9)
- Yury Selivanov (8)
- Larry Hastings (8)
- Christian Heimes (8)
- Ivan Levkivskyi (8)
- Pradyun Gedam (8)
- Jeremy Hylton (7)
- Thomas Wouters (7)
- Moshe Zadka (7)
- Benjamin Peterson (7)
- Dustin Ingram (7)
- Ee Durbin (7)
- David Goodger (6)
- Ka-Ping Yee (6)
- Jim J. Jewett (6)
- Phillip J. Eby (6)
- Daniel Holth (6)
- Chris Angelico (6)
- Inada Naoki (6)
- Pablo Galindo (6)
- Brandt Bucher (6)
- Pablo Galindo Salgado (6)
- Tzu-ping Chung (6)
- Jelle Zijlstra (6)
- William Woodruff (6)
- Collin Winter (6)
- Anthony Baxter (5)
- Neil Schemenauer (5)
- Skip Montanaro (5)
- Ethan Furman (5)
- Talin (5)
- Eric Traut (5)
- Irit Katriel (5)
- Paul Prescod (4)
- Gregory Ewing (4)
- Richard Jones (4)
- Tarek Ziadé (4)
- Carl Meyer (4)
- Jukka Lehtosalo (4)
- Thomas Kluyver (4)
- Emma Harper Smith (4)
- Jeroen Demeyer (4)
- Mariatta (4)
- Lysandros Nikolaou (4)
- Ofek Lev (4)
- Pradeep Kumar Srinivasan (4)
- Travis Oliphant (3)
- Michel Pelletier (3)
- Alex Martelli (3)
- Michael Hudson (3)
- Neal Norwitz (3)
- Steven Bethard (3)
- Armin Ronacher (3)
- Carol Willing (3)
- Eli Bendersky (3)
- Eric V. Smith (3)
- Steven D'Aprano (3)
- Jeffrey Yasskin (3)
- Batuhan Taskaya (3)
- Filipe Laíns (3)
- Erlend Egeberg Aasland (3)
- James Hilton-Balfe (3)
- Shantanu Jain (3)
- Gregory P. Smith (3)
- Ewa Jodlowska (3)
- Aahz (2)
- Oleg Broytman (2)
- Fred L. Drake (2)
- Jr. (2)
- David Ascher (2)
- Greg Wilson (2)
- Gordon McMillan (2)
- Christopher A. Craig (2)
- Clark C. Evans (2)
- Greg Stein (2)
- Magnus Lie Hetland (2)
- Jack Jansen (2)
- Vinay Sajip (2)
- Mark Hammond (2)
- Josiah Carlson (2)
- Terry Reedy (2)
- Facundo Batista (2)
- Ben Finney (2)
- Calvin Spealman (2)
- Tim Delaney (2)
- Jesse Noller (2)
- Stephen J. Turnbull (2)
- Dirkjan Ochtman (2)
- Miro Hrončok (2)
- Cameron Simpson (2)
- Alex Gaynor (2)
- Ronald Oussoren (2)
- Trishank Karthik Kuppusamy (2)
- Vladimir Diaz (2)
- Marina Moore (2)
- Justin Cappos (2)
- Stefano Borini (2)
- Stefan Behnel (2)
- Ned Deily (2)
- Alexander Belopolsky (2)
- Mark E. Haase (2)
- Robert Collins (2)
- Koos Zevenhoven (2)
- Cory Benfield (2)
- Marcel Plch (2)
- Mario Corchero (2)
- Geoffrey Thomas (2)
- Maggie Moss (2)
- Stéphane Bidoul (2)
- Mark Mendoza (2)
- Shannon Zhu (2)
- Paul Ganssle (2)
- Daniel F Moisset (2)
- Tobias Kohn (2)
- David Foster (2)
- Tal Einat (2)
- Steven Troxler (2)
- Zac Hatfield-Dodds (2)
- Erik De Bonte (2)
- Sam Gross (2)
- Ralf Gommers (2)
- Sergey B Kirpichev (2)
- Facundo Tuesca (2)
- Savannah Ostrowski (2)
- Hugo van Kemenade (2)
- Hood Chatham (2)
- Daniel Stutzbach (2)
- Joe Carey (2)
- Martijn Faassen (1)
- The Python core team and community (1)
- Paul Barrett (1)
- Peter Schneider-Kamp (1)
- Huaiyu Zhu (1)
- Gregory Lielens (1)
- Paul F. Dubois (1)
- Sean Reifschneider (1)
- Grant Griffin (1)
- Jonathan Riehl (1)
- Jason Petrone (1)
- Frédéric B. Giacometti (1)
- James C. Ahlstrom (1)
- Jim Althoff (1)
- Neil Hodgson (1)
- Trent Mick (1)
- David Eppstein (1)
- Walter Dörwald (1)
- Oren Tirosh (1)
- Stepan Koltsov (1)
- Scott Gilbert (1)
- Thomas Heller (1)
- Jeff Epler (1)
- Just van Rossum (1)
- Thomas Bellman (1)
- Kevin Altis (1)
- Dave Cole (1)
- Andrew McNamara (1)
- Cliff Wells (1)
- Jack Diederich (1)
- Peter Harris (1)
- Roman Suzi (1)
- Mike Meyer (1)
- W Isaac Carroll (1)
- Terence Way (1)
- Steven Taschuk (1)
- Kevin D. Smith (1)
- Peter Astrand (1)
- Samuele Pedroni (1)
- Christian R. Reis (1)
- Andrew McClelland (1)
- Michael P. Dubner (1)
- Micah Elliott (1)
- Björn Lindqvist (1)
- Jiwon Seo (1)
- Ben North (1)
- Lino Mastrodomenico (1)
- Richard Oudkerk (1)
- Alexandre Vassalotti (1)
- Jervis Whitley (1)
- Kerrick Staley (1)
- Greg Slodkowicz (1)
- Michael Foord (1)
- Paul Colomiets (1)
- Daniel Urban (1)
- Benoit Bryon (1)
- Lennart Regebro (1)
- Todd Rovito (1)
- Stefan Krah (1)
- Holger Krekel (1)
- Chris McDonough (1)
- Joshua Landau (1)
- Lukas Puehringer (1)
- Joshua Lock (1)
- Lois Anne DeLong (1)
- Ben Hoyt (1)
- Joseph Martinot-Lagarde (1)
- Sebastian Kreft (1)
- Charles-François Natali (1)
- Christopher Barker (1)
- Martin Teichmann (1)
- Robert Kuska (1)
- James Polley (1)
- Ed Schofield (1)
- Joseph Jevnik (1)
- Nick Humrich (1)
- Mike G. Miller (1)
- Robert T. McGibbon (1)
- Serhiy Storchaka (1)
- Dino Viehland (1)
- Ryan Gonzalez (1)
- Philip House (1)
- Lisa Roach (1)
- Tomáš Orsava (1)
- Philipp Angerer (1)
- Erik M. Bray (1)
- Masayuki Yamamoto (1)
- Markus Meskanen (1)
- Julien Palard (1)
- R David Murray (1)
- Elvis Pranskevichus (1)
- Eric N. Vander Weele (1)
- Mark Williams (1)
- Kushal Das (1)
- Michael Lee (1)
- Michael J. Sullivan (1)
- Till Varoquaux (1)
- Konstantin Kashin (1)
- Ezio Melotti (1)
- Berker Peksag (1)
- Damien George (1)
- Philippe PRADOS (1)
- Sumana Harihareswara (1)
- Chris Jerdonek (1)
- Dennis Sweeney (1)
- Sébastien Eustace (1)
- Laurie Opperman (1)
- Arun Babu Neelicattu (1)
- Philippe Ombredanne (1)
- C.A.M. Gerlach (1)
- Karolina Surma (1)
- Matthew Rahtz (1)
- Vincent Siles (1)
- Vikram Jayanthi (1)
- Ammar Askar (1)
- Bernát Gábor (1)
- Laura Creighton (1)
- Tian Gao (1)
- Matthias Klose (1)
- Stefano Rivera (1)
- Elana Hashman (1)
- Graham Bleaney (1)
- Adam Turner (1)
- Taneli Hukkinen (1)
- John Belmonte (1)
- Eddie Elizondo (1)
- Germán Méndez Bravo (1)
- Cooper Lees (1)
- Franek Magiera (1)
- Joshua Xu (1)
- Ken Jin (1)
- Marta Gómez Macías (1)
- Alice Purcell (1)
- Fridolín Pokorný (1)
- Joshua Cannon (1)
- Amethyst Reese (1)
- Rich Chiodo (1)
- Sebastián Ramírez (1)
- Zixuan James Li (1)
- Russell Keith-Magee (1)
- Joanna Jablonski (1)
- Domenico Andreoli (1)
- Carl Friedrich Bolz-Tereick (1)
- Simon Cross (1)
- Tim Felgentreff (1)
- David Hewitt (1)
- Wenzel Jakob (1)
- Marc-Andre Lemburg (1)
- Donghee Na (1)
- Karl Nelson (1)
- Stepan Sindelar (1)
- David Woods (1)
- Stephen Rosen (1)
- Joshua Bambrick (1)
- Malcolm Smith (1)
- Adrian Garcia Badaracco (1)
- Joop van de Pol (1)
- Jim Baker (1)
- Paul Everitt (1)
- Koudai Aono (1)
- Dave Peck (1)
- Jarek Potiuk (1)
- Gregory R. Warnes (1)
- Seth Michael Larson (1)
- Emily Morehouse-Valcarcel (1)
- Alexis Challande (1)
- Victorien Plot (1)
- Michael Sarahan (1)
- Eneg (1)
- Matt Wozniski (1)
- Ivona Stojanovic (1)
- Seth Larson (1)
- Thomas Robitaille (1)
- Jonathan Dekhtiar (1)
- Deb Nicholson (1)
- Stan Ulbrych (1)
- Matt Page (1)
- Klaus Zimmermann (1)
- Tony Lownds (1)
- Andre Roberge (1)
- Jason Orendorff (1)
- Mike Verdone (1)
- Carl Banks (1)
- Patrick Maupin (1)
- Lie Ryan (1)
- Matt Chisholm (1)
- Atsuo Ishimoto (1)
- Gerald Britton (1)
- Peter Moody (1)
- Eric Pruitt (1)
- Charles R. McCreary (1)
- Reid Kleckner (1)
- Brian Quinlan (1)
- Laurens Van Houtven (1)
- Zachary Ware (1)
- Doug Hellmann (1)
- The PEP Editors (1)
2/8
- Mercury
- Venus
- Earth
- Mars
- Jupiter
- Saturn
- Uranus
- Neptune