How To Add a New License for Detection
How to add a new license for detection?
To add a new license, you first need to select a new and unique license key
(mit
and gpl-2.0
are some of the existing license keys).
The key name can contain only these symbols:
lowercase letters from a to z,
numbers from 0 to 9,
dash - and . period signs. No spaces or underscore.
The license key also has to be fewer than 50 characters (same for short_name).
We also have to add a spdx_license_key which is either a valid SPDX license key at ` The SPDX license list <https://spdx.org/licenses/>`_, or a Licenseref-scancode-<key>.
All licenses are stored as a plain text file in the src/licensedcode/data/licenses directory using their key as base for the file name. For example the filename for a license with key: mit would be mit.LICENSE.
You need to create a file with:
the text of the license saved in plain text. We usually get rid of HTML tags or other special characters. We also remove copyrights and only keep the original text as is, with the original formatting intact.
the data attributes for the license in YAML format as YAML frontmatter.
See an example license: apache-2.0.LICENSE
There are a couple of mandatory attributes:
key
spdx_license_key
short_name
name
category (Use “Unstated License” if not known)
owner (Use “Unspecified” if not known)
And more attributes which are not mandatory but always nice to have (if applicable):
other_spdx_license_keys
osi_license_key
minimum_coverage
standard_notice
notes
We want to use minimum_coverage when there are other licenses that are very similar and we want to make sure we match these licenses correctly, and notes for interesting cases of licenses with descriptions to help identify origin, similarities to other licenses, notes about the SPDX keys and others.
Some URLs:
homepage_url
text_urls
osi_url
faq_url
other_urls
Also attributes having ignorables in the license text:
ignorable_urls
ignorable_copyrights
ignorable_authors
ignorable_holders
ignorable_emails
See the src/licensedcode/data/licenses/
directory for many more examples.
Note
Add licenses in a local development installation and run scancode-reindex-licenses to make sure we reindex the licenses and this validates the new licenses.