Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Tending Your Open Source Garden
Search
Brandon Keepers
PRO
June 26, 2014
Technology
2
960
Tending Your Open Source Garden
Brandon Keepers
PRO
June 26, 2014
Tweet
Share
More Decks by Brandon Keepers
See All by Brandon Keepers
Automating Software Development
bkeepers
PRO
3
470
Building the GitHub workspace app
bkeepers
PRO
1
360
Contributing to Your Career
bkeepers
PRO
4
710
A Maturity Model for Embracing Open Source Software
bkeepers
PRO
3
910
Open Source Principles for Internal Engineering Teams
bkeepers
PRO
8
1.3k
Carbon, Automobiles, Bebop & Fashion
bkeepers
PRO
1
520
Tending Your Open Source Garden, v2
bkeepers
PRO
1
580
The Loyal Renegade
bkeepers
PRO
3
860
A Chronicle of the Nebulous HTML5
bkeepers
PRO
11
1k
Other Decks in Technology
See All in Technology
Azure × MCP 入門
ry0y4n
6
850
本当に必要なのは「QAという技術」だった!試行錯誤から生まれた、品質とデリバリーの両取りアプローチ / Turns Out, "QA as a Discipline" Was the Key!
ar_tama
7
1.2k
コスト最適重視でAurora PostgreSQLのログ分析基盤を作ってみた #jawsug_tokyo
non97
2
870
勝手に!深堀り!Cloud Run worker pools / Deep dive Cloud Run worker pools
iselegant
4
640
Compose におけるパスワード自動入力とパスワード保存
tonionagauzzi
0
190
Goの組織でバックエンドTypeScriptを採用してどうだったか / How was adopting backend TypeScript in a Golang company
kaminashi
12
9.1k
AIとSREで「今」できること
honmarkhunt
3
700
Notion x ポストモーテムで広げる組織の学び / Notion x Postmortem
isaoshimizu
1
150
Pythonデータ分析実践試験 出題傾向や学習のポイントとテクニカルハイライト
terapyon
1
120
エンジニアリングで組織のアウトカムを最速で最大化する!
ham0215
1
280
PagerDuty×ポストモーテムで築く障害対応文化/Building a culture of incident response with PagerDuty and postmortems
aeonpeople
3
540
Simplify! 10 ways to reduce complexity in software development
ufried
1
220
Featured
See All Featured
Building Adaptive Systems
keathley
41
2.5k
How STYLIGHT went responsive
nonsquared
100
5.5k
Become a Pro
speakerdeck
PRO
28
5.3k
Building an army of robots
kneath
305
45k
Building a Modern Day E-commerce SEO Strategy
aleyda
40
7.2k
Stop Working from a Prison Cell
hatefulcrawdad
268
20k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
Six Lessons from altMBA
skipperchong
28
3.7k
The Straight Up "How To Draw Better" Workshop
denniskardys
233
140k
Bash Introduction
62gerente
612
210k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
Transcript
http://commons.wikimedia.org/wiki/File:Cress_keyboard-3_sprouting_other_side.jpg Garden @BKEEPERS TENDING YOUR OPEN SOURCE !
http://en.wikipedia.org/wiki/Garden_gnome_liberationists "bkeepers
I ♥ ⚘
I like writing software because I like gardening. https://www.flickr.com/photos/91663396@N00/7080354723/
Open Source is like community gardening. https://www.flickr.com/photos/antoinettevanderieth/8753016923
P L A N C U L T I V
A T E S O W W A T E R M U L C H P R U N E H A R V E S T
M Y G A R D E N S
M Y G A R D E N S dotenv
M Y G A R D E N S dotenv
delayed_job
M Y G A R D E N S dotenv
delayed_job qu
M Y G A R D E N S dotenv
delayed_job qu tinder
M Y G A R D E N S dotenv
delayed_job qu tinder rosie
M Y G A R D E N S dotenv
delayed_job qu tinder rosie github-notifications
Large open source projects are like farming… https://www.flickr.com/photos/messycupcakes/7722551044/
…or land management. https://www.flickr.com/photos/47096398@N08/7462466876
Steve Klabnik http://words.steveklabnik.com/how-to-be-an-open-source-gardener
I’m talking about gardening
Plan https://www.flickr.com/photos/btobin/4456582998
What are your motivations?
The ultimate goal is to produce a harvest.
How much time can you dedicate? https://www.flickr.com/photos/ugardener/3553160869
Open source is hard work, but it often leads to
better software. https://www.flickr.com/photos/ugardener/3553160869
Cultivate https://www.flickr.com/photos/librariesrock/3760104913
Pick a good name.
What makes a name “good”? 1. Searchable 2. Memorable 3.
Suggestive 4. Not too boring 5. Not too weird 6. Not too trendy
None
Q U
Q U OMG, a Better Background Queue!
O M G B B Q OMG, a Better Background
Queue!
Write documentation.
one-line description longer explanation What makes a good README?
one-line description longer explanation how to install it
one-line description longer explanation how to install it how to
use it
how to contribute
See github.com/trending for examples
Choose a license. https://www.flickr.com/photos/andrewprickett/6649056779/
ChooseALicense.com
Follow conventions. https://www.flickr.com/photos/cccpxokkeu/8580600558/
Sow https://www.flickr.com/photos/nateswartphoto/5623220460
This is the easiest part.
Tell the world about it.
Blog about it.
!
Now, ready to work?
Water http://en.wikipedia.org/?title=Talk:Rainbow/Archive_1#mediaviewer/File:Self_Made_Rainbow.JPG
Consistency and diligence are crucial.
Follow your own contribution guidelines.
Invite people in.
Always be hospitable.
Give it time. https://www.flickr.com/photos/onegiantleap/4124211492
Mulch https://www.flickr.com/photos/chiotsrun/3247946933
Only add features that you want to maintain. https://www.flickr.com/photos/ajbatac/7179488176
Tests guard against erosion.
Continuous integration gives contributors confidence.
D O N ’ T F E E D T
H E T R O L L S https://www.flickr.com/photos/eldave/3332622539
Prune https://www.flickr.com/photos/jeremyhiebert/5454990146
Remove features that you don’t want to maintain.
Split them into separate repositories.
dotenv-deployment
Use semantic versioning https://www.flickr.com/photos/jimfischer/8384524415 1.2.6 minor patch major semver.org
Use semantic versioning https://www.flickr.com/photos/jimfischer/8384524415 1.2.6 minor patch major } backwards-compatibile
bug fixes semver.org
Use semantic versioning https://www.flickr.com/photos/jimfischer/8384524415 1.2.6 minor patch major } backwards-compatible
functionality semver.org
Use semantic versioning https://www.flickr.com/photos/jimfischer/8384524415 1.2.6 minor patch major } incompatible
API changes semver.org
Deprecate features in minor versions, remove them in major versions
https://www.flickr.com/photos/jimfischer/8384524415
1.x.x https://www.flickr.com/photos/jimfischer/8384524415 if using_deprecated_feature? warn "[DEPRECATION] This feature has been
" + "deprecated and will be removed in 2.0.", caller[0] # deprecated functionality here end
Keep a changelog. http://bit.ly/1mfVB3d
Changelog.md http://bit.ly/1mfVB3d
Harvest
Give it away when it stops being fun.
…unless you still depend on it.
Clearly state the project’s status.
G R I T
None
None
None
Learn from your mistakes.
“For the record, I am a terrible open source maintainer.
— @bkeepers - 7 Jan 2014
Thank You " bkeepers