Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Maintaining Open Source Projects

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

Maintaining Open Source Projects

Avatar for Benjamin Fleischer

Benjamin Fleischer

November 06, 2014
Tweet

More Decks by Benjamin Fleischer

Other Decks in Programming

Transcript

  1. M A I N TA I N I N G

    O P E N S O U R C E P R O J E C T S D E V @ B E N J A M I N F L E I S C H E R . C O M T W I T T E R . C O M / H A Z U L A G I T H U B . C O M / B F 4 Ruby ^
  2. A L L Y O U R C O D

    E A R E B E L O N G T O U S A . K . A .
  3. L E T ’ S TA L K A B

    O U T • Being a good code citizen • Being a good code curator • Managing problems in the Ruby ecosystem • Ways you can get involved
  4. W H E N I T D O E S

    N ’ T W O R K B E I N G A G O O D C O D E C I T I Z E N • “It crashes” • “It’s missing a feature” • “There is no/missing documentation”
  5. W H E N I T D O E S

    N ’ T W O R K B E I N G A G O O D C O D E C I T I Z E N • Give up • Complain ( or ‘’ an issue) • Write ugly hack • Blog about it
  6. G I V E B A C K ! B

    E I N G A G O O D C O D E C I T I Z E N • Report an issue or ask on the mailing list • Submit a Pull Request • Add documentation or helpful information to the wiki • Email / bug ‘maintainers’
  7. P R O F I T ! B E I

    N G A G O O D C O D E C I T I Z E N • Learn to write a good bug report • Read a lot of source code • Meet people • Get feedback • Feel good • Feel connected
  8. A P P E N D I X : J

    A R G O N B E I N G A G O O D C O D E C I T I Z E N • Semantic Versioning: • Major / Minor / Patch • Breaking changes, new functionality, bug fix. • Pessimistic versioning • ~> 1.1 is a contract to not have breaking changes for all 1.x, but all bets off at 2.x.
  9. A P P E N D I X : I

    N T E R A C T I N G B E I N G A G O O D C O D E C I T I Z E N Taking Over Someone Else’s Open Source Projects Daniel Doubrovkine http://www.confreaks.com/videos/4166-gogaruco2014-taking-over-someone-else- s-open-source-projects
  10. A P P E N D I X : G

    I T H U B B E I N G A G O O D C O D E C I T I Z E N Just go to http://help.exercism.io/git-workflow.html It is awesome! Also, see http://blog.quickpeople.co.uk/2013/07/10/useful- github-patterns/
  11. # R U B Y F R I E N

    D S A N E C D O T E
  12. # R U B Y F R I E N

    D S A N E C D O T E
  13. # C O N F T W E E T

    S ? A N E C D O T E
  14. # F R I D AY H U G A

    N E C D O T E
  15. H A P P Y PAT H C O D

    E C U R A T I N G • Be responsive • Be nice • Be helpful • Invite others
  16. R E S P O N S I B L

    E C U R A T I O N Taking Over Someone Else’s Open Source Projects Daniel Doubrovkine http://www.confreaks.com/videos/4166-gogaruco2014-taking-over-someone-else- s-open-source-projects
  17. M A I N TA I N I N G

    G E M S : R U B Y C O N F 2 0 1 3
  18. M A I N TA I N I N G

    G E M S : G O G A R U C O 2 0 1 4
  19. M A I N TA I N I N G

    G E M S : R U B Y C O N F 2 0 1 5
  20. Taking Ownership • 1) Get repository (GitHub) commit / ownership

    • Need GitHub username. Add to access group. • 2) Get rubygems.org push access • Need email for rubygems.org account • gem <name> owner -a dev@benjaminfleischer.com • 3) Mailing List? Twitter account? IRC?
  21. RubyGems.org can only do so much. It’s a lot of

    work. http://help.rubygems.org/discussions/questions/122-abandoned-gem-requesting-maintainership
  22. The Twitter Gem and Ruby Hero Erik Michaels-Ober Further Reading:

    http://rubyrogues.com/127-rr-erik-michaels-ober/ grep for maintain ERIK: It was basically just a giant yak shave. I think I just started working on it and then I said… So I … and then just <yadda yadda> so I just became the de facto maintainer of that. KATRINA: What’s the most challenging aspect of maintaining a big popular project like the twitter gem? ERIK: I don’t know. To me, I love it.
  23. P L E A S E B E PAT I

    E N T, W E A R E H U M A N B E I N G A G O O D C O D E C I T I Z E N Taking Over Someone Else’s Open Source Projects Daniel Doubrovkine http://www.confreaks.com/videos/4166-gogaruco2014-taking-over-someone-else- s-open-source-projects
  24. A D D A L I C E N S

    E G E T T I N G I N V O LV E D
  25. F I X A D E P E N D

    E N C Y S P E C I F I C AT I O N G E T T I N G I N V O LV E D
  26. F I X A T Y P O G E

    T T I N G I N V O LV E D
  27. I M P R O V E D O C

    U M E N TAT I O N G E T T I N G I N V O LV E D
  28. D O A S I M P L E C

    H O R E G E T T I N G I N V O LV E D
  29. C R E AT E A C H A N

    G E L O G G E T T I N G I N V O LV E D
  30. G E T T I N G I N V

    O LV E D W O R K W I T H M E ! • RubyFriends.com #RubyFriends Twitter scraper • https://github.com/rubyrogues/rubyfriends • PairProgramming #PairWithMe • https://github.com/avdi/ppwm and • https://github.com/rubyrogues/ppwm-matcher • Command-line metrics tool • https://github.com/metricfu/metric_fu • https://github.com/colszowka/simplecov • Documenting RubyGems • https://github.com/rubygems/guides
  31. R E F E R E N C E S

    L I N K S Basic Tools and Workflows: GitHub • https://help.github.com/articles/using-pull-requests/ • http://help.exercism.io/git-workflow.html • http://blog.quickpeople.co.uk/2013/07/10/useful-github-patterns/ • https://github.com/Kikobeats/awesome-github • https://github.com/rafalchmiel/friction A tool to get rid of common sources of contributor friction Git • https://sandofsky.com/blog/git-workflow.html • http://nuclearsquid.com/writings/git-tricks-tips-workflows/ • http://help.exercism.io/git-workflow.html • https://www.mediawiki.org/wiki/Gerrit/Advanced_usage
  32. R E F E R E N C E S

    L I N K S Something simple to do: • Gemspec http://www.benjaminfleischer.com/2013/08/21/psa-gem-versions/ • Look in the gemspec for a gem you’re using for “~> X.Y.Z” • Licenses http://www.benjaminfleischer.com/2013/07/12/make-the-world-a- better-place-put-a-license-in-your-gemspec/ • Gems missing a license in their gemspec: https://github.com/search? o=asc&q=commenter%3Abf4+author%3Abf4+type%3Aissue+state %3Aopen+%22License+missing+from+gemspec%22+in %3Atitle&ref=searchresults&s=updated&type=Issues
  33. R E F E R E N C E S

    L I N K S Something simple to do: • Document • Rails: https://github.com/rails/rails/issues/16576 • Fixing ruby docs https://www.youtube.com/watch?v=0UkZVN7EL1k • http://madhatted.com/2014/11/5/contribute-to-ember-js-2-0-no-coding- required • Document: http://www.docsdoctor.org/ • Fix Ruby warnings you see when running code • `export RUBYOPT=-w` OR run with `ruby -w file.rb` OR `ruby -w -S bundle`
  34. R E F E R E N C E S

    L I N K S Contributing to open source • http://code.dblock.org/i-want-to-contribute-to-open- source-where-do-i-begin • http://www.softwarequalityconnection.com/2012/03/14- ways-to-contribute-to-open-source-without-being-a- programming-genius-or-a-rock-star/ • https://guides.github.com/overviews/os-contributing/ • https://guides.github.com/activities/contributing-to- open-source/index.html • http://jumpstartlab.com/news/archives/2013/04/15/your- first-pull-request • http://www.justinweiss.com/emails/2014-10-31-the- easiest-way-to-get-into-open-source.html • http://felixge.de/2013/03/11/the-pull-request-hack.html • http://rubyrogues.com/051-rr-getting-started-with-open- source/
  35. R E F E R E N C E S

    L I N K S Contributing to Rails • http://blog.steveklabnik.com/posts/2012-07-05-how-can-i- contribute-to-ruby-on-rails- • http://edgeguides.rubyonrails.org/ contributing_to_ruby_on_rails.html • http://www.confreaks.com/videos/2477-railsconf2013- your-first-rails-pull-request • https://speakerdeck.com/markmcspadden/ railsconf-2013-your-first-rails-pull-request?slide=31
  36. R E F E R E N C E S

    L I N K S Contributing guidelines • http://www.chiark.greenend.org.uk/~sgtatham/bugs.html “How to Report Bugs Effectively” • https://github.com/thoughtbot/guides/blob/master/ protocol/open-source/README.md • https://github.com/metricfu/metric_fu/blob/master/ CONTRIBUTING.md • https://github.com/dkubb/descendants_tracker/blob/ master/CONTRIBUTING.md • https://github.com/contribute-md/contribute-md- template • http://rubini.us/2011/10/18/contributing-to-rubinius/
  37. R E F E R E N C E S

    L I N K S Curation talks • http://confreaks.com/videos/2901-rubyconf2013- maintaining-sanity • http://www.confreaks.com/videos/4166-gogaruco2014- taking-over-someone-else-s-open-source-projects • https://speakerdeck.com/searls/the-social-coding- contract Justin Searls • https://gist.github.com/searls/ eaf8dcdd4b3a10a97694 • https://speakerdeck.com/bf4/maintaining-open- source-projects-1
  38. R E F E R E N C E S

    L I N K S Curating projects • https://github.com/rubygems/rubygems.org/issues/ 725 RFC: Add a Gem adoption status and ownership request approve/reject workflow • http://www.benjaminfleischer.com/2014/08/17/ rubygems-adoption-center/ • http://erniemiller.org/2013/11/17/anyone-interested- in-activerecord-hackery/ • http://stillmaintained.com/ • http://nikcodes.com/2013/05/10/new-contributor- jump-in/ • http://rubyrogues.com/127-rr-erik-michaels-ober/ grep for maintain
  39. R E F E R E N C E S

    L I N K S Licensing • https://aprescott.com/posts/open-source-copyright • Protect Your Code: Key Legal Considerations for the Software Developer by Daliah Saper http:// vimeo.com/106758941 • Changing license on unmaintained gem https:// github.com/ffi/ffi/issues/288 http://www.catb.org/esr/ Licensing-HOWTO.html#changing • https://github.com/bf4/gemproject/blob/master/ licenses.md • See when common licenses can be combined http:// www.dwheeler.com/essays/floss-license-slide.html
  40. R E F E R E N C E S

    L I N K S Misc • http://techblog.netflix.com/2010/12/why-we-use-and-contribute-to- open.html • http://www.commitstrip.com/en/2014/05/07/the-truth-behind-open-source- apps/ • Open Source Report Card: Fun GitHub statshttps://osrc.dfm.io/bf4/ • Pair with Me!! http://www.benjaminfleischer.com/pair • Be a Mentor! http://mentoring.devbootcamp.com/
  41. M A I N TA I N I N G

    O P E N S O U R C E P R O J E C T S D E V @ B E N J A M I N F L E I S C H E R . C O M T W I T T E R . C O M / H A Z U L A G I T H U B . C O M / B F 4 Ruby ^ https://speakerdeck.com/bf4/ maintaining-open-source-projects-1 Q U E S T I O N S ?