Skip to content
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

Component Licenses Gap #24

Closed
jkrech opened this issue Sep 14, 2021 · 0 comments · Fixed by #136
Closed

Component Licenses Gap #24

jkrech opened this issue Sep 14, 2021 · 0 comments · Fixed by #136
Assignees
Labels
enhancement New feature or request

Comments

@jkrech
Copy link
Member

jkrech commented Sep 14, 2021

Gaps:
Today: Single license ASCII file
Extensions:

  • one or more licenses for one or multiple components
  • click through optional
  • spdx license reference
  • display title for license file

Shadowfax Proposal:
Follow the approach already used for <conditions> in the current Pack Description
using references:

  • add section <licenseSets> on the top level of the format
  • add one or more child elements <licenseSet> to <licenseSets> with attributes:
    • id (required) - a unique name which is used by components to associate itself with a licenseSet
    • default (optional) - a single licenseSet can be declared as default="true". In this case all components that
      do not specify a licenseSet are implicitly associated with this default licenseSet. If the default attribute
      is not specified it defaults to false.
    • gating (optional) - licenseSet is selected for being displayed as part of click through license, gating
      the installation of a pack. If gating is not specified it defaults to false.
  • add one or more child elements <license> to <licenseSet> with attributes:
    • name (required) - the file path and name of license file relative to pdsc file
    • title (required) - the displayed license title
    • spdx (optional) - a machine readable license ID string according to SPDX License List
  • add optional attribute licenseSet to <component> element.
  • add optional attribute licenseSet to <api> element.
  • limit supported file formats for license files to ASCII files with no or .txt extension.

Consequences

  • Complexity of package description increases
  • the default mechanism allows to specify a single licenseSet for all components of a pack conveniently.
  • For backward compatibility it is required to continue supporting <license> tag on top level. <license> vs.
    <licenseSet> shall be used mutually exclusively.
  • Validation tool is required to test:
    • for each <license> that name is specified and file exists
    • for each <license> that the SPDX identifier is valid
    • for all licenseSet to have a unique ID (within pdsc)
    • a maximum of one licenseSet has attribute default="true" set
    • for each <component> that attribute licenseSet unique ID exists (within pdsc)
    • for each <api> that attribute licenseSet unique ID exists (within pdsc)
  • Pack Installer requires extensions
    • display more than one license for "click through"
    • display license title
    • display SPDX information (e.g. with a link) if attribute is given
  • Pack Manager requires extension
    • display license information per component
@jkrech jkrech added the enhancement New feature or request label Sep 14, 2021
@jkrech jkrech self-assigned this May 31, 2022
@jkrech jkrech mentioned this issue Jun 13, 2022
@jkrech jkrech linked a pull request Jun 14, 2022 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Development

Successfully merging a pull request may close this issue.

1 participant