This is a set of guidelines for contributing to MetaBrainz projects. These include general tips on how to use Git/GitHub and more specific advice on how to write code using the different programming languages or frameworks that we use.
Everyone is welcome to contribute to any of the MetaBrainz projects. Implementing new features, fixing known issues or reporting new ones, improving documentation, etc. There are plenty of ways to get involved in the development process.
The source code for most MetaBrainz projects is hosted under the MetaBrainz organization on GitHub. There are some exceptions like the AcousticBrainz GUI.
Our bug tracker is located at https://tickets.metabrainz.org/. All issues should be reported there, under a specific project. Project list is located at https://tickets.metabrainz.org/secure/BrowseProjects.jspa. You will need to create a separate account to create new issues and interact with existing ones.
Any problems or comments on these guidelines can also be reported using our bug tracker. File them under the 'Guidelines' component of the OTHER project: https://tickets.metabrainz.org/projects/OTHER
Our developers use IRC for communication. You can join us in the #metabrainz channel on the Libera.Chat network. Feel free to come and say "Hi!" if you want to know more about the development process. More info about interesting ways we communicate with each other is available at https://wiki.musicbrainz.org/Communication.
We don't allow blindly using AI tools in code contributions or communications, and discourage it in most cases.
If you do use LLMs as part of your workflow, you must explicitly disclose it.
Do not submit a PR you haven't personally tested; inability to explain your code is grounds for immediate rejection of the PR.
We want to see you (not an LLM) show understanding of the issue and do all the problem solving.
This is the core of our work as developers. Open-source prioritizes community, critical thinking and robust and long-lasting code over productivity and speed.