Contributing to Python: Difference between revisions

From OpenHatch wiki
Content added Content deleted
imported>Jesstess
No edit summary
imported>Jesstess
No edit summary
Line 1: Line 1:
Welcome! This page contains instructions for prospective OPW and Google Summer of Code interns, as well as anyone else interested in contributing to Python.
Welcome! This page contains instructions for getting started with contributing to Python. They cover practicing some of the common tools of open source development, as well as contributing specifically to Python.


= Part 1: environment setup =
= Part 1: environment setup =
Line 51: Line 51:
== Goal #1: join the mailing list ==
== Goal #1: join the mailing list ==


The Python community has a lot of mailing lists. The 2 big ones for new contributors are:
Join the Python core-mentorship mailing list and introduce yourself: https://mail.python.org/mailman/listinfo/core-mentorship.

# core-mentorship: https://mail.python.org/mailman/listinfo/core-mentorship. This is a great place to ask questions about contributing, ask for reviews, and get suggestions for bugs to work on.
# python-dev: https://mail.python.org/mailman/listinfo/python-dev. The main mailing list for developing and releasing Python. Please do not ask general Python questions on this list.

The core-mentorship mailing list will be our focus as we get settled in, so please [[https://mail.python.org/mailman/listinfo/core-mentorship|join the list]] now.


== Goal #2: read the developer guide ==
== Goal #2: read the developer guide ==


Read the Python developer guide: http://docs.python.org/devguide/
Python has excellent documentation for getting started with contribution in its developer guide: http://docs.python.org/devguide/

Please read through the following sections of the developer guide:

# Quick start: http://docs.python.org/devguide/#quick-start
# Setup: http://docs.python.org/devguide/setup.html
# Where to get help: http://docs.python.org/devguide/help.html
# The lifecycle of a patch: http://docs.python.org/devguide/patch.html
# Writing and running tests: http://docs.python.org/devguide/runtests.html
# Using the issue tracker: http://docs.python.org/devguide/tracker.html#tracker
# The CPython development cycle: http://docs.python.org/devguide/devcycle.html

By the end, you'll:

* Have downloaded the Python source code
* Built Python
* Run the test suite
* Have an overview of the development cycle.

Don't worry if this doesn't feel fully digested yet! The process will become clearer with practice.


== Goal #3: submit a patch for a Python bug ==
== Goal #3: submit a patch for a Python bug ==

Revision as of 14:47, 5 March 2014

Welcome! This page contains instructions for getting started with contributing to Python. They cover practicing some of the common tools of open source development, as well as contributing specifically to Python.

Part 1: environment setup

Goal #1: install an IRC client

IRC is a real-time chat protocol that open source projects often use to talk about the project and as a medium for users and developers to help each other.

Please follow the instructions below for your operating system to install IRC and join the #pyladies IRC channel on Freenode:

Goal #2: practice navigating from the command line

Many of the tools of open source development are primarily used via the command line. Let's get some practice with navigating the computer from the command line.

Goal #3: Get familiar with the Python bug tracker

Python tracks bugs and features at http://bugs.python.org/.

First, please create an account on http://bugs.python.org/.

Next, please familiarize yourself with how Python uses its bug tracker by exploring and finding answers to the following questions:

  1. What is the oldest open Python ticket?
  2. How many open issues need a patch?
  3. How many "critical"-level open issues are there?

Goal #4: practice using version control

Mercurial is the distributed version control system Python uses to manages changes to its code.

If you have not used Mercurial before, please go through this tutorial: http://hginit.com/

Goal #5: practice creating patches

Code changes are represented in a concise and standard format called a "diff". patch is a utility which applies a "diff" to someone else's copy of the code.

If you have not used diff and patch before, please go through the diff and patch training mission at:

http://openhatch.org/missions/diffpatch

Part II: contributing to Python

Goal #1: join the mailing list

The Python community has a lot of mailing lists. The 2 big ones for new contributors are:

  1. core-mentorship: https://mail.python.org/mailman/listinfo/core-mentorship. This is a great place to ask questions about contributing, ask for reviews, and get suggestions for bugs to work on.
  2. python-dev: https://mail.python.org/mailman/listinfo/python-dev. The main mailing list for developing and releasing Python. Please do not ask general Python questions on this list.

The core-mentorship mailing list will be our focus as we get settled in, so please [the list] now.

Goal #2: read the developer guide

Python has excellent documentation for getting started with contribution in its developer guide: http://docs.python.org/devguide/

Please read through the following sections of the developer guide:

  1. Quick start: http://docs.python.org/devguide/#quick-start
  2. Setup: http://docs.python.org/devguide/setup.html
  3. Where to get help: http://docs.python.org/devguide/help.html
  4. The lifecycle of a patch: http://docs.python.org/devguide/patch.html
  5. Writing and running tests: http://docs.python.org/devguide/runtests.html
  6. Using the issue tracker: http://docs.python.org/devguide/tracker.html#tracker
  7. The CPython development cycle: http://docs.python.org/devguide/devcycle.html

By the end, you'll:

  • Have downloaded the Python source code
  • Built Python
  • Run the test suite
  • Have an overview of the development cycle.

Don't worry if this doesn't feel fully digested yet! The process will become clearer with practice.

Goal #3: submit a patch for a Python bug

Submit a patch for a Python bug.

Goal #4: start working on your application

Let the core mentorship mailing list know that you've submitted your patch and are ready to work on your application. We'll craft an application together for a project that fits your background and interests and what you want to learn this summer!