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

Maintaining Open Source Projects

Maintaining Open Source Projects

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 ?