AND
and OR
, but that seems like overkill
license
field in the manifest (text field, optional, and can be empty)license
field in each contract source file (text field, optional, and can be empty)AND
or OR
"extension" (if necessary, probably AND
) and also determine if a license conflict exists during audit
npm audit
does license conflict checks)
it is up to various end users of manifests to define how individual source file licenses "extend" the top level
. I’m by no means a lawyer so I could be wrong, but to me, it seems like the spec should at least address best practice for packages that have licenses defined in the top-level ”meta”
object, and for individual sources. Which, as of now is The license field declares the license associated with this package. This value should conform to the SPDX format. Packages should include this field. If a file Source Object defines its own license, that license takes precedence for that particular file over the package-scoped meta license.
it is up to various end users of manifests to define how individual source file licenses "extend" the top level
. I’m by no means a lawyer so I could be wrong, but to me, it seems like the spec should at least address best practice for packages that have licenses defined in the top-level”meta”
object, and for individual sources. Which, as of now isThe license field declares the license associated with this package. This value should conform to the SPDX format. Packages should include this field. If a file Source Object defines its own license, that license takes precedence for that particular file over the package-scoped meta license.
So we have two options:
AND
or OR
) the project-wide license”meta”
license. Leaving it up to individual tooling / frameworks to decide if they want to include a license for a SourceObject (eg. solc metadata including ”license”
in a SourceObject would still be a valid ethpm package).
”license”
field for a SourceObject. On the other hand, this introduces complexities regarding which license takes precedence as @fubuloubu elaborated upon.
”license”
field in the top-level ”meta”
object and a SourceObject (which I can update shortly)?
type
of a source file, The field **should** be one
of the following values: “jsonabi", “solidity", “vyper".
I interpret this as the list is non-exhaustive, and any string is a valid type, but I’m happy to include solidity-ast-json
as one of the suggested types if you give a :thumbsup: - also I can update ”jsonabi”
to ”abi-json”
if that is the preferred identifier.