Anonymous user
Contributing to Python: Difference between revisions
m
Protected "Contributing to Python" ([edit=sysop] (indefinite) [move=sysop] (indefinite))
imported>Jesstess No edit summary |
imported>Jesstess m (Protected "Contributing to Python" ([edit=sysop] (indefinite) [move=sysop] (indefinite))) |
||
(32 intermediate revisions by the same user not shown) | |||
Line 1:
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 steps for contributing specifically to Python.
These instructions were written for prospective [http://wiki.python.org/moin/OPW/2014 GNOME Outreach Program for Women] and [http://wiki.python.org/moin/SummerOfCode/2014 Google Summer of Code] interns, but are relevant for anyone interested in contributing to CPython and the standard library.
[[File:Python_logo.png|200px]] [[File:Opw.png|200px]] [[File:Pyladies_logo.png|200px]]
= Part 1: environment setup =
== Goal #1: install an IRC client ==
[[File:Chat.png|100px]]
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.
Line 12 ⟶ 18:
* [[Contributing_to_Python/OSX IRC|OS X]]
* [[Contributing_to_Python/Linux IRC|Linux]]
== Goal #2: practice navigating from the command line ==
[[File:Utilities-terminal.png|100px]]
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.
Line 20 ⟶ 29:
* [[Contributing_to_Python/OSX command line|OS X]]
* [[Contributing_to_Python/Linux command line|Linux]]
== Goal #3: Get familiar with the Python bug tracker ==
[[File:Bug.png|100px]]
Next,
# What is the oldest open Python ticket?
# How many open issues need a patch?
# How many "critical"-level open issues are there?
== Goal #4: practice using version control ==
[[File:History.png|100px]]
Mercurial is the distributed version control system Python uses to manages changes to its code.
Please [http://mercurial.selenic.com/downloads/ download and install Mercurial now].
If you have not used Mercurial before, please go through this tutorial: http://hginit.com/▼
▲If you have not used Mercurial before, please go through
== Goal #5: practice creating patches ==
[[File:Patch.png|100px]]
Code changes are represented in a concise and standard format called a "diff". <tt>patch</tt> is a utility which applies a "diff" to someone else's copy of the code.
Line 46 ⟶ 64:
http://openhatch.org/missions/diffpatch
= Part II: contributing to Python =
== Goal #1: join the mailing list ==
[[File:Email.png|100px]]
The Python community has a lot of mailing lists. The 2 big ones for new contributors are:
#
#
The core-mentorship mailing list will be our focus as we get settled in, so please [
▲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 ==
[[File:Safari.png|100px]]
Python has excellent documentation for getting started with contribution in its developer guide: http://docs.python.org/devguide/
Line 64 ⟶ 88:
Please read through the following sections of the developer guide:
#
#
#
#
#
#
#
By the end, you'll:
Line 81 ⟶ 105:
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: pick a bug to work on ==
[[File:Debugging.png|100px]]
It's time to pick a Python bug to work on! Visit http://bugs.python.org/ and browse for one that looks good.
It's a bit of an art to determine if a bug is good for a new contributor, so here are some suggestions:
First, the developer guide suggests 2 good areas for first-time contributors:
# [http://docs.python.org/devguide/docquality.html Documentation]
# [http://docs.python.org/devguide/coverage.html Test coverage]
If those sound interesting to you, look for issues in those areas.
Next, for the office hours on Sunday, March 9th, we'll have a list of beginner-friendly bugs. Check back here on Sunday to review that list.
Finally, you can always ask for help or suggestions on the core-mentorship mailing list or in the <tt>#pyladies</tt> IRC channel.
[[File:Patch.png|100px]]
Follow the steps in the developer guide to create and submit a patch for your bug: http://docs.python.org/devguide/patch.html.
Make sure to run the test suite first and that the tests all still pass!
== Goal #5: start working on your application ==
[[File:Opw.png|100px]]
Let the core mentorship mailing list know that you've submitted your patch and are ready to
|