# Vote to promote Dong-hee Na

**URL:** <https://discuss.python.org/t/vote-to-promote-dong-hee-na/3794>\
**Category:** Committers\
**Tags:** promotion\
**Created:** [March 30, 2020, 11:46pm UTC](https://discuss.python.org/t/vote-to-promote-dong-hee-na/3794 "2020-03-30T23:46:20Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![vstinner](https://sea2.discourse-cdn.com/flex002/user_avatar/discuss.python.org/vstinner/32/15130_2.png) [@vstinner](https://discuss.python.org/u/vstinner)\
**Post date:** [March 30, 2020, 11:46pm UTC](https://discuss.python.org/t/vote-to-promote-dong-hee-na/3794/1 "2020-03-30T23:46:20Z")

</div>

I propose to promote [Dong-hee Na aka corona10](https://github.com/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 😉

_Poll ([view on site](https://discuss.python.org/t/vote-to-promote-dong-hee-na/3794/1))_

# 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’s commits

Dong-hee Na got [78 commits merged into the Python master branch](https://github.com/python/cpython/commits?author=corona10) since August 2017.

He is the [4th most active developer to Python over the last 6 months](https://github.com/python/cpython/graphs/contributors?from=2019-10-01&to=2020-03-31&type=c)!

He made various kinds of changes. Some examples.

New features:

- Added timeout parameter to imaplib.IMAP4 and smtplib.LMTP.
- Add a force keyword argument to logging.basicConfig().

Enhancements:

- 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.

Optimizations:

- 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().

Security:

- [CVE-2019-16935] xmlrpc.server: escape server\_title.

Fixed crashes:

- 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.

Bugfixes:

- 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.

Various cleanups:

- Remove the deprecated method threading.Thread.isAlive(), after he added a deprecation warning in Python 3.8.
- Remove urllib.parse.\_splittype from xmlrpc.client.

# Bug triager

[I gave him the bug triage permission](https://mail.python.org/archives/list/python-committers@python.org/thread/UAS4WOGWI3B5LNFK6IIDM6GWUMUDD6W5/) in September 2019. IMO he did a good job in the bug tracker as well, since he got the triager permission.

# Post-promotion mentoring

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.

# Vote 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.”

---

<div class="post-metadata">

**Author:** ![tjreedy](https://sea2.discourse-cdn.com/flex002/user_avatar/discuss.python.org/tjreedy/32/137_2.png) [@tjreedy](https://discuss.python.org/u/tjreedy)\
**Post date:** [March 31, 2020, 1:17am UTC](https://discuss.python.org/t/vote-to-promote-dong-hee-na/3794/2 "2020-03-31T01:17:32Z")

</div>

I notice that Dong-hee has worked with perhaps 10 core devs other than Victor.

---

<div class="post-metadata">

**Author:** ![vstinner](https://sea2.discourse-cdn.com/flex002/user_avatar/discuss.python.org/vstinner/32/15130_2.png) [@vstinner](https://discuss.python.org/u/vstinner)\
**Post date:** [April 8, 2020, 1:49pm UTC](https://discuss.python.org/t/vote-to-promote-dong-hee-na/3794/3 "2020-04-08T13:49:57Z")

</div>

Ok, the vote closed with:

- 24 “Promote” votes (92%)
- 2 “Don’t promote” votes (8%)

I will now follow [https://devguide.python.org/coredev/#gaining-commit-privileges](https://devguide.python.org/coredev/#gaining-commit-privileges) process.
