GSoC with MuseScore - musescore/MuseScore GitHub Wiki

About Google Summer of Code

Google Summer of Code (GSoC) is an annual initiative to encourage contribution to open source software development. Every year, thousands of contributors are paid stipends by Google to complete coding projects with roughly 200 open source organizations like MuseScore.

If you're a student, or if you're new to open source software development, this is your chance to gain real-world coding experience under the guidance of an experienced mentor. You get to contribute to a project you love and earn a stipend for the privilege!

What's involved

First, there's an application process to decide which organizations, mentors, and contributors will participate, and what the projects will be.

Projects range in size from:

  • Small (~90 hours)
  • Medium (~175 hours)
  • Large (~350 hours)

If your application is successful, you'll have a 12 week coding period between May and September in which to complete your project. This deadline can optionally be extended into November if you and your mentor agree. (See the GSoC Timeline for exact dates.)

GSoC is a learning experience. Not all projects are completed successfully, but that's OK! You'll still get the stipend as long as your mentor judges you to have performed adequately during the coding period. The amount paid depends on where you live and the size of the project.

Contributing outside GSoC

If you're not eligible for GSoC, or if you don't get selected to participate, all is not lost!

Everyone is welcome to contribute to MuseScore's open source development. Contributing is fun, and you get to interact with our team and community, making changes that benefit millions of people around the world.

While you won't receive a stipend for contributing outside GSoC, we've been known to hire community members in the past, so who knows where your efforts might lead! Even if you don't get a job with us, you'll still be able to write about it on your CV/résumé, and link to your pull requests as proof of what you have achieved.

Contributing also improves your chances of getting selected for GSoC in a future year, assuming you are eligible then. (Note that if you contribute too much then you would no longer qualify as a beginner.)

Our team engages with open source developers by providing design and testing support for community projects, as well as feedback in pull requests. Occasionally our designers will jump on video calls with community developers to explain details of a specification. And you can ask in the Discord server if you have any questions about development.

Applying for GSoC with MuseScore

If you'd like to participate in GSoC as a contributor for MuseScore:

  1. Check you are eligible
  2. Join MuseScore's Discord server
    • Introduce yourself in the #gsoc channel ASAP!
  3. Compile MuseScore
    • Follow the compilation steps in this wiki.
    • If you get stuck, ask for help in the Discord server's #development channel.
  4. Submit a pull request
    • Fix an issue and send us your code. We don't expect massive changes, but we want to see interesting code samples that demonstrate you know what you're doing. This might be a neat algorithm in 10 lines of code, or a single line in an obscure part of the program. Trivial fixes don't count.
    • It doesn't matter what the PR does, or whether it ultimately gets merged or rejected, as long as it demonstrates a good understanding.
    • Your first PR must be submitted before the GSoC application deadline. You may continue to make minor edits to your PR after the deadline (e.g. to implement changes requested by reviewers), and you may continue to submit other PRs before or after the deadline.
  5. Choose a project
    • Remember to discuss new ideas with us before you write a proposal.
  6. Write a draft proposal
    • Write it in Google Docs and share a link with the mentor so they can comment on it and suggest improvements.
  7. Submit your application
    • Applications must be submitted via the GSoC website before the deadline. No exceptions.

Once you've applied, you might want to:

  1. Improve your application
    • You can continue to edit and re-submit your application right up to the deadline.
    • It's best to submit early to avoid last-minute mishaps, then amend it later if you are able.
  2. Write another proposal
    • You can submit up to 3 project proposals (e.g. 2 for MuseScore and 1 for a different organization).
    • It's sensible to have at least one backup proposal in case your first choice isn't selected.
    • You'll never be asked to work on more than one of your proposals, but it could be any of them, so don't propose anything you're not willing to work on.
  3. Submit more pull requests
    • This shows us you're keen and enables you to demonstrate understanding of multiple parts of the codebase.
    • It's the best way to stand out from the crowd.

Resources

If you're interested in becoming a GSoC contributor, you should familiarize yourself with the information on these pages.

MuseScore resources

Project ideas for GSoC Project ideas that have been approved by the internal team
GSoC Proposals Proposal template and tips for writing a proposal

Google resources

GSoC Timeline Deadlines for applications and projects
Contributor Guide How to apply and participate
FAQs Answers to frequently asked questions
Discussion Group Questions and reminders
Open Source Blog News
⚠️ **GitHub.com Fallback** ⚠️