Hi,
I would like to propose promoting Kirill Podoprigora (eclips4) as a core developer.
Vote
- Promote Kirill
- Do not promote
Kirill’s contributions to Python
Kirill is active in Python for almost two years. He got 131 commits merged in the main branch (first commit in October 2022). He modified various parts of Python: compiler, AST, unittest, inspect, pickle, asyncio, documentation, warnings, etc. He is not afraid of digging into the code to identify and fix reference leaks.
Kirill is also active in bug triage. He was involved in 486 issues and 500 pull requests.
Outside Python, Kirill is contributing to RustPython (porting tests between versions), and tries to reimplement Python in Zig (as a replacement for C) but the project is only at the design stage.
Major accomplishments in CPython
I asked Kirill if he is proud of a specific contribution. He replied that he is proud of these two PRs:
- elementtree: gh-111784: Fix two segfaults
- importlib: gh-106176: Fix reference leak in importlib/_bootstrap.py
Both of them are really hard to solve (IMO), not gonna lie, I’ve spent about a hundred of hours solving each of them. (The second PR was closed in favor of GH-106176, GH-104702: Fix reference leak when importing across multiple threads by brettcannon · Pull Request #108497 · python/cpython · GitHub which is based on my PR and my idea for how to solve the problem)
pyexpat and elementtree
After the _elementree
C extension was “isolated” (converted to the multiphase API and static types converted to heap types), _elementree
started to crash at exit (ooops!)
The problem was the usage of a borrowed reference in the _elementtree
extension. Kirill modified _elementtree
to hold a strong reference to the pyexpat
capsule object.
importlib leak
On June 2023, a reference leak was reported on the test_import
test suite. The same day, Kirill proposed a fix and asked for reviews. There was a long discussion for 2 months about the best fix. Kirill was active in the discussion. At the end, a different fix was merged by Brett Cannon using a weak reference dictionary. The most difficult part was the analysis of the root cause and discussing the best fix.
Post-promotion mentoring
I will mentor Kirill for one month after his promotion (if it’s accepted) to help him to deal with his new responsibilities. I will require him to ask me before merging anything until he will be used to the process.
Vote 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.