Difference between revisions of "Development/Summer of Code/Getting started"

From MusicBrainz Wiki
m (Get ready: Giving up on my anchor link)
(Get familiar)
(15 intermediate revisions by 3 users not shown)
Line 4: Line 4:
 
'''Do some homework.'''
 
'''Do some homework.'''
 
:Have you read about the [[meb:projects|MeB projects]]? Do you understand what we do and why we're excited to be contributers?
 
:Have you read about the [[meb:projects|MeB projects]]? Do you understand what we do and why we're excited to be contributers?
:Have you looked at the ideas pages for [[Development/Summer_of_Code/2017#Projects|each project]]?
+
:Have you looked at the ideas pages for [[Development/Summer_of_Code/2019#Projects|each project]]?
   
+
 
 
==Get motivated==
 
==Get motivated==
  
MetaBrainz tends to choose students who take initiative, who jump in and start doing things, who can find answers to their own questions.
+
'''MetaBrainz tends to choose students who take initiative''', who jump in and start doing things, who can find answers to their own questions.
  
 
At this point, you should be familiar with basic open source development tools and workflows, and your [http://lmgtfy.com/?q=google-fu Google-fu] should be excellent.
 
At this point, you should be familiar with basic open source development tools and workflows, and your [http://lmgtfy.com/?q=google-fu Google-fu] should be excellent.
   
 
==Get inspired==
 
So, you've done your homework. You've looked at the ideas pages. Excellent.
 
:What looks interesting?
 
:Have you read the related tickets and comments? Having done that, have you read related forum posts or blog posts, if any?
 
:Are the technologies in your skillset? (Or can you pick up the required skills quickly on your own?)
 
 
 
At this point, if you're interested in working on a project you might seek out a mentor on [[IRC]] to discuss the project and learn more about what it entails. However, "what do I do next?" is not the right question to be asking.
 
  
 
==Get involved==
 
==Get involved==
Line 27: Line 18:
 
:Have you installed and tried [[Picard]] or the [[AcousticBrainz]] submission tool? Written a review on [[CritiqueBrainz]]?
 
:Have you installed and tried [[Picard]] or the [[AcousticBrainz]] submission tool? Written a review on [[CritiqueBrainz]]?
 
:Have you said "hi" in [[IRC]]? Maybe even lurked in a [[MetaBrainz_Meeting|dev meeting]]?
 
:Have you said "hi" in [[IRC]]? Maybe even lurked in a [[MetaBrainz_Meeting|dev meeting]]?
 +
 +
 +
==Get inspired==
 +
So, you've done your homework. You've looked at the ideas pages. Excellent.
 +
:What looks interesting?
 +
:Have you read the related [[Bug_Tracker|tickets]] (including the comments)? Having done that, have you read related forum posts or blog posts, if any?
 +
:Are the technologies in your skill set? (Or can you pick up the required skills quickly on your own?)
 +
 +
 +
At this point, if you're interested in a particular project then you might seek out a mentor on [[IRC]] to discuss the project and learn more about what it entails. However, "what do I do next?" is not the right question to be asking. Which leads us to:
 +
 +
==Getting answers on IRC==
 +
 +
While it's true that "there are no dumb questions", there ''are'' better and worse places to ask some questions. Again, '''MetaBrainz tends to choose students who … can find answers to their own questions'''. There are also [https://rurounijones.github.io/blog/2009/03/17/how-to-ask-for-help-on-irc/ better] and worse ways to ask.
 +
 +
Also, before you ask a question in IRC, have you checked the [[Communication#Forums|forums]] to see if your  question has already been answered? If it hasn't been, consider asking your question there if you think that the answer would help other students as well.
 +
 +
===Good questions (examples)===
 +
 +
* "I'm looking at ticket X, but I can't reproduce it. The ticket says that the Frob page has no Frob button, but when I go to the page I see it. The button is also there when I log in (I see that the frob page has some slightly different behaviour for logged in users)"
 +
* "Ticket Y says that we need to add a "sort" field to all tables, but doesn't say what the tables are. I've found tables on page a, b, c and d. Are there any other ones that need to be sortable?"
 +
* "On ticket Z, there are two possible solutions for solving the problem. I think that thing a is the better option because ______. Should I go ahead with this solution?"
 +
* "I'm trying to set up a local MusicBrainz server, but get <this error>. It looks like package x is missing, but I installed it and still get the same error. Can somebody point me in the right direction?"
 +
 +
===Not-so-good questions (examples)===
 +
 +
* "Hey, can somebody answer my questions about GSoC?"
 +
*: Don't ask to ask, just ask.
 +
* "How do I start contributing?"
 +
*: If this doc doesn't help you get started, please re-read the [[#Getting_feedback|last section]].
 +
* "Where can I see the source code?"
 +
*: This is the sort of question that you should be able to answer for yourself by searching the wiki/docs.
 +
 +
The proposal-writing period is your chance to demonstrate that you're motivated, that you're able to solve problems on your own. If/when your proposal is accepted, then of course mentors will work with you one-on-one.
  
 
==Get ready==
 
==Get ready==
Line 32: Line 57:
 
:Have you found and cloned the relevant git repo(s) and done a successful local installation?
 
:Have you found and cloned the relevant git repo(s) and done a successful local installation?
 
:Have you tried fixing a few small bugs/issues? Each project has its own specific contribution instructions, but the basic [[#Git_Workflow|workflow]] is the same. Use the [[Bug_Tracker|issue tracker]] to find something to work on, and use Git to submit patches.
 
:Have you tried fixing a few small bugs/issues? Each project has its own specific contribution instructions, but the basic [[#Git_Workflow|workflow]] is the same. Use the [[Bug_Tracker|issue tracker]] to find something to work on, and use Git to submit patches.
 +
:Looking for your first issue to work on? Try searching for issues labeled "Beginner", "Good First Bug" etc.
  
 
==Get to work==  
 
==Get to work==  
Line 38: Line 64:
 
This is not the part where you should be asking for help. This is the part where you show us that you understand the problem and that you have a good plan for fixing it. (When/ if you're chosen for the program, then of course mentors will be there to help.)
 
This is not the part where you should be asking for help. This is the part where you show us that you understand the problem and that you have a good plan for fixing it. (When/ if you're chosen for the program, then of course mentors will be there to help.)
  
But at the same time, 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:
+
We '''strongly''' suggest that prospective students send drafts of their proposals to our [[discourse:metabrainz/gsoc-applications|forums]] before they apply on the GSoC website.
  
 
*Come into [[IRC|#metabrainz]] and saying "hi".
 
*Come into [[IRC|#metabrainz]] and saying "hi".
 
*Post a message in the [https://community.metabrainz.org/t/introduction-thread/59 forums].
 
*Post a message in the [https://community.metabrainz.org/t/introduction-thread/59 forums].
 
We '''strongly''' suggest that prospective students send drafts of their proposals to our [[discourse:metabrainz/gsoc-applications|forums]] before they apply on the GSoC website.
 
  
 
We have a [[Development/Summer_of_Code/Application_Template|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 respond until you've added it.
 
We have a [[Development/Summer_of_Code/Application_Template|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 respond until you've added it.
  
 
==Git workflow==
 
==Git workflow==
New to [[Development/Git|Git]]? You could do worse than to start with [https://guides.github.com/introduction/flow/index.html Understanding the GitHub Flow].
+
New to [[Development/Git|Git]]? Start with [https://guides.github.com/introduction/flow/index.html Understanding the GitHub Flow].
   
+
 
 
==Getting feedback==
 
==Getting feedback==
If the docs aren't enough to get you started planning your proposal, please leave a comment on the [[Talk:Development/Summer_of_Code/Getting_started|discussion]] page explaining what you're looking for and how this doc could be improved.
+
If this doc isn't enough to get you started planning your proposal, please leave a comment on the [[Talk:Development/Summer_of_Code/Getting_started|discussion]] page. Please tell us what you're looking for and how this doc could be improved.

Revision as of 11:05, 28 February 2019

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.

Get familiar

Do some homework.

Have you read about the MeB projects? Do you understand what we do and why we're excited to be contributers?
Have you looked at the ideas pages for each project?

Get motivated

MetaBrainz tends to choose students who take initiative, who jump in and start doing things, who can find answers to their own questions.

At this point, you should be familiar with basic open source development tools and workflows, and your Google-fu should be excellent.

Get involved

MetaBrainz tends to choose students who are active community members, who get involved at all levels.

Have you created an account?
Have you submitted any data?
Have you installed and tried Picard or the AcousticBrainz submission tool? Written a review on CritiqueBrainz?
Have you said "hi" in IRC? Maybe even lurked in a dev meeting?


Get inspired

So, you've done your homework. You've looked at the ideas pages. Excellent.

What looks interesting?
Have you read the related tickets (including the comments)? Having done that, have you read related forum posts or blog posts, if any?
Are the technologies in your skill set? (Or can you pick up the required skills quickly on your own?)


At this point, if you're interested in a particular project then you might seek out a mentor on IRC to discuss the project and learn more about what it entails. However, "what do I do next?" is not the right question to be asking. Which leads us to:

Getting answers on IRC

While it's true that "there are no dumb questions", there are better and worse places to ask some questions. Again, MetaBrainz tends to choose students who … can find answers to their own questions. There are also better and worse ways to ask.

Also, before you ask a question in IRC, have you checked the forums to see if your question has already been answered? If it hasn't been, consider asking your question there if you think that the answer would help other students as well.

Good questions (examples)

  • "I'm looking at ticket X, but I can't reproduce it. The ticket says that the Frob page has no Frob button, but when I go to the page I see it. The button is also there when I log in (I see that the frob page has some slightly different behaviour for logged in users)"
  • "Ticket Y says that we need to add a "sort" field to all tables, but doesn't say what the tables are. I've found tables on page a, b, c and d. Are there any other ones that need to be sortable?"
  • "On ticket Z, there are two possible solutions for solving the problem. I think that thing a is the better option because ______. Should I go ahead with this solution?"
  • "I'm trying to set up a local MusicBrainz server, but get <this error>. It looks like package x is missing, but I installed it and still get the same error. Can somebody point me in the right direction?"

Not-so-good questions (examples)

  • "Hey, can somebody answer my questions about GSoC?"
    Don't ask to ask, just ask.
  • "How do I start contributing?"
    If this doc doesn't help you get started, please re-read the last section.
  • "Where can I see the source code?"
    This is the sort of question that you should be able to answer for yourself by searching the wiki/docs.

The proposal-writing period is your chance to demonstrate that you're motivated, that you're able to solve problems on your own. If/when your proposal is accepted, then of course mentors will work with you one-on-one.

Get ready

Do more homework:

Have you found and cloned the relevant git repo(s) and done a successful local installation?
Have you tried fixing a few small bugs/issues? Each project has its own specific contribution instructions, but the basic workflow is the same. Use the issue tracker to find something to work on, and use Git to submit patches.
Looking for your first issue to work on? Try searching for issues labeled "Beginner", "Good First Bug" etc.

Get to work

The ideas pages describe problems that needs to be solved. It's up to you to come up with a solution and a plan.

This is not the part where you should be asking for help. This is the part where you show us that you understand the problem and that you have a good plan for fixing it. (When/ if you're chosen for the program, then of course mentors will be there to help.)

We strongly suggest that prospective students send drafts of their proposals to our forums before they apply on the GSoC website.

We have a 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 respond until you've added it.

Git workflow

New to Git? Start with Understanding the GitHub Flow.

Getting feedback

If this doc isn't enough to get you started planning your proposal, please leave a comment on the discussion page. Please tell us what you're looking for and how this doc could be improved.