(Culture Goal) Promote open source development best practices
This activity is about defining, actively promoting and implementing open source best practices within the development teams.
As a starting point the following topics might be considered for attention:
- User and developer documentation.
- Proper organisation of the project on a publicly accessible repository.
- 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.
OSS projects have a special, bazaar-like modus operandi. In order to allow and foster this collaboration and mindset, some practices are recommended that facilitate collaborative and decentralised development and contributions from third-party developers…
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.
- License -- the default license 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.
The following verification points demonstrate progress in this Activity:
Project sets a list of open source best practices to comply with.
Project monitors its alignment with best practices.
Development team has built awareness about complying with OSS best practices.
New best practices are regularly evaluated, and an effort is made to implement them.
- The REUSE helper tool assists with making a repository conformant with the REUSE best practices. It can be included in many development processes to confirm the current status.
- 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.
- 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.
- Train people about OSS reuse (as consumers) and ecosystems (as contributors).
- Implement REUSE.software as in activity #14 (closed).
- Set up 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.
- Set up automated checks to make sure that all projects comply with the guidelines.
- OW2's list of open source best practices from the Market Readiness Levels assessment methodology.
- REUSE's official website with specification, tutorial, and FAQ.
- GitHub's community guidelines.
- An example of configuration management best practices using GitHub.