Contributing to open source
Click here to load reader
-
Upload
devin-abbott -
Category
Software
-
view
181 -
download
0
Transcript of Contributing to open source
![Page 1: Contributing to open source](https://reader038.fdocuments.net/reader038/viewer/2022100801/58ce9d4f1a28abb26e8b470f/html5/thumbnails/1.jpg)
Contributing to Open Source
![Page 2: Contributing to open source](https://reader038.fdocuments.net/reader038/viewer/2022100801/58ce9d4f1a28abb26e8b470f/html5/thumbnails/2.jpg)
• What is open source?
• How to contribute
• My experiences
![Page 3: Contributing to open source](https://reader038.fdocuments.net/reader038/viewer/2022100801/58ce9d4f1a28abb26e8b470f/html5/thumbnails/3.jpg)
About me
![Page 4: Contributing to open source](https://reader038.fdocuments.net/reader038/viewer/2022100801/58ce9d4f1a28abb26e8b470f/html5/thumbnails/4.jpg)
What is open source?
![Page 5: Contributing to open source](https://reader038.fdocuments.net/reader038/viewer/2022100801/58ce9d4f1a28abb26e8b470f/html5/thumbnails/5.jpg)
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](https://reader038.fdocuments.net/reader038/viewer/2022100801/58ce9d4f1a28abb26e8b470f/html5/thumbnails/6.jpg)
Free as in beer?Free as in speech?
"Open" means free
![Page 7: Contributing to open source](https://reader038.fdocuments.net/reader038/viewer/2022100801/58ce9d4f1a28abb26e8b470f/html5/thumbnails/7.jpg)
A few examples
Linux
Firefox
Free Code Camp
React JS
FontAwesome
![Page 8: Contributing to open source](https://reader038.fdocuments.net/reader038/viewer/2022100801/58ce9d4f1a28abb26e8b470f/html5/thumbnails/8.jpg)
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](https://reader038.fdocuments.net/reader038/viewer/2022100801/58ce9d4f1a28abb26e8b470f/html5/thumbnails/9.jpg)
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](https://reader038.fdocuments.net/reader038/viewer/2022100801/58ce9d4f1a28abb26e8b470f/html5/thumbnails/10.jpg)
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](https://reader038.fdocuments.net/reader038/viewer/2022100801/58ce9d4f1a28abb26e8b470f/html5/thumbnails/11.jpg)
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](https://reader038.fdocuments.net/reader038/viewer/2022100801/58ce9d4f1a28abb26e8b470f/html5/thumbnails/12.jpg)
How to contribute
![Page 13: Contributing to open source](https://reader038.fdocuments.net/reader038/viewer/2022100801/58ce9d4f1a28abb26e8b470f/html5/thumbnails/13.jpg)
What to contribute?
Code
Ideas
Designs
Documentation
Support
![Page 14: Contributing to open source](https://reader038.fdocuments.net/reader038/viewer/2022100801/58ce9d4f1a28abb26e8b470f/html5/thumbnails/14.jpg)
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](https://reader038.fdocuments.net/reader038/viewer/2022100801/58ce9d4f1a28abb26e8b470f/html5/thumbnails/15.jpg)
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](https://reader038.fdocuments.net/reader038/viewer/2022100801/58ce9d4f1a28abb26e8b470f/html5/thumbnails/16.jpg)
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](https://reader038.fdocuments.net/reader038/viewer/2022100801/58ce9d4f1a28abb26e8b470f/html5/thumbnails/17.jpg)
My experiences
![Page 18: Contributing to open source](https://reader038.fdocuments.net/reader038/viewer/2022100801/58ce9d4f1a28abb26e8b470f/html5/thumbnails/18.jpg)
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](https://reader038.fdocuments.net/reader038/viewer/2022100801/58ce9d4f1a28abb26e8b470f/html5/thumbnails/19.jpg)
Let’s take a look…
![Page 20: Contributing to open source](https://reader038.fdocuments.net/reader038/viewer/2022100801/58ce9d4f1a28abb26e8b470f/html5/thumbnails/20.jpg)
That’s all, good luck!
@devinaabbott
Questions, comments, etc