[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
dev).
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