Maintaining Open Source While Maintaining Your Sanity

SimonS

Simon MacDonald

simonmacdonald.com

@macdonst

May You Live In Interesting Times

- Chinese Curse

May You Maintain A Popular Open Source Project

- Developer Curse

Setting Up Your Project

Include a README

  • Overview
  • Getting Started Instructions
  • An Invitation to Contribute

Have a CONTRIBUTING doc

  • Code of Conduct
  • How to send a Pull Request
  • Style Guide

Add a License

Any License

Decide on How to Handle

Issues vs Question

  • Everything in GitHub Issues
  • OR 
    Bugs only in GitHub Issues,
    Questions on StackOverflow
    or a Slack Channel

Speaking of Issues

Create an Issue Template

What Goes in a Good Issue Template?

  • Ask if the user has searched past issue
  • Expected Behaviour
  • Actual Behaviour
  • Reproduction Scenario
    • Version
    • Sample Code
    • Logs

Triaging Issues

Submitter doesn't follow issue template!

Submitter asks a question that has been answered before!!

Requested an Update 2 Months Ago and No Reply

Submitter Asks a Dumb/Obvious Question!!!

docs

Submitter is asking for new functionality

enhancement

Issue template filled 

and it's reproducible!

Mark as a bug

People are more difficult than code

Set Boundaries

Be respectful, empathic but firm

PR || STFU

What About Pull Requests?

You Should Have a Pull Request Template

  • Description
  • Related Issue
  • Type of Change:
    • Bug fix
    • New feature
    • Breaking Change
  • Checklist
    • Follows code style
    • Doc change
    • Read CONTRIBUTING
    • Added tests
    • All tests pass

You Don't Have To Merge in Every Pull Request

Building Community

Make it easy for people to contribute

  • Identify beginner bugs
  • Document the heck out of things
  • Give people other ways to contribute besides writing code.

Turn contributors into maintainers

Thank People For Their Efforts

Tests

  • Gotta Have Them
  • Not a Lot
  • Mostly for Regression

Documentation

  • Bare minimum start with a README
  • Enhance with markdown docs that are linked from the README
  • Graduate to docs for GitHub pages

Releasing

  • Release on every commit
  • Release on a time based schedule

Automate Your Release

Remember

Resources

Further Reading

Maintaining Open Source While Maintaining Your Sanity

By Simon MacDonald

Maintaining Open Source While Maintaining Your Sanity

Adobe Open Source Summit - September 12th, 2016

  • 2,640