WHAT IS IT?
PythonPython is a popular high-level programming language. It is a general-purpose language used by scientists, developers, and many others who want to work more quickly and integrate systems more effectively.
Google Summer of CodeGoogle Summer of Code (GSoC) 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.
HOW DO I GET STARTED?
Choose an organization.There's hundreds of thousands of projects that use Python, and you need to narrow down the list before you can get help or do much that's useful. See How do I choose a project or sub-org? for ideas on how to do that.
Any open source experience will help you prepare for GSoC, so don't worry too much about what project you try first and don't be afraid to change your mind! When we know which sub-orgs will be participating, they'll be listed with the project ideas.
Set up your own development environment.Document what you do so you can remember it later, and so you can help others if they get stuck! And if you get stuck, don't be afraid to ask for help.
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.
- Read first to see if your question has already been answered. We get a lot of repeat questions!
- Communicate in public (not in private). Most open source work is done in the open, so demonstrate that you can do that!
Try to fix a bug.Many projects have these tagged as "easy" "bite-size" or "beginner-friendly" -- do a search to see what comes up. Competition for the easiest ones can be fierce, so don't be afraid to try something harder if you think you might know what to do.
Can't find a bug? Other ideas: find typos and fix them. Improve test coverage by writing new tests. Improve documentation. Use a tool like Pylint or Bandit to see if you can find new issues.
Find bugs and report them.Hopefully you won't encounter too many, but it's always a good idea to get familiar with your project's bug reporting process.
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!
Help others.Most projects are looking for not just coders, but good community members who people like to work with. Show your community skills by helping others and make a great impression come selection time!
HOW TO APPLYShort application checklist:
- Read the links and instructions given on this site -- All of it! we've tried to give you all the information you need to be an awesome student applicant.
- Choose a sub-org (check the list here). Applications not associated with a sub-org typically get rejected.
- Talk with 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!
- Prepare a patch for that sub-org. Usually we expect students to fix a bug and have made a pull request (or equivalent). Your code doesn't have to be accepted and merged, but it does have to be visible to the public and it does have to be your own work (mentor help is ok, code you didn't write is not).
- Write your application (with help from your mentors!) The 2019 application template is available here. All applications must go through Google's application system; we can't accept any application unless it is submitted there.
- Use a descriptive title and include your sub-org name in Google's system. Good example: "Mailman: Improve archive search" Bad example: "My gsoc project"
- Make it easy for your mentors to give you feedback. If you're using Google docs, enable comments and submit a "draft" (we can't see the "final" versions until applications close). If you're using a format that doesn't accept comments, make sure your email is on the document and don't forget to check for feedback!
- Submit your application to Google before the deadline. 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.
TipCommunication 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. We reject a lot of students who haven't listened to mentor feedback. If your mentors tell you that a project idea won't work for them, you're probably not going to get accepted unless you change it.
What goes in an application?An ideal application will contain 5 things:
- A descriptive title including the name of the sub-org you want to work with (if this is missing, your application may be rejected!)
- Information about you, including contact information.
- Link to a code contribution you have made to your organization. (Usually this is a link to a pull request.)
- Information about your proposed project. This should be fairly detailed and include a timeline.
- Information about other commitments that might affect your ability to work during the GSoC period. (exams, classes, holidays, other jobs, weddings, etc.) We can work around a lot of things, but it helps to know in advance.
MNE is a free and open source software designed for processing electroencephalography (EEG) and magnetoencephalography (MEG) data. EEG and MEG data analysis requires advanced numerics, signal processing, statistics and dedicated visualization tools. MNE-Python is a pure Python package built on top of numpy, scipy, matplotlib and scikit-learn.
PySAL is a library for quantitative analysis of geographic data built on top of numpy and scipy.sparse.. The package includes methods for exploratory spatial data analysis and cluster detection, regression models with geographical data, space-time models, and visualization.
Python Software Foundation GSoC Team
Under the Python Software Foundation (PSF) the GSoC Team has ran a GSoC umbrella organization for the Python language. This sub-org is being used to sponsor tools for the PSF GSoC team, specifically tools for managing GSoC from diverse sub-orgs for PSF. At this time, Python is NOT sponsoring any projects related to the development of the language -- but we're looking for mentors if you want to run such a project
SciPy is a library that provides fundamental routines for scientific computing: statistics, optimization, integration, linear algebra, Fourier transforms, signal processing, and more.
StarKit is a library to infer stellar parameters from astrophysical observations
Nuitka is a Python compiler written in Python. The mission is make Python a C speed programming language with graceful degradation, i.e. simple Python is very fast, while using all the features is still faster.
This is a chance to join this extra ordinary project and make a difference to the programming world by taking Python where it currently is not.
Nuitka currently does not yet live up to the task, but with your help it will get there sooner and you will have been a part of it.
MSS - Mission Support System
The Mission Support System enables the planning of optimal flight paths by visualising the results of model simulations in combination with the chosen flight path and allowing for a simple iterative and collaborativeimprovement process, enabling the best measurement flights possible.
With your help we can extend this client/server application for other approaches than only atmospheric research flights.
EOS Design System
Design Systems serve as a centralized source of information for UX, UI, and other brand-related guidelines that help not only developers find the UI element or component they need, but also designers to build faster prototypes while streamlining the collaboration between the two.
Using Scrapy, you can travel through sites at remarkable speed, and using only a few lines of readable code, extract high-quality data for use in research, for enterprise, for archival, and more.
Scrapinghub, as lead maintainers of Scrapy and its constellation of supporting libraries, is open to mentoring motivated students who would like to work on Scrapy, or on a new Open Source library for quality-assurance in Scrapy spiders, Spidermon.
Statsmodels provides a large range of statistical methods, estimation and prediction models and hypothesis tests, among them linear, generalized linear and robust linear regression models, models for discrete data, and a large group of forecasting models in time series analysis.
Statsmodels has participated for many years in GSOC. This provided a large contribution to improving the coverage of both basic and advanced methods in statistics and econometrics.
Buildbot can automate all aspects of the software development cycle: Continuous Integration, Continuous Deployment, Release Management
Buildbot is a framework in which you implement a system that matches your workflow and grows with your organization.
Buildbot has participated for many years in GSoC, and some of its core features were developed during GSoC.
CVE Binary Tool
Mercurial is a free, distributed source control management tool. It efficiently handles projects of any size and offers an easy and intuitive interface.
TARDIS is an open-source code to explore observations of supernovae (exploding stars). It has a fun and active community that consists of Astrophysicists, Computer Scientists and Statisticians
Python Argentina Civil Association (A.C.PyAr) is a formal non-profit organization of programmers with focus on community projects, mainly oriented to Spanish-speakers & Latin Americans:
- Educational initiatives (CDPedia: Spanish offline wikipedia, PyZombis: Spanish MOOC, Python Tutorials)
- Community management tools (PyArWeb: local website in Spanish, asoc_members: NGO membership)
- Libraries and applications for accountants & lawyers (legal case web app, electronic invoice libs & tools)
- Developers tools (fades: easy virtualenv wrapper)
LiberTEM is a Python-based open source platform for high-throughput distributed processing of pixelated scanning transmission electron microscopy (STEM) data and other large-scale binary data sets. A responsive web application based on React and Redux provides a GUI, it can be used in Python scripts and Jupyter notebooks through its API, it uses dask.distributed as its default processing back-end, and it relies heavily on numpy for processing and data handling.
Panda3D is an open source framework for 3D rendering and games. It combines the speed of C++ with the ease of use of Python to give you a fast rate of development without sacrificing on performance.
Plone is a Python-based CMS built with workflow and security at the forefront. It is developed by a world-wide community. In the 18 years since its first release, Plone has evolved into a mature solution, with an emphasis on code quality and testing. But Plone is also forward-looking. In the past few years development has focused on headless technologies and cutting-edge front-end implementations.