The First Pull Request
Kent C. Dodds
Utah
1 wife, 3 kids
PayPal, Inc.
@kentcdodds
@kentcdodds
Please Stand...
What this talk is
- How to find a project you want to contribute to
- What a contribution is
- How to encourage contributors (especially first timers)
- How to make the OSS community safer, better, fun-er :-)
What this talk is not
- How to create a popular open source project
- How to make maintainers merge your Pull Request
- Why you should contribute to open source
Let's
Get
STARTED!
Open Source:
Denoting software for which the original source code is made freely available and may be redistributed and modified.
Open Source:
Powers our world, is a ton of fun to contribute to, and needs you to succeed
Kent
Linux
~/Desktop/linux (master)
🚀 $ cloc .
52880 text files.
52386 unique files.
9165 files ignored.
https://github.com/AlDanial/cloc v 1.66 T=272.34 s (160.6 files/s, 72107.3 lines/s)
---------------------------------------------------------------------------------------
Language files blank comment code
---------------------------------------------------------------------------------------
C 22451 2166047 2003254 11062201
C/C++ Header 17192 416883 715217 2696851
Assembly 1413 47220 110118 241449
XML 177 3441 243 49968
make 2138 8041 7756 33837
Perl 47 4559 3602 23938
Bourne Shell 173 1785 3239 9764
Python 41 1300 1443 7540
yacc 8 649 355 4357
HTML 3 398 2 2933
lex 8 292 289 1823
C++ 1 231 58 1581
Bourne Again Shell 47 294 245 1375
awk 10 132 129 1130
NAnt script 2 121 0 449
Pascal 3 49 0 231
Lisp 1 63 0 218
Objective C++ 1 55 0 189
m4 1 15 1 95
XSLT 6 13 27 71
vim script 1 3 12 27
Windows Module Definition 1 0 0 8
---------------------------------------------------------------------------------------
SUM: 43725 2651591 2845990 14140035
---------------------------------------------------------------------------------------
Files: 43,725
Blank + Comment + Code = 19,637,616
Code Contributors to Linux
Total Contributors: >3,500
We need you
This is called "burnout"
You might be thinking...
but I can't because...
How could I possibly contribute?
You can contribute a great deal!
Privilege
We all have different circumstances...
Contributor:
A person or thing that contributes something, in particular.
Community:
A group of people ... having a particular characteristic in common
What do we have in common?
Write code
Read code
Read docs
Write docs
Teach
Learn
More...
So... Which project?
¯\_(ツ)_/¯
You contribute best to something you use regularly
How to learn the codebase?
You can do it!
Every little bit helps!
Project Maintainers
You
Need
Help
Causes of burnout include
- Change of job
- Change of project
- Loss of interest
- Loss of time
Side-effects may include
- Losing context
- Feeling overwhelmed
- Frustration
- Impatience
- Unkindness
People
Need
You
You have power to...
help newcomers become contributors...
increase diversity of thought, opinion, and background in OSS
save yourself from burnout
Give people:
- Respect
- Encouragement
- Recognition
- Responsibility
- Trust
And they'll give to you
Warning!
Your Contributor Pipeline
People => Users
Solve a problem
Documentation
Demos & Examples
Speak about it!
Record Screencasts
Users => Contributors
OSS === People
Global Industry
Support & Filing Bugs
Contributors => Committers
Simplify Project Setup
$ git clone https://github.com/kentcdodds/webpack-validator
$ npm install
$ npm run validate
$ echo 'code away! 👍'
Beginner Friendly
First Timers Only
You're making an investment
that will definitely pay back
Volunteer Retention: Wikipedia
Gallus, Jana (2015). Fostering Voluntary Contributions to a Public Good: A Large-Scale Natural Field Experiment at Wikipedia. CREMA Working Paper No. 2015-05. Available at SSRN: http://ssrn.com/abstract=2579118 @janagallus
Code contributors
Naturally rewarded
But not non-code contributors
All Contributors
Recognize all contributors, not just the ones who push code
Give Write Access
Committers => Maintainers
Share the keys
Resources
-
How to Contribute to an Open Source Project on GitHub - Free video series
-
How to write an Open Source JavaScript Library - Free video series
-
How getting into open source has been awesome for me - Blogpost
-
Open Source Stamina - Blogpost
-
First Timers Only - Blogpost
-
GitHub Pull Request Tutorial - Tutorial Blogpost
-
Try Git - Interactive intro course on git
-
Lodash & Open Source - JavaScript Air Podcast Episode
-
FirstPR.me - Site to find your first Pull Request
-
@YourFirstPR - Twitter Account
-
@first_tmrs_only - Twitter Account
-
Up-For-Grabs.net - Currated list of GitHub issues
-
Creating a Pull Request - GitHub help article
-
Hello World - GitHub help article
Thank you!
The First Pull Request
By Kent C. Dodds
The First Pull Request
“Feel free to submit a pull request.” For some, this is a welcome invitation, but for many developers, pull requests are intimidating, discouraging them from contributing to the community. This talk demonstrates how easy and fun it is to create a pull request as a first timer.
- 13,433