Python Powered Logo

Google Summer of Code 2016 @ the Python Software Foundation

Python is a popular high-level programming language. It is a general-purpose language used by scientists, developers, and many others who want to get things done quickly and effectively.

Google Summer of Code is a global program that offers post-secondary students an opportunity to be paid for contributing to an open source project over a three month period. Since 2005, the Python Software Foundation has served as an "umbrella organization" to a variety of Python-related projects, as well as sponsoring projects related to the development of the Python language. Google has generously accepted us as a mentoring organization for the 2016 GSoC season!

The 2015 PSF GSoC coordinator is TerriOda. (terri on Freenode IRC, terrioda at gmail.com, but please email gsoc-admins(at)python(dot)org if you wish to contact an admin. Students should almost always email gsoc-general(at)python(dot)org.)

The other org admins include James Lopeman (meflin on IRC), Florian Fuchs (florianf on IRC), Kushal Das (kushal on IRC) and Stephen Turnbull (yaseppochi on IRC)

Students are now writing code!

You can read their blog posts on the Python GSoC blog aggregator

Posts are due on the following days:

  • May 22
  • June 10
  • June 24 (midterm)
  • July 8
  • July 22
  • Aug 5
  • Aug 19 (final)

Dates and deadlines

Please note the GSoC dates and deadlines.

A few dates of note:

Students

GSoC is basically an open source apprenticeship: students will be paid by Google to work under the guidance of mentors from an open source community. It's a really great opportunity to build new skills, make connections in your community, get experience working with a larger and often distributed team, learn, and, of course, get paid.

To apply, you need to take a look at the mentoring organizations and the ideas that they are willing to sponsor. Typically, you'll choose one of their ideas and work with a mentor to create a project proposal that's good for both you and your chosen open source community. Sometimes, projects are open to new ideas from students, but if you propose something new make especially sure that you work with a mentor to make sure it's a good fit for your community. Unsolicited, undiscussed ideas are less likely to get accepted.

Note that Python is an "umbrella organization" which means that our team is actually a group of python projects that work together to do Google Summer of Code. If you're going to apply with us, you'll need to choose from one of those teams, because that defines which mentors will be helping you with your applications. You can work with more than one sub-org while you're figuring out what you want to do, but you can only accept one job offer.

Students are expected to work at least 40 hours a week on their GSoC project. This is essentially a full-time job. Ideally, you should not attempt to do another internship, job, or full-time schooling while you're doing GSoC.

Here's some resources so you can read up more on how to be an awesome student:

Getting Started

Here's 7 things you can do to get started in free and open source software:

  1. Choose an organization to work with. See "How do I choose a project or a sub-org?" if you need help choosing. And don't forget, you can try working with more than one organization!

    • Experience with *any* open source group will help you prepare for GSoC.
    • Asking mentors to choose your project for you typically leaves a bad first impression. At least try to narrow down your choices a bit on your own!
    • Look through our list of GSoC 2016 sub-orgs. These are currently all the confirmed sub-orgs, although we expect to have more joining us through March 7th. (Last year's is here SummerOfCode/2015)

  2. Start communicating with the developers. Join the mailing list, IRC channel, or any other communication channels the developers use. Listen, get to know the people involved, and ask questions.

    • If you want to make the best first impression, DO NOT start emails with "Dear Sir." Python has many mentors who are female and/or prefer other forms of address. Try "Dear developers" if you're sending a general email, or use whatever name they use on their email if you're addressing a specific person. Culturally speaking, first names or chosen nicknames are fine for most open source projects.
    • DO ask your question in public. Being able to participate in the open is a signal to developers that you're ready to participate in open source/free software, so it can improve your chances of being accepted to GSoC. It also means others can benefit from seeing your questions and the answers you get.

    • DON'T Ask to ask. Just get right to the point and ask your question without asking if you're allowed to ask a question first. See What does "don't ask to ask?" mean? for more explanation.

  3. Set up your own development environment. This can be a lot of work the first time, so budget time for it, and don't forget that you're going to want to run the code you've written, so you'll need some sort of test environment. This is a good time to practice asking good questions and helping improve setup instructions!

  4. Find some bugs and try to fix them. Many projects have bugs tagged as "easy", "bite-size", or "beginner-friendly" that will be easier for new contributors.

    • Note that if you apply as a student with the PSF you will be asked to submit a code sample, generally code related to your project. A few fixed bugs with code accepted upstream will make your application look great!
    • Some projects have beginner-friendly "bite-sized" bugs listed in the OpenHatch search engine, found here: http://openhatch.org/search/ And the OpenHatch team is full of friendly helpful people who don't mind answering questions!

    • Having trouble figuring out which bugs are beginner-friendly? Try searching for terms like "easy" in the bug tracker. Or just choose a bug that sounds easy to you and try to get started on it! What's easy for you may not be easy for others, so take advantage of your own skills and experience where you can. Remember to ask for help if you get stuck for too long, "I'm a new contributor and was trying to work on bug#123456. I have a question about how to..." -- if people can't help, sometimes they will be able to suggest another bug which would be more beginner-suitable.
    • Other "easy" bug ideas: look for typos and fix them. Set up new tests -- even if your project decides they don't need the first one you write, the practice of writing test cases will be useful for other development (e.g. when you want to add a new feature and need to include tests for it). Try using a tool like pylint to find style issues and correct those. (But pay attention to your project's style guide! Not everyone cares about the same things.)
  5. Find bugs and report them. It's always a good idea to get familiar with your project's bug reporting process. Writing excellent bug reports is a really useful skill, so try googling "writing good bug reports" and learn to write really great ones. You might even be able to help improve other people's bug reports by duplicating their results and asking questions to fill in information they didn't provide.

  6. Help with documentation. As a beginner in your project, you're going to see things that are confusing that more experienced developers may not notice. Take advantage of your beginner mindset and make sure to document anything you think is missing!

  7. Help others. This is a great idea for many reasons: explaining things can help you learn them better, demonstrating your skills as a good community member can make you more memorable when your mentors have to choose candidates, and being helpful makes your community a better place!

How do I Apply?

Applications are open March 14-25, 2016

Short application checklist:

  1. Read this this wiki page -- All of it! we've tried to give you all the information you need to be an awesome student applicant.

  2. Choose a sub-org (there's a list below)

  3. Talk to your prospective mentors about what they expect of student applicants and get help from them to refine your project ideas. Listening to your mentors' recommendations is very important at this stage!

  4. Prepare a patch for that sub-org

  5. Set up a blog where you will keep track of your GSoC progress

  6. Write your application (with help from your mentors!) Template here: SummerOfCode/ApplicationTemplate2016

  7. Submit your application to Google before the deadline That's March 25th at 1900UTC in 2016! We actually recommend you submit a few days early in case you have internet problems or the system is down. Google does not extend this deadline, so it's best to be prepared early! You can edit your application up until the system closes.

Communication is probably the most important part of the application process. Talk to the mentors and other developers, listen when they give you advice, and demonstrate that you've understood by incorporating their feedback into what you're proposing.

Mentors

Interested in volunteering with the Python Software Foundation? We've got roles to suit all sorts of people!

The biggest job is mentoring students: Mentoring a student as a primary mentor can be a pretty big time commitment (we recommend around 0-10 hours a week for the 3 months of the program) but it's a very rewarding chance to basically give a student an open source apprenticeship. We mentor in teams, so if all you can handle is a few code reviews or taking over for a week while someone's on vacation, we'd still love your help.

If you're not already part of an open source project, we can match you with one that's looking for more help so they can get your ramped up. Often students need someone who will help keep them on track, meet with them regularly, and answer more general questions about the tech industry and open source. So even if you're not a core contributor to a project, you can still be a really valuable volunteer.

See also: "What does it take to be a mentor?"

Here's some resources to help you figure out how to be awesome and what to expect:

Want to help but not sure you can handle mentoring? We're also looking for friendly community members to help with other tasks! We'd love to have more people available on IRC/Mailing lists/Google+ to answer student and mentor questions in various time zones. TerriOda is also particularly looking for volunteers who can read and comment on student blogs, remind students if they haven't posted, and promote the work our students do to the larger Python community. Or maybe you have another skillset you'd like to contribute? If you want to help, we'd be happy to find a way to make that happen!

If you'd like to volunteer, get in touch with a sub-org admin or email the Python org admins at gsoc-admins(at)python(dot)org

PS - For experienced mentors, we have a Python GSoC list of ideas and we'd love both suggestions and help: https://github.com/terriko/gsoc/issues

Sub-orgs

To participate under the Python umbrella, a sub-org must do the following:

  1. Be a Python-based open source project that meets Google's requirements for GSoC.

  2. Have one sub-org admin and at least two mentors who are willing to commit to the full GSoC period. (More is awesome, though!)
  3. Accept the Python Community Code of Conduct for the duration of the program.

  4. Send an email indicating interest to gsoc-admins(at)python(dot)org before the Python deadline (March 7th, exceptions can be made if you get an amazing student applicant later and want to sign up just for them)
  5. Have a good ideas page. Here's a template. Getting a really great page sometimes takes a few rounds of revisions; Meflin will work with you to make sure your page is ready!

We can't promise to take everyone who meets those criteria, but we do try to take any group that we feel will give the students a great experience. TerriOda has final say in which projects participate under the Python umbrella, but please send any queries to all the admins at gsoc-admins(at)python(dot)org to make sure we're all on the same page.

Python projects are welcome and encouraged to apply as separate mentoring organizations directly with Google. We're happy to help you in any way we can and we don't mind being your backup plan. We're also happy to help advertise python based organizations not under our umbrella: we want students to find projects that best suit them!

Getting in Touch

Sign up to the gsoc-general(at)python.org mailing list to get updates, reminders, and to discuss questions.

We're also trying out a Python Google Summer of Code community on Google+ this year, if you want to use a social media platform.

Stop by #python-gsoc on irc.freenode.net to chat and ask questions.

Please note that Python has a Community Code of Conduct and mentors and students working with the PSF are asked to abide by it as members of the Python community.

Do plan to stay for a while if you want answers on IRC: Our mentors generally have day-jobs and are not always paying attention to IRC (especially during GSoC off-season: expect more active mentors after Feb 29th). Please ask questions directly on channel (you don't need to introduce yourself or say hi first) and please be patient while waiting for an answer. You could wind up waiting an hour or much longer for answers if all the mentors are in meetings at work or otherwise occupied. If you can't stay that long, stay as long as you can and then send email to the mailing list instead so mentors have some way to reach you.

There are some great resources at http://irchelp.org/ if you need help finding a client or learning how to use IRC.

For mentors: All the gsoc admins can be reached at gsoc-admins(at)python(dot)org if you have questions about participating. (Students should email gsoc-general(at)python.org with all of their questions, unless they are of a sensitive personal nature.)

Python Sub-orgs and Project Ideas

Ideas for projects and links to Python-related teams' idea pages will appear here once mentors have gotten in touch the PSF org admins.If you are unsure if your favourite Python project will be participating, ask them and encourage them to sign up! (You can also check last year's page to find projects that might participate again.)

Note that some of these groups may have applied as separate mentoring organizations. We're listing everyone who wants to be listed here to help students find great python projects, and we'll separate out the listing to make it clear which ones are under our umbrella and which are participating on their own after Google makes their selections.

Sub-org applications are now closed, but there's a few sub-orgs in progress as noted below this list.

http://i.imgur.com/bVRBzwl.png

coala

coala is a language independent analysis toolkit. It empowers developers to create rules which a project's code should conform to. coala takes care of showing these issues to users in a friendly manner, is versatile and can be used in any environment. Patches to automatically fix code will be managed too. coala has a set of official bears (plugins) to provide an out-of-the-box analysis functionality for many popular languages in addition to some generically applicable algorithms.

Website |coala-devel@googlegroups.com | Gitter chat | Ideas Page | Newcomer Hook

http://python.org/images/python-logo.gif

Core Python

CPython, its standard library, and its infrastructure.

Website | core-mentorship@python.org | #python-dev on Freenode | Ideas Page

https://farm8.staticflickr.com/7587/17066220246_e184b0fa0b_m.jpg

Dipy

Dipy is a free and open source software project focusing mainly on diffusion magnetic resonance imaging (dMRI) analysis.

Website | Mailing list |Ideas Page

ERAS Logo

Italian Mars Society

The European MaRs Analogue Station for Advanced Technologies Integration (ERAS) is a program spearheaded by the Italian Mars Society (IMS) which main goal is to provide an effective test bed for field operation studies in preparation for manned missions to Mars. ERAS projects, focusing on Virtual Reality (VR) simulations and Advanced Robotics, are all fully python-based.

Website | Mailing List | GSOC Ideas Page

Kivy Logo

Kivy Organization

Kivy is a cross-platform Python toolkit for the rapid development of applications that make use of innovative user interfaces, such as multi-touch apps.

Website | #kivy on Freenode |kivy-users Google Group | GSOC Ideas Page

http://www.mdanalysis.org/public/mdanalysis-logo_square.png

MDAnalysis

MDAnalysis is an object-oriented Python library to analyze trajectories from molecular dynamics (MD) simulations in many popular formats. It can write most of these formats, too, together with atom selections suitable for visualization or native analysis tools.

Website | GSoC information page | GSOC Ideas Page

http://mercurial.selenic.com/images/mercurial-logo.png

Mercurial

Mercurial is a free, distributed source control management tool. It efficiently handles projects of any size and offers an easy and intuitive interface.

Overview | Mailing List | #mercurial on Freenode, see our IRC page | Ideas Page

http://martinos.org/mne/dev/_static/mne_logo.png

MNE-Python

MNE is a free and open source software designed for processing electroencephalography (EEG) and magnetoencephalography (MEG) data

Website | Mail List | Ideas Page

http://old.myhdl.org/lib/exe/fetch.php/myhdl_logo_128.png?cache=&w=128&h=91

MyHDL

hardware description with Python

Website | Mail List | #myhdl on Freenode | Ideas Page

http://pgmpy.org/_images/logo.png

pgmpy

Python library for Probabilistic Graphical Models

Website | Mailing List | #pgmpy on Freenode | Ideas Page

http://www.pydy.org/_static/logo.svg

PyDy

Multibody Dynamics with Python

Website | pydy@googlegroups.com | GSoC Intro Page | Ideas page | Chat (Gitter)

http://pypy.org/image/pypy-logo.png

PyPy

PyPy is a fast, compliant alternative implementation of the Python language (2.7.3).

Website | #pypy on IRC | Mail List | Ideas Page

https://avatars0.githubusercontent.com/u/3769919?v=3&s=200

PySAL

PySAL is an open source library of spatial analysis functions written in Python intended to support the development of high level applications.

Website | Mailing List | Gitter room | Ideas Page

Logo

scikit-learn

Scikit-learn is a machine learning library in python. It makes machine learning algorithms accessible to non-experts, as a part of the scipy ecosystem.

Website | #scikit-learn on Freenode |Mailing List | GSOC Ideas Page

http://scrapinghub.com/images/shub-standard-logo.png

Scrapinghub

Scrapinghub is a company focused on information retrieval and its later manipulation, deeply involved on developing and contributing in Open Source projects regarding web crawling and data processing technologies. This year we are applying with four of our most renowned projects, Scrapy, Portia, Splash and Frontera.

Website | Mailing Lists | Ideas Page | Guidelines

http://statsmodels.sourceforge.net/devel/_static/statsmodels_hybi_banner.png

statsmodels

Python module for data analysis with statistical and econometric models

Website | mail list | Ideas Page

http://deeplearning.net/software/theano/_static/theano_logo_allblue_200x46.png

Theano

Theano is an optimizing compiler for numpy.ndarray and scipy.sparse matrix that generate GPU code and do symbolic differentiation

Website | theano-dev@googlegroups.com |Ideas Page

http://downloads.tryton.org/images/banner300x100.png

Tryton

Tryton is a business application platform mainly written in Python.

Website |Ideas Page

We still have a couple of sub-orgs getting their materials together, so there may be a late entrant or two here!

Friends of the PSF

These organizations applied and got in to Google Summer of Code separately, but we've worked with them in the past and they're awesome! If you wish to work with one of these groups, you should apply to them directly.

http://farm8.staticflickr.com/7432/12526610733_5a83e0b5f7_o.png

GNU Mailman

Mailing list package written in Python

Website | mailman-developers@python.org | [http://webchat.freenode.net/?channels=mailman|#mailman]] on Freenode | Ideas Page

http://www.astro.utoronto.ca/~kerzendorf/files/larger_logo_smaller.png

TARDIS-SN

Supernova radiative transfer in Python

tardis-gsoc-2016@googlegroups.com | Ideas Page

http://openastronomy.org/img/logo/logoOA_svg.png

OpenAstronomy

OpenAstronomy is a collaboration between open source astronomy and astrophysics projects to share resources, ideas, and to improve code.

Website | GSoC Page

SummerOfCode/2016 (last edited 2016-10-01 00:05:22 by TerriOda)