You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: license expression details and properties - text attachment, licensing, etc (#599)
As discussed via #549, this PR adds new structures to allow documenting
the licensing and "properties" of SPDX expressions
As discussed via #554, this PR adds new structures to allow documenting
the license texts for SPDX expressions' individual parts.
----
TODO
- [x] agree on data models & finalize examples
- [x] write the schemata
- [x] write the spec
- [x] write a proper summary for this PR
----
- fixes#554
- fixes#549
// Specifies the details and attributes related to a software license.
437
+
// It must be a valid SPDX license expression, along with additional properties such as license acknowledgment.
438
+
messageLicenseExpressionDetailed {
439
+
440
+
// This document specifies the details and attributes related to a software license identifier. An SPDX expression may be a compound of license identifiers.
441
+
// The `license_identifier` field serves as the key that identifies each record. Note that this key is not required to be unique, as the same license identifier could apply to multiple, different but similar license details, texts, etc.
442
+
messageExpressionDetails {
443
+
// A valid SPDX license identifier. Refer to https://spdx.org/specifications for syntax requirements.
444
+
// This field serves as the primary key, which uniquely identifies each record.
445
+
// Example values:
446
+
// - "Apache-2.0",
447
+
// - "GPL-3.0-only WITH Classpath-exception-2.0"
448
+
// - "LicenseRef-my-custom-license"
449
+
stringlicense_identifier=1;
450
+
// An optional identifier which can be used to reference the license elsewhere in the BOM. Uniqueness is enforced within all elements and children of the root-level bom element.
451
+
optionalstringbom_ref=2;
452
+
// An optional way to include the textual content of the license.
453
+
optionalAttachedTexttext=3;
454
+
// The URL to the license file. If specified, a 'license' externalReference should also be specified for completeness
455
+
optionalstringurl=4;
456
+
}
457
+
458
+
// A valid SPDX license expression. Refer to https://spdx.org/specifications for syntax requirements.
459
+
// Example values:
460
+
// - "Apache-2.0 AND (MIT OR GPL-2.0-only)",
461
+
// - "GPL-3.0-only WITH Classpath-exception-2.0"
462
+
stringexpression=1;
463
+
// Licensing details describing the licensor/licensee, license type, renewal and expiration dates, and other important metadata
464
+
// Details for parts of the `expression`.
465
+
repeatedExpressionDetailsdetails=2;
466
+
// An optional identifier which can be used to reference the license elsewhere in the BOM. Uniqueness is enforced within all elements and children of the root-level bom element.
467
+
optionalstringbom_ref=3;
468
+
// Declared licenses and concluded licenses represent two different stages in the licensing process within software development. Declared licenses refer to the initial intention of the software authors regarding the licensing terms under which their code is released. On the other hand, concluded licenses are the result of a comprehensive analysis of the project's codebase to identify and confirm the actual licenses of the components used, which may differ from the initially declared licenses. While declared licenses provide an upfront indication of the licensing intentions, concluded licenses offer a more thorough understanding of the actual licensing within a project, facilitating proper compliance and risk management. Observed licenses are defined in `@.evidence.licenses`. Observed licenses form the evidence necessary to substantiate a concluded license.
// Licensing details describing the licensor/licensee, license type, renewal and expiration dates, and other important metadata
471
+
optionalLicensinglicensing=5;
472
+
// Specifies optional, custom, properties
473
+
repeatedPropertyproperties=6;
474
+
}
475
+
434
476
// Declared licenses and concluded licenses represent two different stages in the licensing process within software development. Declared licenses refer to the initial intention of the software authors regarding the licensing terms under which their code is released. On the other hand, concluded licenses are the result of a comprehensive analysis of the project's codebase to identify and confirm the actual licenses of the components used, which may differ from the initially declared licenses. While declared licenses provide an upfront indication of the licensing intentions, concluded licenses offer a more thorough understanding of the actual licensing within a project, facilitating proper compliance and risk management. Observed licenses are defined in `@.evidence.licenses`. Observed licenses form the evidence necessary to substantiate a concluded license.
0 commit comments