Open source software¶
Ways to contribute¶
One of the first things that come to mind contributing to a project is to add code or fix bugs or any other way that involves changing code. While improvements are a center element to advance a project, there are other ways to get involved without needing to know much about programming, or the project code structure itself:
Report bugs
Add documentation
Help others using the project
Start on issues marked as ‘good first issue’
Attend a meeting for the project (virtual or in-person)
Open source How-To guides¶
Here are some community/open-source resources for learning more about open-source software, tools and tricks for [collaborative] development, and open science in general.
-
Keywords: GitHub; tutorials; guides; reproducible; collaborative; data science; contribute; development; open-source; git
“The Turing Way is an open source community-driven guide to reproducible, ethical, inclusive and collaborative data science.”
“Our goal is to provide all the information that data scientists in academia, industry, government and the third sector need at the start of their projects to ensure that they are easy to reproduce and reuse at the end.”
-
Keywords: guides; tutorials; development
Elements of an open source project¶
Below, a few elements to get started. This sample is not even scratching the surface for the breadth and depth of options and are meant to kick things off:
README file
Let people know what your project is about. This can also include on how to setup your project for development.
Contributions guide
Give some instructions on how people can get involved with your project. GitHub healthy contributions guide
Tests
Software testing adds a quality check to your project and ensures that future changes to the code do not break existing functionality.
Packages/Documentation:
Documentation
New users or interested people to your project benefit from a well documented project and how to use it.
Platforms/Libraries:
Code Conventions
At some stage of your project, you might want to establish some conventions for coding style, so you have consistency across the library.
References/Services:
License
The legal aspect for your project. Good source to figure out the right license: https://tldrlegal.com/
Publishing your package
For people to be able to install your package from the command line via
pip
orconda
Organize your community
Platforms:
Software development environments¶
Outside a Jupyter environment, you can also manage your package or code using these development environments or sometimes also referred to as IDE’s (Integrated Development Environments)
Some choices:
-
They have free academic and open source project product licenses
Git Learning Resources¶
-
Keywords: git; interactive
A great hands on tutorial for playing with git on a “virtual” repository. Practice here before applying to your actual software!