Skip to content

Add profile for multiple SPDX files with short licensing/copyright info #502

Open
@mxmehl

Description

@mxmehl

As suggested by @goneall, I would like to propose a new SPDX profile for the 3.0 spec. At REUSE we're looking for a more flexible and human-editable solution to deprecate our DEP5 spec to bulk-license files, currently under the working title "REUSE.yaml". However, we would love to be compatible with SPDX in this matter.

Goals

  • Ability to mark multiple files, including wildcards.
  • Mark files relative to the location of this SPDX file, and thereby allow multiple of these files.
  • Minimum required information: one or multiple SPDX-FileCopyrightText, and SPDX-License-Identifier.
  • Use same keys as the known SPDX tags (see above)

Rationale

Obviously, a full SPDX file is not readable and maintainable for average developers. There should be a way to specifiy only copyright and licensing of one or multiple files in a very concise manner. To not have to learn a differing syntax, the tags names SPDX-FileCopyrightText and SPDX-License-Identifier should stay the same. Ideally, all information would be applied relative to the SPDX file path (but not being able to define files in paths above its own location).

Scenario: a maintainer marked all source codes files according to the REUSE best practices with in-file comment headers. For a directory with 500 icon files however, they would prefer to bulk-declare these. To do this, it would be the easiest to create a YAML/JSON file inside of this repo, use * as target, and add copyright and licensing information.

Ideas for implementation

We've collected some syntax proposals for REUSE.yaml in this thread. For example:

- src/*:
    SPDX-FileCopyrightText:
      - 2020 Me
      - © 2017 You
    SPDX-License-Identifier: MIT

or

- src/*:
    license:
      SPDX-License-Identifier: MIT
    copyright: |
      SPDX-FileCopyrightText: 2020 Me
      SPDX-FileCopyrightText: © 2017 You

We are open to the exact syntax, but it would be wise to not make it much more complex.

However, I am aware that some of these proposals stretch the general idea of SPDX files and perhaps also the new profiles. I am excited to learn what you folks are thinking about this very simple approach.

Metadata

Metadata

Assignees

No one assigned

    Labels

    profile: licensingLicensing Profile and related matters

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions