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