An introductory presentation to Google Summer of Code (GSoC), focusing on the year 2020. More information can be found at https://kkpradeeban.blogspot.com/search/label/GSoC
4. 4
Why should I bother?
Code for your preferredpreferredopen
source projectprojectfor 3 months.
And get paid!
5. 5
StipendsStipends
➢
StipendsStipends based on the location of yourbased on the location of your
university.university.
➢
3000 – 6600 $ in total.3000 – 6600 $ in total.
Background Image: http://blog.echoenduring.com/2010/11/23/learning-about-design-from-angry-birds/
6. 6
Google Summer of Code (GSoC)
Code for an open source organization for 3 months.
Not accepted twice or more in previous GSoCs as
a student.
Google coordinates and rewards you!
– Getting Accepted.
– 3 milestones (a.k.a., evaluations).
• Phase 1 Evaluations. (30% of the stipend)
• Phase 2 Evaluations. (Another 30% of the stipend)
• Final Evaluations. (Final 40% of the stipend)
– A certificate, an awesome t-shirt, and gifts!
7. 7
Some statistics of 2019
201 Organizations
– 2,815 mentors and co-mentors.
– 2,066 from 72 countries, with an assigned student.
Registered
– 30,922 students, from 148 countries.
Accepted
– 1, 276 students/projects
• 148 countries. 6,586 universities.
Completed successfully
– 1,134 students from 61 countries.
11. 11
Timeline (2020)
Jan 14th
– Feb 5th
: Organizations apply.
Feb 20th
: Accepted organizations announced.
March 16th
– 31st
: Student application period.
March 31st
– April 27th
: Organizations review
student applications.
12. 12
Timeline..
After getting accepted
April 27th
: Accepted Students announced.
– Community Bonding Period Begins.
May 18th
– Aug 10th: Coding Period.
June 15th
– June 19th
: Phase 1 Evaluations.
July 13th
– July 17th
: Phase 2 Evaluations.
Aug 10th
– Aug 17th: GSoC Final Submission.
– Students submit the final code and documentation.
15. 15
Before you begin..
Google Summer of Code is all about being
Open Source.
Get your basics and motives right.
Netiquettes.
Sign up to the lists.
Join the relevant communication channel.
16. 16
Technologies..
Version Control Systems
– git, mercurial, ..
Build Tools
– Maven, Ivy, Ant, ..
IDEs (Integrated Development Environments)
– IntelliJ IDEA, Eclipse, ..
– Microsoft Visual Studio ..
Issue Tracker
– Jira, Bugzilla, Trac, ..
17. 17
Mailing Lists
– Dev, User, Commit lists, sub-groups, ..
Internet Relay Chat (IRC) and Slack channels
Issue Tracker
Forums and wiki
Blogs
Skype, Personal Mails, gtalk, conference
calls, .. [with the mentors, if that is preferred.]
Communicating with the team..
and the mentor, over the Internet
18. 18
Network Etiquettes
Be Specific and clear.
Research (google.. ;)) before asking.
Be helpful to others.
Be ethical; respect.
NO CAPS! (UNLESS YOU ARE SHOUTING!)
Don't take messages personally.
Dn't snd ur sms msgs to thrds or lsts.
Language/English
19. 19
Proper Addressing..
over the lists/irc/..
Address the devs and users properly.
– First Name or Preferred calling name.
– NO Sir, Madam, bro, sis, pal..
• Even if you know them, personally.
– No Mr., Dr., or Prof. either.
– Be gender neutral.
• “Folks” over “Guys and Girls”.
– Not too personal.
• Use “Hi”, instead of “Dear”.
20. 20
Mailing lists
Post only to the relevant list/channel.
Check the mail archives or channel logs first.
No [URGENT]/[IMPORTANT] tags.
No unnecessary attachments.
No Cross Posting.
Don't hijack threads.
Don't post off-topic.
21. 21
IRC/Slack Etiquettes
Join the relevant channels.
Be an observer first.
Refer to others using their irc/slack nick to get
attention.
But avoid misusing.
Especially no unnecessary @channel or @here.
Don't expect immediate replies; wait.
22. 22
Find a mentoring organization..
Have a look at the list of past GSoC.
201 Last year!
New Organizations.
40 – 50 expected for 2020.
Google as the mentoring organization.
Introduce GSoC to an organization (Sounds
Smart!).
23. 23
Find THE right project..
Go through the organizations' projects list.
– Some organizations publish pretty soon.
– Refer to the projects list of 2019 of the
organizations until the GSoC 2020 is announced.
24. 24
Get to know more..
about the projects
Talk to the mentor(s)
– Assigned by the organization
– for each project idea.
Mailing lists and archives.
Issue Tracker
– Open issues or tickets
• New features/enhancements (RFE)
• Bugs (easy/difficult and normal/critical)
25. 25
What makes you
special?
Experience
– Being a great user doesn't mean that you can be a
good developer.
Your interests and motivation
– Pick something you really enjoy doing.
– Being a great developer doesn't mean that you
can be a good contributor.
Opportunities
– What makes you the right person?
26. 26
Are you willing
to contribute further?
Willingness
– To contribute to the community
– Beyond the time frame of GsoC.
We want committers and long time
volunteers!
– Not just students!
27. 27
Experience
Language
– Java, Python, Javascript, Go, C++, C, ..
– Not much time to learn a new language (?)
Prove It!
– Patches.
– Assist other students!!!
– Project expertise
• Bug reports and fixes.
• Go through the archives, wikis, and web sites.
28. 28
Opportunities..
Project that matches your previous work
experience.
Choose the right project.
Timezone Difference
– Use it effectively
Multiple Applications
Up to 3. But only one accepted per student.
Preferences!
29. 29
Shout!
Communicate early – but meaningfully.
Not necessary to send an email just to say ‘hi’.
Communicate often.
Ask questions.
Most importantly,
Answer others' questions!
Mentor is your friend!
(respect)
31. 31
Apply
Register as a student for GSoC.
Use the project's wiki for draft proposal
– if applicable.
Apply on Google's system.
– Can edit later, until the last minute!
– Get the mentors' opinions and improve.
Check often for the mentors' comments
– attend to them.
32. 32
Propose.. ♡
How to impress..
– the mentor/developers?
Stick to the organization's template.
Abstract.
Introduce yourself properly.
– Focus on the relevant facts.
– Why do you fit? Your skill sets.
– List of the patches (if any) you have submitted.
33. 33
Propose..
Project Goals
– Proves you got them correct.
Deliverables
– Code, Documentation, test cases, ..
Description
– Benefits to the organization and other projects.
– Can also be given along with the timeline.
34. 34
Propose..
Timeline
– Finer details.
– Break up to periods of 3 - 4 days.
– Testing takes time.
– Don't be over-optimistic.
– Require considerable work hrs/week (30+, per Google).
Links
– References and additional details.
36. 36
• e.g.: “At the end of my project, AbiWord’s piece
table will be 50 times faster.”
Project Details:
– A more detailed description of your project:
Project Schedule:
– How long will the project take?
– When can you begin work?
– Do you know of any planned absences or other
major conflicts
• summer classes, vacations, etc.
37. 37
Bio:
– Who are you?
– What makes you the best person to work on this
project?
Additional Requirements:
– Patches / Specific requirements for the project.
Further Related Information:
38. 38
After the submission..
Don't go invisible!
– Evaluation is still going on.. ;)
You may be asked to provide
– additional information.
• Bug fixes / pull requests.
• Demos and screenshots.
You may even start coding on your project!
– Especially if you didn't apply for multiple projects.
Be motivated.
39. 39
Got Selected? yay/
Don't Panic.
You have one more month
– just to mingle with the developers and the code
base.
Mentors are there to help you!
Keep touch with the developers.
Users.
40. 40
Community Bonding Period
Learn the project
– Go through the code base
– Documentation.
• Coding styles and coding guide lines.
Communicate often
Understand the project idea more.
– Come up with a design.
– Start with simple hacks.
41. 41
Coding..
Easiest task of all.. ;)
Commit often, if given committership.
– Send frequent pull requests (daily ?) otherwise.
– Meaningful Commit messages.
Get feedback from the mentor(s).
Keep the community/mentor updated
– Daily (?).
Plan for the mid and final evaluations early,
with the mentor.
42. 42
Conclude/Continue..
Final Submission.
Make a static web page to summarize your GSoC work.
Submit the link at the GSoC site.
Don’t miss any of the evaluations.
Both mentors and students need to submit evaluations.
All 3 of the evaluations!
Focus on becoming a committer in the organization
– if not already given committership.
Keep contributing.
45. 45
Some links.. ;)
GSoC home page
Google Open Source Blog on GSoC
Proposal [Pradeeban]
GSoC 2015 Emory BMI
GSoC 2014 Emory BMI
GSoC 2010 OMII-UK/OGSA-DAI
GSoC 2009 AbiWord
46. 46
Are you ready?
Have a look at the successful projects.
– Proposals available online - Wikis, blogs, ..
– Project ideas 2020
• Emory BMI, caMicroscope, ..
Apache Software Foundation
– More slots and more choices.
• Tomcat, Derby, Axis2, and more ..
Join the projects' mailing lists and channels.
For Example, Apache CXF
47. 47
For more Information ..
Join the GSoC mailing lists.
Join your local GSoC Google Group
– For e.g., Group for Sri Lankan students:
http://groups.google.com/group/gsoc-srilanka
Drop me a line. :)
– kk.pradeeban@gmail.com | kkpradeeban.blogspot.com
Logos used in the presentation are owned by the respective open source organizations or the individuals, and used for the
particular non - commercial informative purpose only.