Open source software
Let's say I have an experiment or analysis code that I want to share with the world. However, I want to get acknowledgement and I don't want to reply to all separate emails asking for it. How to go about it? Create an open source project!
See also:
- FAIR software recommendations
- Open source guide
1. Create a github repository
If you want to know more about how github works, check out the github chapter.
- Choose a recognizable name (check for projects with a similar name!)
- Choose a public repository
- Initialize a readme.md file
2. Include information files
- Write a comprehensive readme file: what does the repository contain? What is the background? Can people contribute and how can people use your software? (You can also write one online)
- Write contributing guidelines, if you are open to people contributing
- Write a code of conduct
- Choose a license for your project (see Github docs): this is important, because it specifies how people can use your software. MIT, Apache 2.0, and GPLv3 are the most popular open source licenses, but there are other options. You can use this license selector as well.
Read about all these steps on this website.
3. Fill up the repository with your software
- use consistent code conventions and clear function/method/variable names
- comment your code!
- remove sensitive materials in the revision history, issues, or pull requests
- use logical file names and structure
- check whether your software is of sufficient quality
4. Make your software citable
Despite you having specified how people can reuse your software (through the license), your software is not yet citable using a persistent identifier. Unfortunately, Github does not offer the possibility to create a persistent identifier for a repository directly. However, it is possible to make a release (a snapshot of the repository at a certain point in time) on Github that you can then publish on Zenodo, which will create a DOI. Click here to see how to do this.
5. Register your software in a community registry
This allows others to easily find and reuse your software or code. Find a registry here.