User:Alastairp/SOC Getting started
So you're looking to apply for Google Summer of Code, GSoC, and you find the idea of MusicBrainz or some other project under the MetaBrainz umbrella intriguing. But where do you go now? How do you get started? This document intends to guide you along that path.
So how do I get involved with the project?
Most of the MusicBrainz development community are people who were first contributors to the MusicBrainz database. We tend to choose students for SoC who have an established history of editing on MusicBrainz.
Are you not a current MusicBrainz contributor? Don't worry! You can start now. There is an introductory document at How to Contribute. You should check if your favourite band has an entry in MusicBrainz (again, we tend to gather developers who are passionate about music and metadata). If not, add them! If they exist, make sure all their albums are added or help with some cleanup. There is a great community available to help you make edits to the MusicBrainz database. Check out the forums or the IRC channel if you have any questions.
Contributing to development
The MusicBrainz server is a large application, mostly written in Perl. If you want to help work on it, you should at least try and install it yourself first. This can be difficult if you've not worked on a large project before, but our INSTALL document is quite complete. If you have any problems during the installation that you manage to fix yourself, maybe your first contribution to MusicBrainz could be an update to the INSTALL document!
As the main MusicBrainz server is written in Perl, many of our proposed projects require at least some Perl knowledge, or a willingness to learn. Many other parts of MusicBrainz are written in other languages, including Python, and Java. Some projects may require new components to be written. The choice of language here is open for discussion, but bear in mind that it should be maintainable in the future, and therefore would likely be one of the existing languages in the MusicBrainz ecosystem.
If you are interested in working on a proposed project that isn't part of the main MusicBrainz server you should install that instead.
Our development process, including tools, source control usage, and code-review is described in more detail at Development#MusicBrainz_server.
Our developers all use IRC, and are in the #musicbrainz-devel IRC channel. Come and say hi if you want to know more about the development process.
Our ticket system is at http://tickets.musicbrainz.org. Many of these tickets require additional knowledge to get started that may not be present in the ticket. Join the IRC channel if you have any questions and we'll try to help.
Information from previous years and a link to the page with ideas for the current year can be found at Development/Summer of Code.
The application process
Don't apply to become a student without talking to us first! We like to know who you are. Some ways you could do this include:
- Coming into #musicbrainz-devel and saying hi
- Writing an email to the mb-devel mailing list introducing yourself
If you're interested in working on a project you should seek out a mentor on IRC or the mailing list to discuss the project and discover more about what it entails. We encourage potential students to send drafts of their proposal to the mailing list before they apply on the SoC website.
I have more questions…
Great! The Communication page describes how to reach other MusicBrainz contributors via mailing lists or IRC (musicbrainz-devel@/#musicbrainz-devel respectively for most GSoC related topics).