Getting started with MuseScore contribution

• May 17, 2024 - 21:04

If I were to get involved in contributing to MuseScore Studio development, I have a few questions.

  1. What software do I need and is it free? Is it an IDE? (I'm on Mac.)
  2. How much command line usage is involved in the contribution process?
  3. How do I browse and test code changes if everything is hosted on Github and not on my computer?

Thanks in advance


Comments

Hi! Yes, all the tools required are free. Although I assume it is compatible with paid tools as well; I’ve just never used any. I prefer using the command line for a lot of things, including Git and GitHub management, but for builds, it’s much easier to use the IDE, and I assume most also provide GUI support for Git although I’ve never messed with that. I have only used QtCreator which is normally the natural choice for any Qt-based app, but as far I know the process works well with other popular tools.

The main source lives on GitHub, but the way Git works, the source is cloned to your computer where you do your building and testing, and then it is synchronized through its various commands. For the full scoop on all the processes, see the Contribute / Development menu on this site, paying particular attention to the developer handbook, the git workflow, and the build instructions. I believe you are already familiar with the Discord server; the #development channel is good for getting help with build processes etc.

In reply to by Marc Sabatella

Thanks for the reply. I will check out the developer handbook.

But before I do...

  1. So when I clone the source code to my computer, does it update live as other people's changes are merged, or is it just a snapshot of the code at the time that I cloned it?
  2. Is QtCreator the IDE? If so, is it user-friendly?

In reply to by Riley Sullivan

Yes, Qt Creator is the IDE. It is visually a little bit ugly, but when you ignore that, it's absolutely not bad. Especially if you understand a bit how CMake works in its purest form, it's easy to use it via Qt Creator.

We have an extensive tutorial on how to set up Qt Creator here: https://github.com/musescore/MuseScore/wiki/Compile-in-Qt-Creator

Also make sure to check out the other Wiki pages about compilation, starting at https://github.com/musescore/MuseScore/wiki/Set-up-developer-environment.

There are also some instructions on MuseScore.org, but those are outdated at some points. The Wiki on GitHub is the most official place currently.

In reply to by Riley Sullivan

You are in control of when the most recent changes get pulled into your environment and into which branches. Normally you’d make sure your master is current before creating a branch for a potential PR, but then while you are actively working that branch, you wouldn’t want to constantly have it change out from under you.

Typically you don’t have to do anything special when it’s time to make the PR or when it is merged - Git handles the details of incorporating your changes into the current master. But every so often if the master has diverged too significantly from where it was when you created your branch, you might need to “rebase” your branch. Depending on what has changed, that’s either a single command that works automatically, or it identifies for you the places you need to check manually.

In reply to by Riley Sullivan

The MuseScore handbook can still be viewed as a single page and then printed, including using your favorite PDF virtual printer.

The developer handbook is more just a list of links to resource in scattered locations in different sites (including these forums). I don’t see how there would be a meaningful way to collect all of that into a single document.

Do you still have an unanswered question? Please log in first to post your question.