General requirements for all GSoC projects

Last updated on
4 March 2021

For each and every Drupal GSoC project, there are certain requirements that must be met. If you think your project is an exception, speak to your mentor(s) about it—otherwise, assume that everything here applies to you.

Sharing code: Git

Your GSoC code will need to be submitted to a drupal.org project Git repository. This will be used for tracking GSoC activity, so it's imperative that you keep your work up to date. In accordance with Drupal project policies, all work must be licensed as GPL.

See Setting up Git for Drupal and Authenticating with Drupal Git to get yourself set up. Once you have done this, you can go to the Add project page to create your own "sandbox" module, theme, or distribution project to work in.

 

Latest version of Drupal, if possible

We are encouraging applicants to develop their projects against the latest version of Drupal. We understand that this will not be possible for all projects, such as if they depend on other projects that are not yet compatible. However, we always want students to get their start on the latest and greatest.

You may need to update some code to the latest version of Drupal if your project involves integration with existing modules. The Upgrade Rector project is a useful tool if you need to update code to a new version.

Coding standards

When coding for your project, you need to follow the Drupal project's coding standards, which ensure that your code is readable, documented, and follows the same format as other Drupal project code. There are a lot of details; for starters, try to follow the format and standards of existing code. You can also use the Coder module to automatically test your code for coding standards compliance.

Automated tests

Automated testing is an important part of any robust development process.

The goal is to have test coverage for all or most of the components and features and to run the automated tests before any code is changed or added, to make sure it doesn't break any existing functionality (regression testing).

Each GSoC task should include automated tests; it saves everyone a lot of time testing to make sure things work properly and more often than not catches a few bugs in the process.

Help improve this page

Page status: No known problems

You can: