Get paid to contribute to Python this summer!

This page coordinates the Python projects for the Summer 2014 session of the GNOME Outreach Program For Women.

What: Earn a $5500 USD stipend while contributing to the CPython interpreter and standard library.

When: This is a full-time summer internship lasting from May 19 through August 18.

Where: Anywhere! This is a remote internship, with most communication happening on mailing lists, bug trackers, and IRC.

Who: This internship is open to anyone who identifies as a woman or is genderqueer, genderfluid, or genderfree. Note that unlike Google Summer of Code, you do not need to be a student.



Applications are due by March 19th.

Prospective Applicants

If you are at least 18 years old, identify as a woman or are genderqueer, genderfluid, or genderfree, and are interested in a paid summer internship doing core Python development, we'd love to have you apply to work with us in this summer's GNOME Outreach Program for Women!

Please read carefully through https://wiki.gnome.org/OutreachProgramForWomen for the full details on how the GNOME Outreach Program for Women works.

Please also note the following deadlines:

Until March 19 : join the community and make at least 1 contribution

March 19 : application deadline at 1900 UTC

April 21 : accepted participants announced at 1900 UTC

May 19 - August 18: internship period

If you are a student, please note that CPython is also participating in Google Summer of Code. We encourage you to apply to both programs.

How to apply

Join the Python core-mentorship mailing list and introduce yourself: https://mail.python.org/mailman/listinfo/core-mentorship. Read the Python developer guide: http://docs.python.org/devguide/ Create an account on the Python bug tracker: http://bugs.python.org/ Submit a patch for a Python bug (see the next section for help getting started) 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!

Submitting a patch for a Python bug

Before you can apply for an internship, you'll need to submit at least 1 patch to Python. The Python developer guide describes how to do this in detail, but here are the main steps:

Get the Python source code Run the Python tests Pick a bug from http://bugs.python.org/ to work on. If you'd like suggestions, ask on the Core mentorship mailing list Create a patch addressing the bug Run the Python tests with your patch applied to make sure they all still pass Attach your patch to the bug description in the bug tracker Tell the Core mentorship list that you've submitted your patch, so we can ensure that it gets reviewed and can start working on your application

Before you submit a patch, here are some of the tools we use that you may want to review or practice:

IRC

bug trackers

the mercurial (hg) revision control system

the diff and patch utilities

IRC

IRC is a real-time group chat system popular with many open source projects. Developers ask questions and discuss patches on IRC, and users also ask questions on IRC.

Learn more about how Python uses IRC here: http://www.python.org/community/irc/.

There are 3 main Python IRC channels, all on the Freenode IRC network, that you may be interested in:

#python-dev : for discussing the development of Python itself #python : for asking and answering general Python questions #pyladies : the main PyLadies IRC channel

Bug trackers

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

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

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

Mercurial

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/

diff and patch

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

http://openhatch.org/missions/diffpatch

Potential internship projects

Below is a list of potential internship projects. If you have a strong interest in another project, please let us know and we'll work with you to craft an application.

Email protocols

For this internship, you'll have an opportunity to become an expert in the email protocols we use every day by working on everything from documentation and test coverage to ticket triage, bug fixes, and new features in the imaplib , poplib , and smtplib standard library modules.

Goal #1: Documentation

Goal #2: Test coverage

Everything that gets us to closer to 100% API documentation and test coverage is making Python more accessible and regression-proof.

Goal #3: Make progress on stalled tickets

We have a lot of tickets that just need tests, documentation, or one more round of work based on review feedback to land. Help bring some of these tickets across the finish line!

Goal #4: New email features

There are some great open feature tickets looking for a champion. With your experience in Goals 1-4, you are an expert on this topic and well-equipped to work on them.

Project mentors

Python on Windows

For this internship, you'll have an opportunity to improve the Python experience on Windows for hundreds of thousands of Python users and developers by working on everything from documentation and test coverage to ticket triage, bug fixes, and new features in the standard library modules.

Goal #1: User documentation

Installing Python and setting up your development environment on Windows is harder than it should be. Help us make this process easy and intuitive for new users, and up to date for recent Windows releases.

Goal #2: Test coverage

There is a lot of Windows-specific code in Python that is untested. Everything that gets us to closer to 100% API documentation and test coverage is making Python more accessible and regression-proof.

Goal #3: Make progress on stalled tickets

We have a lot of Windows tickets that just need tests, documentation, or one more round of work based on review feedback to land. Help bring some of these tickets across the finish line!

Goal #4: New Windows features

There are some great open feature tickets looking for a champion. With your experience in Goals 1-4, you are an expert on this topic and well-equipped to work on them.

Project mentors

Graphical Python

For this internship, you'll have an opportunity to become an expert in graphical aspects of the Python standard library. You'll be working on everything from documentation and test coverage to ticket triage, bug fixes, and new features in Tkinter , IDLE , turtle , and other graphics-focused modules in the standard library.

Goal #1: Documentation

Goal #2: Test coverage

Everything that gets us to closer to 100% API documentation and test coverage is making Python more accessible and regression-proof.

Goal #3: Make progress on stalled tickets

We have a lot of tickets that just need tests, documentation, or one more round of work based on review feedback to land. Help bring some of these tickets across the finish line!

Goal #5: New features

There are some great open feature tickets looking for a champion. With your experience in Goals 1-4, you are an expert on this topic and well-equipped to work on them.

Project mentors