Collaborative Development

Tools and principles for coding together

Collaborative Development


  • Codes of Conduct
  • Issues
  • Pull Requests
  • Code Reviews

Codes of Conduct


  • Establishes expectations
  • Lays out conflict resolution
  • Can help establish the tone of a community
  • Contributor covenant is a popular choice
  • Be respectful of others, practice empathy

Issues

An issue is a petition for a volunteer’s time. Make that petition compelling.


  • Provide enough information to reproduce the issue
  • Provide information about your setup
  • Be clear about your expectations of the code
  • Be patient
  • Make suggestions on how to fix, open PR if obvious

Issues: in the Wild


Take a look at a few of these issues. Do they make a compelling case?

Pull Requests

Before you start…


  • See if the project is even active
  • Read the developer documentation
  • Discuss new features

Pull Requests



flowchart LR
  A[Bug] --> AA(Issue)
  AA -- Non-obvious fix --> BB(Discuss) 
  AA -- Obvious fix --> CC[Open PR]  
  B[New Feature] --> BB
  BB -- Consensus --> CC

Code Reviews

  • Be respectful!
  • Focus on the right things
  • Reviews should be a good experience for both parties
  • Mentorship occurs in reviews
  • Be patient

Conclusions

  • Be respectful of others
  • Get feedback early on
  • Get practice with github interfaces