I propose to promote Dong-hee Na aka corona10 as a core developer. He is contributing to Python since August 2017 and is now the 4th most active developer. He added new features, enhancements and optimizations. He fixed a severe security issue and crashes in builtin types. Moreover, I really enjoy working with him
- Promote Dong-hee Na
- Don’t promote Dong-hee Na
Working with Dong-hee is a pleasure
I’m mentoring Dong-hee Na since September 2019. I really enjoy working with him. He always accept reviews and is open to discussion. He is fine with trying a new approach if his first attempt was not the best.
I saw evolution in his work. Now the first version of his pull requests require less changes (or no change at all). He is learning from past reviews. He documents properly his changes, takes care of tests and backward compatibility. He provides benchmarks to show that his optimization actually makes the modified code faster.
He doesn’t try to “fix code which is not broken”. He identified multiple severe bugs in core builtin types like in list and dict methods.
Dong-hee Na got 78 commits merged into the Python master branch since August 2017.
He made various kinds of changes. Some examples.
- Added timeout parameter to imaplib.IMAP4 and smtplib.LMTP.
- Add a force keyword argument to logging.basicConfig().
- Update os.pread to accept the length type as Py_ssize_t.
- Fixed min() and max() error message.
- Modified modules to reject timeout=0 (non-blocking socket) in smtplib, ftplib, nntplib, poplist.
- Convert C extension modules to multiphase extension PEP 489: _collections, _heapq, itertools, _statistics, etc.
- Add tests for fcntl.lockf().
- Test both Python and C versions in test_statistics.
- Use PEP 590 vectorcall to optimize function calls. For example, tuple((1, 2, 3, 4, 5)) is now 1.8x faster!
- Improve float floordiv performance.
- Optimized list.count().
- [CVE-2019-16935] xmlrpc.server: escape server_title.
- Fixed crashes in dict and list when calling PyObject_RichCompareBool.
- Fix an old crash in list.contains. He discovered the bug, proposed a fix.
- Fix a segmentation fault when using reverse iterators of empty dict.
- Fix reference counting in the error module in the initialization code of C extension modules. He added PyModule_AddType() helper function which is less error-prone than PyModule_AddObject().
- Fix json.tool to catch BrokenPipeError.
- Remove the deprecated method threading.Thread.isAlive(), after he added a deprecation warning in Python 3.8.
- Remove urllib.parse._splittype from xmlrpc.client.
I gave him the bug triage permission in September 2019. IMO he did a good job in the bug tracker as well, since he got the triager permission.
As usual, I propose to continue to mentor him for one month after his promotion (if it’s accepted) to help him to deal with his new responsibilities. I plan to require him to ask me before merging anything, until he will be used to the process.
Copy of the PEP 13: “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.”