Key Points

IntroductionOpen Source Software


  • open source software is in use everywhere throughout the modern software ecosystem, particularly for research code
  • open source software allows usage of software through licensing of copyright
  • different licences may impose different obligations
  • “permissive” licences typically require some sort of acknowledgement of the original authors, but allow use in closed-source code
  • “copyleft” licences require that derived works (such as software which uses or modifies the original code) to also be open source with a compatible licence
  • assess open source software before using it
  • ensure that you comply with licences and cite code correctly

Open Sourcing Your CodeReleasing Open Source Code


  • if you decide to open source a project, be mindful of the effort required to do it well
  • you should follow software development best practices with open source software
  • documentation is important for success
  • if your are successful, you will be managing a community, and all that goes with that

Contributing to Open SourceContributing to Open Source


  • be mindful of the constraints that face developers of open source software
  • be clear to yourself on why you want to contribute to an open source project
  • follow the guidelines and conventions of any project that you are planning to work with
  • to make a contribution: make a fork of the project, clone it, and work on a branch, then push the branch and make a pull request
  • understand that your vision and the projects visions may not agree, and that contributions may not be accepted
  • consider alternatives to direct contribution to a project