How to become a Core Dev

I don’t know if this belongs here, but I’ve been gathering up my courage for years to ask this question, I just didn’t feel confident to ask then, and I know I’m doing this on behalf of many when I ask.

The question is, How does one become a Python Core Developer? I’m asking this because I would really love to be a core dev some day :sweat_smile:, you guys are like super heroes to me (I know this makes me seem like a child, but I assure you, I’m a really grown man) and I would like to know what it takes to get there.
Perhaps there’s some sort of screening process, or does one have to go through a mentorship program under an already existing core developer? frankly I got no idea, but I’d love to know.

Thanks in advance :slightly_smiling_face:

3 Likes

Hi Tobias! I’d recommend you take a look at the devguide. It actually has a chapter called How to Become a Core Developer :slight_smile:

2 Likes

Thanks @erlendaasland , I’ve actually read through the devguide before, and the part where someone has to have committed something standard consistently is what really throws me off.
Should I just start with the Python bug tracker and write as many patches as I can :thinking:? But I see hundreds of other great Devs doing that, and who keep doing that for long and aren’t even core devs :sweat_smile:. I’m sure if they all asked to be core Devs, we’d have like a thousand core devs or so.

Mostly what I’m getting at is this, is there like a limit to the number of Core Devs or something? In that one can only be a core Dev if the other core dev steps down and passes over there mantel to the next or something like that?

Keep in mind that, from a practical standpoint, by far the biggest difference between a core dev and any other contributor is that a core dev can merge their own changes. Basically everything else a core dev can do, everyone can do.

Sure, there’s voting for the steering council and attending the language summit, but participating in things like that doesn’t have nearly as much impact on Python and its community as you can already have without being a core developer. The title of “core developer” and the related associations are secondary and at best may improve one’s personal state of mind.

From my perspective, a core dev cares much more about how to help Python and its people than in having the title and commit rights. So getting the commit bit is almost a natural consequence of that focus, rather than the main objective of anyone I’d consider likely to be a core dev. (Also, commit rights only relate to contributions to CPython’s code. There are many other important and fulfilling ways to contribute to the Python community.)

Note the “almost” in “almost a natural consequence”. As you pointed out above, there are clearly many valuable contributors that aren’t core devs but care about Python a ton and put in the effort to help. Why aren’t they core devs? It’s a people problem and mostly about time. (And some contributors aren’t interested in commit rights.)

It takes time and opportunity to build up enough trust with the core devs. They need to trust that you aren’t going to mess Python (and its community) up! :grinning_face_with_smiling_eyes: Core devs are mostly volunteers and all have limited time. So it can take a while to interact enough and build those relationships, not to mention finding time for whatever mentoring is needed. It’s a frustrating problem for core devs (and probably for any open source maintainer).

Definitely not. :smiley:


FWIW, I talked about a lot of this stuff in my keynote at PyCon APAC a month ago:

(If you watch it, apologies in advance for my delivery.)

7 Likes

I have seen you in the Python Kampala group, if you want to chat in person, I am in Uganda, we can talk more about this. Like others have said, start with the devguide.

I have written a blog post on how to start contributing here:

Also, some others exist on the subject here:

https://cpython-core-tutorial.readthedocs.io/en/latest/where_should_i_start.html

2 Likes

I’d like to thank everyone for sharing such valuable insight about this topic. If there’s still more information to be given, I’m all ears :ear:.

And @nanjekyejoannah , I think I’ll humbly take you up on that offer of meeting up physically for a discussion. Though given your busy schedule, I think you’re the one supposed to set up the date and time when you’re free so we could meet.

I totally appreciate the help, thanks everyone. :blush:

1 Like

I watched this a few years ago. Hope it helps!

Given a good dose of free time, it’s really not hard to stand out compared to other great non-core devs.
If you look at the list of merged PRs, the majority comes from core devs.

You can certainly beat my paltry contributions ( Pull requests · python/cpython · GitHub ) in no time, don’t give up!

my (non-core dev) 2c:

  • bug tracker activity is great, but
  • pull requests are much better, and
  • conference talks, youtube videos, etc. also count!

P.S. yes there is mentorship:

  • informal mentorship — just ask, many here will answer (don’t give up if someone brushes you off)
  • Python Core Mentorship | Python.org for a more formal route (go for both!)