Contributing to Open
Source 101
X C o n f G u r g a o n ' 1 4
2
Our Journey
3
What we thought it was
● Find a project
● Find bugs
● Send Patch/Pull Request
4
Why?
What?
How?
When?
5
Why?
The reasons we wanted to contribute
6
● Awesome workplace
● A lot of activities
● Challenging projects
● Something missing!
Why?
7
Our reasons
● Give back to the community
● Become Immortal
● Reach
● Be part of a change/Be
disruptive
● Network
● Become a better developer
8
Other Driving Factors
● Profile
● Fame
● Travel
● Solving a problem
● Improving solutions
9
What?
Next Steps...
10
(Now) What?
Umm.. Where do we start...
11
12
Inception
● We tried learning about a lot of
projects.
● Rust, Servo, KDE, Firefox ...
● Even tried learning the languages
● Failed. Frustrated.
● Work: 0 Time: A lot
13
14
Why did we fail?
15
#Fail
✗ Had never used it
✗ Only judged by impact
✗ Picked projects with giant learning
curves
16
Seeking help
● IRC
● Blogs
● Meetups in Delhi/NCR
● We met RMS!
17
18
Know Thyself
19
Know Thy Interests
● Pick something you use
● Something you care about
● Something that will annoy you if it
doesn't work
20
How?
Techniques and Tools
21
www.openhatch.org
22
Know Thy Project
● Use it. And keep using it.
● Understand the itch
● Talk to contributors on IRC/IRL
● Talk to users
● Read Mailing Lists
● Needs and Wants
23
Funny picture
about learning
curves
24
Starting Point
● KDE: 'Junior Jobs'
● Mozilla: 'Mentored Bugs' and 'Good
First Bugs'
● Github: Tags ('Easy' etc)
● Take your pick
25
Know Thy Code
● Obtain source code
● Build
● Run tests
● Play with it. Explore.
● Read wikis
26
Tools pic
Wrong tools mishap
27
Know thy tools
● Start with no tools
● Explore tools for specific problems
● Ask seasoned contributors
28
Know Thy Community
● KDE: Active user and developer
community in India
● Mozilla: Developers vs Contributors
● Sketch-UI: Scratch your own itch
29
30
Know Thy Etiquettes
● Volunteers usually have other jobs
● Give descriptive feedback
● RTFM
● Spell-check
31
All set? Now get
your hands dirty!
Another funny
pic here. Omg.
Kill me. Now.
32
When?
Where is the time to do anything at all !!
33
Spend Thy Time
● Find company
● Make it a regular thing
● Doesn't always work the way you
thought it would
● After-hours
● Weekends
34
www.codetriage.com
35
CODE!
Getting familiar with the codebase
36
It's not going to
work the first time.
And it'll be a while
till you get the
hang of things.
37
Code -> Review
● Follow code guidelines
● KDE: Review board
● Mozilla: Bugzilla
● Properly formatted patches
● Build bigger features in increments.
TEST!
38
Check in
● Run tests locally
● Mozilla: Run on Try Servers
● Write a beautiful commit message
● Rinse, Repeat
● Get approval on patch
● Check In final patch
39
Nope.
- Albert Einstein
on reading our
first patch to
Firefox
40
Immortality
41
Pitfalls
● Too scared to ask questions
● Didn't dedicate time
42
What we thought it was
● Find a project
● Find bugs
● Send Patch/Pull Request
43
(11)2
to (11)10
Rules
<Insert Awkward Laughter Here />
44
(11)10
Steps
● Know Thyself
● Know Thy Interests
● Know Thy Project
● Know Thy Code
● Know Thy Tools
● Know Thy Community
● Know Thy Etiquettes
● Spend Thy Time
● While true: (Code →
Review)
● Check-in
● Achieve Immortality
45
Learnings
● Contributions != Code
● You can start your own project if
you have an itch that can't be
scratched with the help of TWers
46
Nagging Questions
● Why do we not see people regularly
contributing? (Outside work related
software)
● Why the aversion to free software?
47
We ended up
contributing to:
Sketch-UI, Mozilla,
KDE
48
What's next?
49
https://github.com/pagekite/mailpile || www.mailpile.is
50
THANKS
Paras Narang
@parasnarang
Rishab Arora
@spacetime29

Xconf 2014 - Contributing to Open Source

Editor's Notes

  • #3 Many ways to contribute. We pick code since that&amp;apos;s what we thought we were good at.
  • #7 Awesome workplace A lot of activities Challenging projects But something missing! Give back to the community Become Immortal Reach Be part of a change/Be disruptive
  • #8 Passion in you And may not be for everyone Discover yourself Figure out what you need to float your boat
  • #9 Passion in you And may not be for everyone Discover yourself Figure out what you need to float your boat
  • #12 sdf
  • #19 What are you passionate about? How much time do you have?
  • #23 Understand the problems it is solving And what was the creator thinking when he/she started the project You have to really understand it to feel it
  • #26 Understand the problems it is solving And what was the creator thinking when he/she started the project You have to really understand it to feel it
  • #28 You know all the tools and you&amp;apos;re super efficient. But next, you need communication. Group, community, not alone.
  • #49 Mailpile