Xconf 2014 - Contributing to Open Source

51
Contributing to Open Source 101 XConf Gurgaon '14

Transcript of Xconf 2014 - Contributing to Open Source

Page 1: Xconf 2014 - Contributing to Open Source

Contributing to Open Source 101

X C o n f G u r g a o n ' 1 4

Page 2: Xconf 2014 - Contributing to Open Source

2

Our Journey

Page 3: Xconf 2014 - Contributing to Open Source

3

What we thought it was

● Find a project

● Find bugs

● Send Patch/Pull Request

Page 4: Xconf 2014 - Contributing to Open Source

4

Why?What?

How?When?

Page 5: Xconf 2014 - Contributing to Open Source

5

Why?The reasons we wanted to contribute

Page 6: Xconf 2014 - Contributing to Open Source

6

● Awesome workplace● A lot of activities● Challenging projects● Something missing!

Why?

Page 7: Xconf 2014 - Contributing to Open Source

7

Our reasons● Give back to the community

● Become Immortal

● Reach

● Be part of a change/Be disruptive

● Network

● Become a better developer

Page 8: Xconf 2014 - Contributing to Open Source

8

Other Driving Factors

● Profile

● Fame

● Travel

● Solving a problem

● Improving solutions

Page 9: Xconf 2014 - Contributing to Open Source

9

What?Next Steps...

Page 10: Xconf 2014 - Contributing to Open Source

10

(Now) What?Umm.. Where do we start...

Page 11: Xconf 2014 - Contributing to Open Source

11

Page 12: Xconf 2014 - Contributing to Open Source

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

Page 13: Xconf 2014 - Contributing to Open Source

13

Page 14: Xconf 2014 - Contributing to Open Source

14

Why did we fail?

Page 15: Xconf 2014 - Contributing to Open Source

15

#Fail

✗ Had never used it

✗ Only judged by impact

✗ Picked projects with giant learning curves

Page 16: Xconf 2014 - Contributing to Open Source

16

Seeking help

● IRC

● Blogs

● Meetups in Delhi/NCR

● We met RMS!

Page 17: Xconf 2014 - Contributing to Open Source

17

Page 18: Xconf 2014 - Contributing to Open Source

18

Know Thyself

Page 19: Xconf 2014 - Contributing to Open Source

19

Know Thy Interests

● Pick something you use

● Something you care about

● Something that will annoy you if it doesn't work

Page 20: Xconf 2014 - Contributing to Open Source

20

How?Techniques and Tools

Page 21: Xconf 2014 - Contributing to Open Source

21www.openhatch.org

Page 22: Xconf 2014 - Contributing to Open Source

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

Page 23: Xconf 2014 - Contributing to Open Source

23

Funny picture about learning

curves

Page 24: Xconf 2014 - Contributing to Open Source

24

Starting Point

● KDE: 'Junior Jobs'

● Mozilla: 'Mentored Bugs' and 'Good First Bugs'

● Github: Tags ('Easy' etc)

● Take your pick

Page 25: Xconf 2014 - Contributing to Open Source

25

Know Thy Code

● Obtain source code

● Build

● Run tests

● Play with it. Explore.

● Read wikis

Page 26: Xconf 2014 - Contributing to Open Source

26

Tools picWrong tools mishap

Page 27: Xconf 2014 - Contributing to Open Source

27

Know thy tools

● Start with no tools

● Explore tools for specific problems

● Ask seasoned contributors

Page 28: Xconf 2014 - Contributing to Open Source

28

Know Thy Community

● KDE: Active user and developer community in India

● Mozilla: Developers vs Contributors

● Sketch-UI: Scratch your own itch

Page 29: Xconf 2014 - Contributing to Open Source

29

Page 30: Xconf 2014 - Contributing to Open Source

30

Know Thy Etiquettes

● Volunteers usually have other jobs

● Give descriptive feedback

● RTFM

● Spell-check

Page 31: Xconf 2014 - Contributing to Open Source

31

All set? Now get your hands dirty!

Another funny pic here. Omg. Kill me. Now.

Page 32: Xconf 2014 - Contributing to Open Source

32

When?Where is the time to do anything at all !!

Page 33: Xconf 2014 - Contributing to Open Source

33

Spend Thy Time

● Find company

● Make it a regular thing

● Doesn't always work the way you thought it would

● After-hours

● Weekends

Page 34: Xconf 2014 - Contributing to Open Source

34

www.codetriage.com

Page 35: Xconf 2014 - Contributing to Open Source

35

CODE!Getting familiar with the codebase

Page 36: Xconf 2014 - Contributing to Open Source

36

It's not going to work the first time. And it'll be a while till you get the hang of things.

Page 37: Xconf 2014 - Contributing to Open Source

37

Code -> Review

● Follow code guidelines

● KDE: Review board

● Mozilla: Bugzilla

● Properly formatted patches

● Build bigger features in increments. TEST!

Page 38: Xconf 2014 - Contributing to Open Source

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

Page 39: Xconf 2014 - Contributing to Open Source

39

Nope.

- Albert Einstein on reading our first patch to

Firefox

Page 40: Xconf 2014 - Contributing to Open Source

40

Immortality

Page 41: Xconf 2014 - Contributing to Open Source

41

Pitfalls

● Too scared to ask questions

● Didn't dedicate time

Page 42: Xconf 2014 - Contributing to Open Source

42

What we thought it was

● Find a project

● Find bugs

● Send Patch/Pull Request

Page 43: Xconf 2014 - Contributing to Open Source

43

(11)2 to (11)

10 Rules

<Insert Awkward Laughter Here />

Page 44: Xconf 2014 - Contributing to Open Source

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

Page 45: Xconf 2014 - Contributing to Open Source

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

Page 46: Xconf 2014 - Contributing to Open Source

46

Nagging Questions

● Why do we not see people regularly contributing? (Outside work related software)

● Why the aversion to free software?

Page 47: Xconf 2014 - Contributing to Open Source

47

We ended up contributing to:

Sketch-UI, Mozilla, KDE

Page 48: Xconf 2014 - Contributing to Open Source

48

What's next?

Page 49: Xconf 2014 - Contributing to Open Source

49

https://github.com/pagekite/mailpile || www.mailpile.is

Page 50: Xconf 2014 - Contributing to Open Source

50

Page 51: Xconf 2014 - Contributing to Open Source

THANKS

Paras Narang

@parasnarang

Rishab Arora

@spacetime29