-
-
Notifications
You must be signed in to change notification settings - Fork 562
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
RFC: Improve License Clarity Scoring #2861
Comments
@LeChasseur FYI, we would be interested in your take on this! |
@DennisClark the only edits I made were to add tags for titles and bold |
The idea sounds good to me. If possible I wouldn't give the same weight to NOTICE, LICENSE, COPYING or README if more of one of these categories contains license informations. To my experience most projects use LICENSE or COPYING. The README contains sometimes additional information that isn't a declaration of the applicable license. I would give such information less weight if LICENSE or COPYING exists. |
Signed-off-by: Jono Yang <jyang@nexb.com>
Signed-off-by: Jono Yang <jyang@nexb.com>
* Show boolean flags in scoring_elements to show what license judgement criteria was used Signed-off-by: Jono Yang <jyang@nexb.com>
Signed-off-by: Jono Yang <jyang@nexb.com>
I've began making modifications to the license clarity scoring, which I have created as a separate plugin for now. You can test out the new license clarity scoring by using the
I had some questions about how the following criteria should be handled. Ambiguous compound licensing
Conflicting license categories
|
Signed-off-by: Jono Yang <jyang@nexb.com>
Signed-off-by: Jono Yang <jyang@nexb.com>
regarding "Ambiguous ..." If more than one license is mentioned in a paragraph of text, and there is no "OR" and no "AND", then we have ambiguity. I realize that we may need to refine that after some testing. The main culprit is the mention of a "dual" or "Dual" license without any qualifier to indicate if it is a choice or not. regarding "Conflicting..." It is nearly impossible that all file-level licenses will get stated at the top level, so we don't want to evaluate that anymore. Yes, "it enough to check that the file-level licenses do not conflict with the top-level licenses, even if the file-level licenses are not stated at the top-level". It does not necessarily indicate a "problem" since the file-level license with conflicting licenses might be optionally deployed (tests, docs, etc.) but it does take away from license clarity. So the example in your question is a case of diminished clarity, but it is not necessarily a serious conflict. |
Signed-off-by: Jono Yang <jyang@nexb.com>
Signed-off-by: Jono Yang <jyang@nexb.com>
* Show boolean flags in scoring_elements to show what license judgement criteria was used Signed-off-by: Jono Yang <jyang@nexb.com>
Signed-off-by: Jono Yang <jyang@nexb.com>
Signed-off-by: Jono Yang <jyang@nexb.com>
Signed-off-by: Jono Yang <jyang@nexb.com>
Signed-off-by: Jono Yang <jyang@nexb.com>
* If a package has conflicting or ambigous licenses and the score is already zero, do not subtract from the score Signed-off-by: Jono Yang <jyang@nexb.com>
* The classify plugin was determining the types of key files by checking the start or end of file names to see if they are a special type of file. However, the code checked the full filename with extension. This would cause us to not classify certain key files properly. Signed-off-by: Jono Yang <jyang@nexb.com>
* Fix logic in check_ Signed-off-by: Jono Yang <jyang@nexb.com>
* Fix logic in check_for_license_ambiguity * Removed unused test file Signed-off-by: Jono Yang <jyang@nexb.com>
* Add test for license ambiguity * Remove previous license clarity scoring plugin Signed-off-by: Jono Yang <jyang@nexb.com>
* Add test for license ambiguity * Remove previous license clarity scoring plugin Signed-off-by: Jono Yang <jyang@nexb.com>
* Add test for license ambiguity * Remove previous license clarity scoring plugin Signed-off-by: Jono Yang <jyang@nexb.com>
* Add test for license ambiguity * Remove previous license clarity scoring plugin Signed-off-by: Jono Yang <jyang@nexb.com>
At this stage I think we are mostly feature complete with the code merged in develop and is ready to test and use there. |
Next step will be to deprecate the old license scoring |
The new license clarity scoring changes have been merged into develop. |
Replace the current license clarity scoring, which was originally associated with the Clearly Defined project, with the following structure:
Proposed Element Definitions
License Clarity
License Clarity is a set of criteria that indicate how clearly, comprehensively and accurately a software project has defined and communicated the licensing that applies to the project software. Note that this is not an indication of the license clarity of any software dependencies.
Score
The license clarity score is a value from 0-100 calculated by combining the weighted values determined for each of the scoring elements: Declared license, Identification precision, License texts, Declared copyright, Ambiguous compound licensing, and Conflicting license categories.
Declared license
When true, indicates that the software package licensing is documented at top-level or well-known locations in the software project, typically in a package manifest, NOTICE, LICENSE, COPYING or README file. Scoring Weight = 40.
Identification precision
Identification precision indicates how well the license statement(s) of the software identify known licenses that can be designated by precise keys (identifiers) as provided in a publicly available license list, such as the ScanCode LicenseDB, the SPDX license list, the OSI license list, or a URL pointing to a specific license text in a project or organization website, Scoring Weight = 40.
License texts
License texts are provided to support the declared license expression in files such as a package manifest, NOTICE, LICENSE, COPYING or README. Scoring Weight = 10.
Declared copyright
When true, indicates that the software package copyright is documented at top-level or well-known locations in the software project, typically in a package manifest, NOTICE, LICENSE, COPYING or README file. Scoring Weight = 10.
Ambiguous compound licensing
When true, indicates that the software has a license declaration that makes it difficult to construct a reliable license expression, such as in the case of multiple licenses where the conjunctive versus disjunctive relationship is not well defined. Scoring Weight = -10 (note negative weight).
Conflicting license categories
When true, indicates the declared license expression of the software is in the permissive category, but that other potentially conflicting categories, such as copyleft and proprietary, have been detected in lower level code. Scoring Weight = -20 (note negative weight).
The text was updated successfully, but these errors were encountered: