Vote to promote Cheryl Sabella as a core developer

Hi,

Terry Reedy and me propose to promote Cheryl Sabella as a core developer. To vote, please reply with “+1” or “-1” (it’s even better with a short message). I propose to open the vote for 1 week. If you prefer to wait longer, please explain why.

Cheryl made significant enhancements in IDLE. She mostly worked with Terry Reedy, I somehow mentored her (not really on technical stuff, more on the workflow). She proved her long term commitment (active for 1 year 1/2), good programming skills and the ability to discuss the find a proper solution.

Her first commit was at Aug 14, 2017. I counted that she got 81 commits merged into master between August 2017 and February 2019. Great job!

I gave her the bug triage permission in December 2017: Cheryl Sabella was promoted to get bug triage permission. Cheryl is very helpful on the bug tracker: she is able to properly understand issues and proposes a concrete action to move the issue forward. She told me that she likes to click on button to get a random issue until she finds an issue that she can help :slight_smile:

I wanted to propose to promote her earlier (2 months ago), but I decided to wait until Python has a new governance and elects a new Steering Committee. Previously, it would put more pressure on the promotion vote, since the new governance gives more responsibilities to core developers: they are now more involved in the governance, like the vote to elect committee members.

When I first asked Cheryl if she would like to become a core dev, she said no. It is the first time in my experience with contributors that someone said no to me. IMHO it’s a great quality of Cheryl :slight_smile: Obviously, she now accepted that I propose to promote her :slight_smile:

The PEP 13 explains a little bit how and when a contributor becomes a core dev: https://www.python.org/dev/peps/pep-0013/#membership “It is granted by receiving at least two-thirds positive votes in a core team vote and no veto by the steering council.”

Victor

UPDATE: I fixed a typo.

UPDATE 2: Cheryl got 65+16 commits merged into master. I missed her first 16 commits made under a different Git author.

6 Likes

I got that twice I think. Later they finally accepted. Both were very talented.

+1 for Cheryl as core developer.

1 Like

+1, I think she’s been due for this for a while now :slight_smile:

2 Likes

+1 from me.

1 Like

+1, and it’s overdue :smile:.

1 Like

+1

Literally just a few days ago I realized how much (great) work Cheryl has been doing for several years now. :slight_smile:

+1 She has been doing excellent work and is very active in the issue tracker :slight_smile:

Sorry, I only mentioned IDLE, but Cheryl is not afraid of modifying other parts of Python: she modified a lot of different modules.

Ah, I found an useful link: all Python commits authored by Cheryl

Some interesting commits (I just picked a few recent changes to show the diversity of work she is doing):

Ignoring Misc/NEWS.d/, she modified 119 files:

Doc/c-api/exceptions.rst
Doc/c-api/init.rst
Doc/howto/logging-cookbook.rst
Doc/howto/regex.rst
Doc/howto/unicode.rst
Doc/library/asyncio-eventloop.rst
Doc/library/asyncio-policy.rst
Doc/library/asyncio-stream.rst
Doc/library/asyncore.rst
Doc/library/codecs.rst
Doc/library/dataclasses.rst
Doc/library/decimal.rst
Doc/library/email.parser.rst
Doc/library/email.rst
Doc/library/gettext.rst
Doc/library/hashlib.rst
Doc/library/idle.rst
Doc/library/intro.rst
Doc/library/ipaddress.rst
Doc/library/ipaddress.rst
Doc/library/itertools.rst
Doc/library/logging.handlers.rst
Doc/library/mimetypes.rst
Doc/library/os.path.rst
Doc/library/os.path.rst
Doc/library/os.rst
Doc/library/re.rst
Doc/library/resource.rst
Doc/library/select.rst
Doc/library/shutil.rst
Doc/library/shutil.rst
Doc/library/signal.rst
Doc/library/socket.rst
Doc/library/ssl.rst
Doc/library/subprocess.rst
Doc/library/sys.rst
Doc/library/test.rst
Doc/library/threading.rst
Doc/library/_thread.rst
Doc/library/time.rst
Doc/library/time.rst
Doc/library/wsgiref.rst
Doc/library/zipapp.rst
Doc/reference/compound_stmts.rst
Doc/reference/datamodel.rst
Doc/reference/datamodel.rst
Doc/reference/lexical_analysis.rst
Doc/reference/simple_stmts.rst
Doc/tools/extensions/pyspecific.py
Doc/tools/rstlint.py
Doc/tutorial/controlflow.rst
Doc/tutorial/inputoutput.rst
Doc/using/cmdline.rst
Doc/whatsnew/3.7.rst
Doc/whatsnew/3.8.rst
Lib/configparser.py
Lib/gettext.py
Lib/idlelib/browser.py
Lib/idlelib/browser.py
Lib/idlelib/codecontext.py
Lib/idlelib/configdialog.py
Lib/idlelib/configdialog.py
Lib/idlelib/configdialog.py
Lib/idlelib/config-extensions.def
Lib/idlelib/config-highlight.def
Lib/idlelib/config_key.py
Lib/idlelib/config.py
Lib/idlelib/editor.py
Lib/idlelib/editor.py
Lib/idlelib/help.html
Lib/idlelib/hyperparser.py
Lib/idlelib/idle_test/htest.py
Lib/idlelib/idle_test/test_browser.py
Lib/idlelib/idle_test/test_browser.py
Lib/idlelib/idle_test/test_codecontext.py
Lib/idlelib/idle_test/test_configdialog.py
Lib/idlelib/idle_test/test_configdialog.py
Lib/idlelib/idle_test/test_config_key.py
Lib/idlelib/idle_test/test_outwin.py
Lib/idlelib/idle_test/test_pathbrowser.py
Lib/idlelib/idle_test/test_pyparse.py
Lib/idlelib/mainmenu.py
Lib/idlelib/NEWS.txt
Lib/idlelib/NEWS.txt
Lib/idlelib/outwin.py
Lib/idlelib/outwin.py
Lib/idlelib/outwin.py
Lib/idlelib/pathbrowser.py
Lib/idlelib/pathbrowser.py
Lib/idlelib/pyparse.py
Lib/idlelib/window.py
Lib/idlelib/zoomheight.py
Lib/ipaddress.py
Lib/logging/handlers.py
Lib/mailbox.py
Lib/mimetypes.py
Lib/test/test_configparser.py
Lib/test/test_gettext.py
Lib/test/test_ipaddress.py
Lib/test/test_ipaddress.py
Lib/test/test_itertools.py
Lib/test/test_logging.py
Lib/test/test_mailbox.py
Lib/test/test_urlparse.py
Lib/test/test_urlparse.py
Lib/test/test_wsgiref.py
Lib/tkinter/__init__.py
Lib/tkinter/test/test_tkinter/test_misc.py
Lib/urllib/parse.py
Lib/urllib/request.py
Lib/wsgiref/handlers.py
Lib/wsgiref/util.py
Lib/xmlrpc/client.py
Misc/ACKS
Misc/python.man
Modules/main.c
Modules/socketmodule.c
Modules/timemodule.c
Tools/i18n/msgfmt.py

List generated with this command:

COLUMNS=1000 git log --author="Cheryl Sabella" --stat
| grep '|'
| sed 's/|.*//g'
| grep -v 'NEWS.d'
| cut -c2-
| sort -u

+1 (post must be at least 10 characters)

Her first commit was March 28 2017.(https://github.com/python/cpython/commit/85deefcf61d3cc192846f41a4ccc6df17da60c98)

1 Like

Oh. I mostly used git log --author="Cheryl Sabella", but it seems like she used a different Git author previously:

commit 85deefcf61d3cc192846f41a4ccc6df17da60c98
Author: csabella <chekat2@gmail.com>
Date:   Wed Mar 29 17:14:06 2017 -0400

Under “Author: csabella chekat2@gmail.com”, I see 16 more commits!

1 Like

+1 vote for @csabella I have reviewed her patches too and found it always complete. She will be a great addition to the group of developers and I hope she keeps enjoying contributing to CPython.

Also, thank you @vstinner and @tjreedy for recognizing Cheryl’s contributions and pushing for her promotion.

2 Likes

Enthusiastic +1. She has done wonderful work. Thanks @tjreedy for the outstanding job mentoring and @vstinner for encouraging and bring this to a vote.

She’s also been very active in the devguide too.

3 Likes

+1 from me.

+1 from me. I worked with Cheryl on many issues, I’ve been following their triaging work on bugs.python.org, and code reviews on GitHub for more than a year. IMO, Cheryl’s contributions (active on bugs.p.o, doing code reviews, caring about documentation, and writing high quality code) are a great example of what we should look for when promoting contributors in the future.

(I was planning to create a thread myself last year, but I was quite busy planning my relocation.)

I can’t imagine anyone who has been following cpython development in recent times could in good conscience not vote +1 for @csabella, So let’s just get on with it!

Looking forward a bit, I wonder if the topic of promoting committers is something the steering committee is likely to take on. @willingc?

1 Like

Can you please elaborate? I have at least one more candidate that I would like to promote, but later :wink:

+1 of course. I also said ‘no’ the first time I was questioned about becoming a core dev, about 6 months before being drafted to work on IDLE.

2 Likes

Can you please elaborate?

@vstinner, obviously the whole process of how we decide to give “commit-bit” privileges to people is an extremely important one as the role of Python core developer has traditionally come with a lot of assumptions about responsibilities, duties, and authorities. We’ve had a lot of informal discussions about the role over the years so it seems to me to be potentially a natural and important topic for the steering committee

+1, I appreciate her work

I agree but I created a new thread to discuss that :slight_smile: Formalize the process to promote a contributor as a core developer

2 Likes