The Jazzy Groove Guide to CPython Contribution

Welcome to the The Jazzy Groove Guide to CPython Contribution.

This unofficial, concise, inspirational guide exists to provide contributors warm and welcoming encouragement to jump into CPython (core Python).

This guide is under development.

The official documentation of CPython is very detailed, helpful, and highly recommended reading. A nod of appreciation to documentation contributors, past and present. A good “first stop” doc is the Python Developer’s Guide.

One, two, three, four. One, two, three, four. You have rhythm. You have interest. Next step? Start finding your CPython contribution groove.

Contents:

Finding your groove

One. Two. Three. Four.

Four basic steps to get started as a CPython contributor:

  • Commit
  • Jump into it
  • Find your rhythm
  • Improvise
Finding your groove: Contributing to CPython and beyond
PyCon 2015 Talk by Carol Willing to inspire you as a contributor Slide deck
Python Contributor Playlist
Some music to inspire you as you contribute to the Python community

Jump Into It

Getting started as a contributor to CPython can feel a bit overwhelming. Where to start, who to ask, and what tools to use remind us that there are lots of details.

A plan, just like learning to play an instrument or sing, can make the journey smoother. In music, one is always learning and refining one’s skills. One key is to begin playing and listening immediately and then build up mastery over time.

Let’s see how the plan would look for CPython:

Method and Sheet Music

Python Developer’s Guide

Python Developer’s Guide
Official documentation on how to contribute to CPython.
Quickstart

Steps for getting the source code and running the tests. Three concise steps have three one-line commands to:

  1. Get the source
  2. Build the source
  3. Run the tests

Go ahead. Give it a try.

Helpful ‘Official’ Documentation

Python Developer FAQ
Q&A on Communications, Version Control, SSH, General topics
Core Developer Responsibilities

Some reponsibilities of core developers to the community:

  • Be a good person.
  • Please be prompt in responding to questions.
  • Please list what areas you want to be considered an expert in the Experts Index.
  • Have fun.
Experts Index
A guide to developers and their expertise and interests in Stdlib, Tools, Platforms, and Miscellaneous.
Developer Log
Developers with commit privileges from April 2005.

Misc/porting source file

Misc/SpecialBuilds.txt source file

Release information

PEPs Python Enhancement Proposals
Upcoming release content and timelines can be found here.

Communication

  • Mailing Lists
  • IRC
  • Blogs

Books

Videos

Brian Curtin The Development of Python and You http://pyvideo.org/video/432/pycon-2011–the-development-of-python-and-you Couple of years to core developer Why? Dive deeper into the code 38 responses easier to maintain upstream patches learning from smart people Guido challenge excitement software widely deployed python installed understand technologies better than day job give back why wouldn’t i contribute

Who? Anybody Around world 138 committers CPython 2010 62 active +20 new devs 2009 +9 people added Time - bottleneck

How? Dev Guide Dr. Brett Cannon PSF grant 2 months/ porting guide 8:34 get the source hginit.com hgbook

Building the source Building the docs - restructured text Testing - run the regression tests Bug regrtest resource warning 19:00 Buildbots

Brett Cannon talk slides

Guido 2005

Anna Ravenscroft You can be a speaker at PyCon http://pyvideo.org/video/1728/you-can-be-a-speaker-at-pycon

Eric Araujo How You Can Contribute to Python http://pyvideo.org/video/1578/how-you-can-contribute-to-python Documentation

Sprints

Joining a sprint is fun. Imagine the opportunity to meet and code with people that also love Python. Sprints are productive, a time to build skills, and share knowledge.

Consider joining the annual PyCon sprints or sprints at other conferences or user groups. Don’t worry if you are new to CPython – everybody is a beginner at something.

Checklists

Indices and tables