xconf 2014 - contributing to open source
Post on 14-Jul-2015
567 Views
Preview:
TRANSCRIPT
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
21www.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 picWrong 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?
50
THANKS
Paras Narang
@parasnarang
Rishab Arora
@spacetime29
top related