Last updated 24 March 2017.
Important links for GSoC 2017
- Ideas page: https://groups.drupal.org/node/515848 . Choose which idea interests you most, fill in your info under 'Interested Students' section. If you want to propose an idea, discuss it with admins first.
- GSoC 2017 timeline: https://summerofcode.withgoogle.com/how-it-works/#timeline
- Drupal Planet: http://drupal.org/planet - all GSoC students are required to write a weekly blog about progress update which ends up on Drupal Planet. Starting reading Drupal Planet daily for updates from the community and prepare your own personal website built in Drupal.
- Drupal's GSoC group: https://groups.drupal.org/google-summer-code. All prospective students/mentors must join this group.
Getting involved early
Although one of the most important parts of getting accepted in GSoC is writing a good proposal, previous contributions to Drupal always helps. Links to the issue you've worked upon look good on any proposal and also help us to decide which students are actively involved with the community. If you want to standout from all other students and take on the extra credit of becoming a core contributor during GSoC application phase, you need to start early.
If you're planning to apply for GSoC this year, it's a nice idea to get involved early. The first thing to do is to get acquainted with Git, IRC, Issue queue and some other contributor tools, details on these follow. You can get involved as early as possible, even before the ideas list is out. So if you want to get involved early, you can get involved with Core issue queue. You can start either by solving Core Novice issues or by taking part in Core Mentoring. If you want to read more. you can go through the complete Getting Involved Guide and read the relevant sections which interest you.
Contacting your friendly mentors
We're here to help you! You can find your mentor on the issue queue, on IRC, and/or by using their drupal.org contact form. You can also ask questions on IRC or the issue queue that aren't directed at your specific mentor - other people are eager to help you as well. The most relevant IRC channels are #drupal-google (the main GSoC channel for Drupal), #drupal-contribute and #drupal. For more information about IRC, please see the "Using IRC" section below.
Using the issue queue
The issue queue is central to the work process on drupal.org. Every bug, task, feature, or patch has its own unique issue. That issue is dedicated to the completion of that task, and you can post any thoughts or work there for feedback or review. Please see http://drupal.org/node/317 for full documentation on how to use the issue queue.
IRC is an online chat protocol that we use to communicate with each other. You can either install an IRC client, or you can access IRC from the web at http://webchat.freenode.net/. We will be using the #drupal-google channel for GSoC related discussions, and mentors will be around in that channel to answer any questions you may have. Our other main channels are #drupal and #drupal-contribute, which you can also try if no one is answering in #drupal-google. For full information about IRC, please see http://drupal.org/irc.
Adding Google Summer of Code as your organization
Once you created your Drupal account, go to Edit --> Work and add "Google Summer of Code" as your Organization and "Student" as your Job Title. This will allow you to attribute your contributions to Google Summer of Code. To do so, you will need to add Google Summer of Code as your organization in your comments on drupal.org. Remember that you must do this anytime you contribute to the community as part of GCI program.
- Drupal coding standards - all tasks that involve writing code should comply with these standards.
- Drupal UI standards - all tasks related to the user interface should keep these standards in mind.
- How to apply patches - useful if you need to apply a patch.
- How to create patches - useful if you need to create a patch.
- Drupal online documentation - people have spent a great deal of effort creating and polishing a comprehensive online handbook - chances are, if you're stuck you can find something in here to help you!
Getting Started Guide
Before you start contributing to Drupal, it’ll be helpful to know certain guidelines.
- If you want to start contributing code, here are few things you must know: Community Development Guide
- Did you knew that you can contribute to Drupal even without having to write a single line of code. Follow this link to get started: Community Documentation Guide.
- Use Community Theming Guide to understand how to modify the look and feel of Drupal.
- When you start contributing code, your patches must adhere to the Coding Standards. If you follow these standards in your code, it’ll save a lot of time for you as well as the mentors. Also, keep in mind to follow the Best Coding Practices.
- Writing secure code is one of the major concerns when contributing to a project like Drupal. Following are some resources to help you write secure code:
- If you want to dive into the Drupal APIs, you can check out API Reference.
The first thing that probably you’ll want to do in order to start contributing to Drupal is to setup a development environment. There are lots of guide available on the internet on how to setup a development environment but for all tasks related to GSoC, Installing Drupal yourself is the best option. In order to do that, download Drupal, put it in your server directory, open the Drupal directory in browser and follow the instructions to install the site.
The first step in getting involved is to register on Drupal.org. After you registered, you may want to become a 'confirmed' user to get rid of some limitations. You can also join relevant Drupal groups, for example join Google Summer of Code for updates regarding this program. Also check out the ways you can help.
To get started, you are encouraged to go through the Getting Involved Guide. Most easy way to get help is to join an IRC channel. You can join `#drupal-google` channel which our dedicated channel for GSoC. You can also ask your queries `#drupal` or `#drupal-contribute` channel where more people can answer those. For further instructions and details about all the channels, you can refer to the IRC handbook.
New Contributor Tasks
Before you start diving into the issue queue to solve complex problems, its a good idea to complete New Contributor Tasks. These tasks are designed in a way that they are interesting and take very less time to complete.
- New contributor tasks: Anyone
- New contributor tasks: Non-English language speakers
- New contributor tasks: Programmers
- New contributor tasks: Writers
- Reference information for New contributor tasks
If you want a mentor (not necessarily GSoC mentors) to help you solve an issue, join Core contribution mentoring (core office hours).
Once you’ve completed the new contributor tasks and/or attended core mentoring sessions, and feel that you are comfortable with basic Drupal development, its time to solve some real issues. Read Novice contribution guide to get started or select an issue from the list of Novice issues.
If you’re facing some issues with git and/or patches, following links might help you:
- IRC to communicate with the community.
- Drupal uses Git for version control. Refer to Git documentation to know how to download, install, and configure Git, and how to contribute your own code to Drupal.
- Text editors and IDEs:
- Drush is a command line shell and Unix scripting interface for Drupal. It provides lots of useful commands for interacting with code like modules/themes/profiles, updating database, clearing cache, running cron etc.
- Dreditor is browser script that provides multiple applications/helpers for Drupal.org. The script makes reviewing patches very easy and intuitive, among other things. Its available for Google Chrome, Firefox and Safari.
- Coder is a fantastic tool that checks your Drupal code against coding standards and other best practices.