(Culture Goal) Promote open source development best practices
OSS projects have a special, bazaar-like modus operandi. In order to allow and foster this collaboration and mindset, some practices are recommended that allow for collaborative, decentralised development to happen nicely.
This activity is about defining, actively promoting and implementing OSS best practices within the company.
As a starting point the following topics might be considered for attention:
- Community documents
- Promote and implement controlled reuse
- Providing a complete and up-to-date product documentation
- Configuration Management: git workflows, collaborative patterns.
- Release management: release early & release often, stable vs development versions, etc.
The list of best practices depends on the context and domain of the program, and should be re-evaluated regularly in a continuous improvement manner. Practices should be monitored and regularly assessed to track down progress.
Make sure that all projects within the company propose the following documents:
- README -- quick description of the project, how to interact, links to resources.
- Contributing -- introduction for people willing to contribute.
- Code Of Conduct -- What is acceptable -- or not -- as behaviour within the community.
- Licence -- the default licence of the repository.
Reuse best practices
Although it heavily depends on the OSS common-knowledge among the team, training people and creating processes that enforce these practices is always beneficial. It is even more important when:
- potential users and contributors are not known,
- developers are not used to open source development.
- Question: Do all projects provide the required information for people to use and contribute to the project?
- Question: is there an easy-to-use, affordable procedure for projects to check their repositories for community and legal documents?
- Reuse Tool from https://reuse.software
- Scancode has the ability to list all community and legal documents in the repository: see feature description.
- GitHub has a nice feature to check for missing community documents. It can be found in the Repository page > "Insights" > "Community". Here is an example.
- Train people about OSS reuse (as consumers) and ecosystems (as contributors).
- Implement reuse.software as in #14 (closed)
- Setup a process to manage legal risks associated with reuse and contributions.
- Explicitly encourage people to contribute to external projects.
- Provide a template or official guidelines for project structure.
- Setup automated checks to make sure that all projects comply with the guidelines.
- https://reuse.software official web site.
- OW2 MRL list of best practices
- GitHub's community guidelines
- An example of configuration management best practices using github.
Add links to resources here