Publish with an open license
An open and well known license makes it possible for anyone to see the code in order to understand how it works, to use it freely and to contribute to the codebase. This enables a vendor ecosystem to emerge around the codebase.
Clearly indicating the license for each file within a codebase facilitates correct reuse and attribution of parts of a codebase.
- All code and documentation MUST be licensed such that it may be freely reusable, changeable and redistributable.
- Software source code MUST be licensed under an OSI-approved or FSF Free/Libre license.
- All code MUST be published with a license file.
- Contributors MUST NOT be required to transfer copyright of their contributions to the codebase.
- All source code files in the codebase SHOULD include a copyright notice and a license header that are machine-readable.
- Having multiple licenses for different types of code and documentation is OPTIONAL.
How to test
- Confirm that the codebase is clearly licensed.
- Confirm that the license for the source code is on the OSI-approved or FSF Free/Libre license list and the license for documentation conforms to the Open Definition.
- Confirm that the licenses used in the codebase are included as files.
- Confirm that contribution guidelines and repository configuration do not require transfer of copyright.
- Check for machine-readable license checking in the codebase continuous integration tests.
Public policy makers: what you need to do
- Develop policy that requires code to be open source.
- Develop policy that disincentivizes non-open source code and technology in procurement.
Managers: what you need to do
- Only work with open source vendors that deliver their code by publishing it under an open source license.
- Beware that even though Creative Commons licenses are great for documentation, licenses that stipulate Non-Commercial or No Derivatives are NOT freely reusable, changeable and redistributable and don’t fulfill these requirements.
Developers and designers: what you need to do
- Add a new
licensefile to every new codebase created.
- Add a copyright notice and a license header to every new source code file created.
- When code is being reused by the codebase, make sure that it has a license that is compatible with the license or licenses of the codebase.
- Open source definition by the Open Source Initiative, all open source licenses meet this definition.
- Animated video introduction to Creative Commons by Creative Commons Aotearoa New Zealand.
- REUSE Initiative specification by Free Software Foundation Europe for unambiguous, human-readable and machine-readable copyright and licensing information.
- SPDX License List by the Linux Foundation with standardized, machine-readable abbreviations for most licenses.