The development of Open Source projects is more than just coding and releasing software. Nowadays, project maintainers have to pay attention to a number of configuration and information files, such as license, contribution guidelines, code of conduct or security policies, among others. The definition of these files becomes a real burden, and frequently they are overlooked and not included in the project, thus affecting its sustainability. Furthermore, the location and format of these files usually varies in each code-hosting platform. For instance, GitHub proposes a set of recommendations to locate license and code of conduct files.
To alleviate this task, I’ve been working on a template repository with best practices to kick-start your GitHub project. The template currently provides indications (and templates) for:
- Project Description, which is a short text which tells your community about the work you are developing.
- Contributing guidelines, which describe how people can help with the development of your project. Is the project developed by a single contributor? Can anyone jump in and help on the development? How to send contributions?
- Code of Conduct, which establishes the set of behavioral rules for the community. How harassment cases will be resolved? To whom you have to contact if you feel attacked?
- Governance rules, which define the set of norms which are applied to make decisions in your project, and your community
- License, which sets the legal framework for your project.
- Code owners in your project, who are those contributors that are responsible for code in your project
- Templates for your issues/pull requests
- Security policy, which describes how to report security vulnerabilities in your project.
- Funding file, which helps your community to know how to support your work
- Citation file, which describes how to cite your work.
Each file includes a very first version, which you can adapt to your needs. Some of them also include references to external resources for inspiration.
The main objective is to provide a nice scaffolding solution for any project, where developers would only have to use the repository as a template and adapt and fill the gaps in the templates. You can find the template and the instructions to use it here.
We invite you to explore the template and give it a try. And if you have any recommendations, modifications or comments, do not hesitate to create an issue! (following the process in the contributing guidelines and the templates I provide in the same repo 😉 )
Associate Professor at Universitat Oberta de Catalunya and researcher at SOM Research Team, in Barcelona, Spain, he likes investigating on how software is developed, in particular how open-source software is developed and how people collaboratively drives the creation process. He has been working mainly in the area of programming & domain-specific languages, modeling, modernization and model-driven engineering.