Development/Summer of Code/Getting started

From MusicBrainz Wiki
Jump to navigationJump to search

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?

All MetaBrainz projects are dedicated to collecting and organising information about Music. Therefore an important aspect of contributing to them is being able to add information, as well as developing the software.

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.

If you want to contribute to AcousticBrainz development, you should first try and submit some data to AcousticBrainz. Follow the links from the home page.

If you are interested in ListenBrainz, you could import data from or to your account on ListenBrainz. If you want to contribute to CritiqueBrainz you should first write a review of an album.

If you want to work on BookBrainz, try and add some new books to the database.

Contributing to development

MetaBrainz is the umbrella organisation for a number of websites, which are written in a number of different programming languages. You may want to choose a potential project based on your language preferences.

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.

The development process for MusicBrainz, including tools, source control usage, and code-review is described in more detail at Development#MusicBrainz_server.

AcousticBrainz, ListenBrainz, and CritiqueBrainz are written in Python, using the Flask webserver. They all use Postgresql as a database server, but ListenBrainz also uses Cassandra and Kafka for data storage.

BookBrainz is written in Node.js

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.

Our developers all use IRC, and are in the #metabrainz IRC channel. Come and say hi if you want to know more about the development process.

Our ticket system is at 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:

If you're interested in working on a project you should seek out a mentor on IRC to discuss the project and discover more about what it entails. We strongly recommend potential students to send drafts of their proposal to our forums before they apply on the GSoC website.

We have a Development/Summer_of_Code/Application_Template Application Template which we would like you to use when you write on the forum. If you do not add this information then we may not talk to you until you add it.

I have more questions…

Great! The Communication page describes how to reach other MusicBrainz contributors via IRC (#metabrainz for most GSoC related topics) or other channels.