Xconf 2014 - Contributing to Open Source

Post on 14-Jul-2015

567 views 1 download

Tags:

Transcript of 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

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?

49

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

50

THANKS

Paras Narang

@parasnarang

Rishab Arora

@spacetime29