Tending Your Open Source Garden

Tending Your Open Source Garden

20bfe76b3d6105641f879fe45cfc9272?s=128

Brandon Keepers

June 26, 2014
Tweet

Transcript

  1. http://commons.wikimedia.org/wiki/File:Cress_keyboard-3_sprouting_other_side.jpg Garden @BKEEPERS TENDING YOUR OPEN SOURCE !

  2. http://en.wikipedia.org/wiki/Garden_gnome_liberationists "bkeepers

  3. I ♥ ⚘

  4. I like writing software because I like gardening. https://www.flickr.com/photos/91663396@N00/7080354723/

  5. Open Source is like community gardening. https://www.flickr.com/photos/antoinettevanderieth/8753016923

  6. 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
  7. M Y G A R D E N S

  8. M Y G A R D E N S dotenv

  9. M Y G A R D E N S dotenv

    delayed_job
  10. M Y G A R D E N S dotenv

    delayed_job qu
  11. M Y G A R D E N S dotenv

    delayed_job qu tinder
  12. M Y G A R D E N S dotenv

    delayed_job qu tinder rosie
  13. M Y G A R D E N S dotenv

    delayed_job qu tinder rosie github-notifications
  14. Large open source projects are like farming… https://www.flickr.com/photos/messycupcakes/7722551044/

  15. …or land management. https://www.flickr.com/photos/47096398@N08/7462466876

  16. Steve Klabnik http://words.steveklabnik.com/how-to-be-an-open-source-gardener

  17. I’m talking about gardening

  18. Plan https://www.flickr.com/photos/btobin/4456582998

  19. What are your motivations?

  20. The ultimate goal is to produce a harvest.

  21. How much time can you dedicate? https://www.flickr.com/photos/ugardener/3553160869

  22. Open source is hard work, but it often leads to

    better software. https://www.flickr.com/photos/ugardener/3553160869
  23. Cultivate https://www.flickr.com/photos/librariesrock/3760104913

  24. Pick a good name.

  25. What makes a name “good”? 1. Searchable 2. Memorable 3.

    Suggestive
 4. Not too boring 5. Not too weird 6. Not too trendy
  26. None
  27. Q U

  28. Q U OMG, a Better Background Queue!

  29. O M G B B Q OMG, a Better Background

    Queue!
  30. Write documentation.

  31. one-line description longer explanation What makes a good README?

  32. one-line description longer explanation how to install it

  33. one-line description longer explanation how to install it how to

    use it
  34. how to contribute

  35. See github.com/trending for examples

  36. Choose a license. https://www.flickr.com/photos/andrewprickett/6649056779/

  37. ChooseALicense.com

  38. Follow conventions. https://www.flickr.com/photos/cccpxokkeu/8580600558/

  39. Sow https://www.flickr.com/photos/nateswartphoto/5623220460

  40. This is the easiest part.

  41. Tell the world about it.

  42. Blog about it.

  43. !

  44. Now, ready to work?

  45. Water http://en.wikipedia.org/?title=Talk:Rainbow/Archive_1#mediaviewer/File:Self_Made_Rainbow.JPG

  46. Consistency and diligence are crucial.

  47. Follow your own contribution guidelines.

  48. Invite people in.

  49. Always be hospitable.

  50. Give it time. https://www.flickr.com/photos/onegiantleap/4124211492

  51. Mulch https://www.flickr.com/photos/chiotsrun/3247946933

  52. Only add features that you want to maintain. https://www.flickr.com/photos/ajbatac/7179488176

  53. Tests guard against erosion.

  54. Continuous integration gives contributors confidence.

  55. D O N ’ T F E E D T

    H E T R O L L S https://www.flickr.com/photos/eldave/3332622539
  56. Prune https://www.flickr.com/photos/jeremyhiebert/5454990146

  57. Remove features that you don’t want to maintain.

  58. Split them into separate repositories.

  59. dotenv-deployment

  60. Use semantic versioning https://www.flickr.com/photos/jimfischer/8384524415 1.2.6 minor patch major semver.org

  61. Use semantic versioning https://www.flickr.com/photos/jimfischer/8384524415 1.2.6 minor patch major } backwards-compatibile

    bug fixes semver.org
  62. Use semantic versioning https://www.flickr.com/photos/jimfischer/8384524415 1.2.6 minor patch major } backwards-compatible

    functionality semver.org
  63. Use semantic versioning https://www.flickr.com/photos/jimfischer/8384524415 1.2.6 minor patch major } incompatible

    API changes semver.org
  64. Deprecate features in minor versions, remove them in major versions

    https://www.flickr.com/photos/jimfischer/8384524415
  65. 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
  66. Keep a changelog. http://bit.ly/1mfVB3d

  67. Changelog.md http://bit.ly/1mfVB3d

  68. Harvest

  69. Give it away when it stops being fun.

  70. …unless you still depend on it.

  71. Clearly state the project’s status.

  72. G R I T

  73. None
  74. None
  75. None
  76. Learn from your mistakes.

  77. “For the record, I am a terrible open source maintainer.

    — @bkeepers - 7 Jan 2014
  78. Thank You " bkeepers