Contributing to open source

20

Click here to load reader

Transcript of Contributing to open source

Page 1: Contributing to open source

Contributing to Open Source

Page 2: Contributing to open source

• What is open source?

• How to contribute

• My experiences

Page 3: Contributing to open source

About me

Page 4: Contributing to open source

What is open source?

Page 5: Contributing to open source

Literally means:The source code is published with a license potentially allowing modification and distribution of the code

Usually means:The code is written collaboratively on GitHub

Page 6: Contributing to open source

Free as in beer?Free as in speech?

"Open" means free

Page 7: Contributing to open source

A few examples

Linux

Firefox

Free Code Camp

React JS

FontAwesome

Page 8: Contributing to open source

For the author/maintainer: • Lots of testers and people reporting bugs • Anyone can fix bugs and add features • More people will use and know how to use the project • Interact with users/developers through GitHub • Great for recruiting

Pros of open source

Page 9: Contributing to open source

For the developer/user: • You can fork and modify the code however you need • You can rely on this code even if the company creating it goes

out of business • Development progress is transparent on GitHub • Improve your reputation by contributing

Pros of open source

Page 10: Contributing to open source

Cons of open source

For the author/maintainer: • It’s hard to build a business around open source • Very time-consuming if it isn’t your full-time job • People expect a lot from you (e.g. free support)

Page 11: Contributing to open source

Cons of open source

For the developer/user: • You can’t necessarily expect support from the authors • If the project isn’t backed by a company, it can stop suddenly

Page 12: Contributing to open source

How to contribute

Page 13: Contributing to open source

What to contribute?

Code

Ideas

Designs

Documentation

Support

Page 14: Contributing to open source

Choosing a project

• Contribute to something you use

• Fix a bug or add a feature

• Merge a fork "upstream"

• Start your own

• Look at a list of open source projects• Look at a list of open source projects

Page 15: Contributing to open source

Contributing to something you use

Why something you use?

• You’ll understand what the project is supposed to do and why

• You’ll be familiar with the API (which parts are good vs. bad)

• You’ll have concrete test cases in your existing work

• You’ll be meticulous in your contributions, since you’ll use them

• You can have well-informed conversations with contributors

Page 16: Contributing to open source

Contributing to something you use

How to get started

• Just jump in and start reading the codebase

• Fix a small bug or add a small option to a feature

• Try something more challenging (e.g. big feature)

• Inform the authors on GitHub

• Discuss the task in detail

Page 17: Contributing to open source

My experiences

Page 18: Contributing to open source

A few projects I’ve contributed to

React Native CodeMirror FramerJS

A few projects I’ve created

Deco IDE React Native Express

React Native Web Player

Page 19: Contributing to open source

Let’s take a look…

Page 20: Contributing to open source

That’s all, good luck!

@devinaabbott

Questions, comments, etc