Skip to content

Clarify license notices #2037

@wata727

Description

@wata727

Introduction

After merging #2030, TFLint now has two licenses: MPL 2.0 and BUSL 1.1.
Having two different licenses can be confusing for contributors and can lead to unintended patch submissions.
In particular, BUSL does not meet the definition of open source, which leaves a pretty bad situation for contributors who mistakenly think this project is completely open source.

Also, there is the question of how to handle contributions to the Terraform fork.
Most of the current fork is licensed under the MPL, but if a patch is merged into it that requires it to be MPL, it will no longer be possible to merge BUSL code into it in the future. (Note that MPL is file-level copyleft. Existing MPL-licensed code can be changed to BUSL because it has been relicensed as BUSL in the upstream, which is achieved by HashiCorp's CLA)

Proposal

To solve these problems, the following two things are probably needed.

  • Contributor's explicit consent to provide patches under the current licenses
  • Agreement to allow future changes to BUSL regarding patches to the Terraform fork

Perhaps something like the following would be helpful.

Developer Certificate of Origin (DCO)

By enforcing DCO on this project, we can force contributors to agree to the current license. However, the Developer Certificate of Origin v1.1 specifically mentions "open source", and I'm not sure if it works as an agreement for a license like BUSL.

There is also resistance to enforcing DCO because it increases the burden on contributors.

Contributor License Agreement (CLA)

We can define additional terms about licensing by requiring contributors to sign the CLA. Perhaps we could also define requirements for BUSL relicensing of the Terraform fork.

But I'm not a lawyer, so I don't know if I can design a good CLA. Maintaining this on a volunteer basis would be quite an arduous task.

Creating a CONTRIBUTING file

The easiest way to get started is to create CONTRIBUTING.md. This file may be useful for licensing notices. However, it is debatable whether the existence of this file can be treated as consent.

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions