[python-committers] RFC: Process to become a core developer

Ezio Melotti ezio.melotti at gmail.com
Fri Dec 8 08:19:04 EST 2017

On Thu, Dec 7, 2017 at 11:38 PM, Victor Stinner
<victor.stinner at gmail.com> wrote:
> 2017-12-07 19:21 GMT+01:00 Antoine Pitrou <antoine at python.org>:
>>> == Step 2: Bug Triage Permission ==
>>> Once a contributor becomes active enough, a core developer can propose
>>> to give the bug triage permission to the contributor.
>> It sounds like you are not taking into account what was said by various
>> people during the previous discussion.
> I did, but I'm not sure that you (Antoine and others) understand
> properly my intent.
> Please see the reply that I just sent on the other "Requirements to
> get the "bug triage" permission?" thread.
>>> == Step 3: Getting a mentor ==
>>> Python project is big and has a long history. Contributors need a
>>> referrer to guide them in this wild and dangerous (!) project, and in
>>> the development workflow.
>> Perhaps you are overdoing this? :-)
> Maybe, who knows? :-)
>>> Required mentor skills:
>>> * Be a core contributor.
>>> * Be available at least during one whole month.
>>> * Follow the contributor: must get an update at least once a week,
>>> especially if the contributor doesn't show up.
>> I'm afraid these requirements may make the process actually harder than
>> it currently is.  What if there is no potential mentor available?  This
>> reminds of the Google Summer of Code...
> I would lie if I would say that being a mentor is a trivial task that
> doesn't take any time. But from what I hear around me, mentoring the
> *key* difference to train faster motivated contributors.

In my experience, contributors that get promoted to core devs are
usually already experienced, but they might not be familiar with all
the quirks of CPython development and they will likely have a few
CPython-specific questions.
When I became a core dev I don't remember having an official mentor. I
had several different questions (should I backport this to Python 2.3?
 how do I use svnmerge? how do I create a wide unicode debug build?
which rst role should I use to document X?) and always received a
timely reply from several different people, depending on who was
available and their main area of expertise (also note that there was
no devguide back then :).

In my opinion, the role of the mentor should boil down to:
1) be a reference for the new core dev and be available in case
everything else fails (e.g. if no one else answers a question);
2) be responsible for the mistakes the new core dev might make (e.g.
help fixing up a bad merge or a broken buildbot caused by the new core
The mentor shouldn't babysit the new core dev and be in the only point
of contact.

The new core dev should:
1) interact with the other core devs and the community in general;
2) reach to the mentor only when necessary (i.e. no one else replied,
something import/urgent/"personal").

For GSoC the situation is different:
1) GSoC students have to work on a specific project with specific
goals, requirements, and deadlines;
2) GSoC students are usually less experience and need to be followed,
guided, and sometimes pushed;
3) Given its breadth and maturity, CPython itself is not a
particularly good candidate for GSoC projects.

Best Regards,
Ezio Melotti

> A single people cannot be the mentor of too many contributors at the
> same time. The bootstrap is going to be hard :-(
> Oh, if you didn't see it yet, I strongly suggest to watch Mariatta
> Wijaya's talk about mentoring at the last Pycon US:
> https://www.youtube.com/watch?v=Wc1krFb5ifQ
> She explained that mentoring is also valuable for the mentor! It goes
> in both directions.
> Another option is the idea proposed in parenthesis, that contributors
> mentor them each other. I wouldn't count as the official required
> mentoring, but it would help anyway. I think that it is already
> happening right now on the core-mentorship mailing list, helping each
> other.
> In the past, I mentored Xavier De Gaye and Xiang Zhang during one
> month *after* they became core developers. Honestly, it took me less
> than one hour per week. Ok, maybe they are not the best examples of
> contributors, since they already had a good background. But I'm not
> less afraid of being a mentor ;-)
> The "Step 3: Getting a mentor" isn't the first step just after "Step
> 0: Newcomers". The expectation is that the contributor already knows
> enough about Python workflow and code, before getting a mentor.
> For steps before the step 3, there is already the core-mentorship
> mailing list. IMHO this list is working well as intended. People who
> reply are kind, take time to explain, and contributors usually get a
> reply quickly. Bonus point: multiple core developers can be found
> there and actually answer, including Guido van Rossum!
> Mariatta got Guido van Rossum as a mentor (and also Raymond Hettinger
> if I understood correctly) and it was very successful, she became
> "quickly" a core developer and she is now involved in many parts of
> the Python development! (Sorry Mariatta to "use you" as an example!)
> I'm taking Mariatta as a concrete example of the success of mentoring.
> Victor
> _______________________________________________
> python-committers mailing list
> python-committers at python.org
> https://mail.python.org/mailman/listinfo/python-committers
> Code of Conduct: https://www.python.org/psf/codeofconduct/

More information about the python-committers mailing list