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

RFC: Apply REUSE recommendations for license tagging #2887

Open
Flameeyes opened this issue May 12, 2020 · 12 comments
Open

RFC: Apply REUSE recommendations for license tagging #2887

Flameeyes opened this issue May 12, 2020 · 12 comments

Comments

@Flameeyes
Copy link

The REUSE specifications are a suggestion coming from FSFE to make code licensing information explicit and easier to apply. They build upon SPDX Tags to make it obvious (and at the same time less verbose) which license apply to a certain work: code, documentation, examples, etc.

I have been suggesting its use and using it for my own projects, and I feel it would be a positive change for CircuitPython's examples in particular, as right now the easiest way to find which license they are released upon is to trust the repository-wide LICENSE file (rather than just looking at the snippets in the documentation.)

In addition to specifying how to tag the licensing, the reuse tool is designed to aid adding the tags, and to validate the repository compliance to those specifications. Its linting mode can be integrated with both pre-commit and with other CI tooling.

Because I was a bit over eager to help with this one, I already have a pull request that can show how this would look like for the repositories: adafruit/Adafruit_CircuitPython_ESP32SPI#99

In that pull request there's a few rough edges:

  • All the code (and documentation) that otherwise didn't have an explicit license headers have been tagged with @ladyada's copyright as per the LICENSE file.
  • The favicon.ico file has been tagged with MIT license and the same copyright information. I do believe this is incorrect, and would like to know what the correct information should be.
  • All configuration files have been tagged with ladyada's copyright and Unlicense. The current REUSE recommendation is to use CC0-1.0, but that has… side effects. There's some discussion in
    Alter CC0-1.0 recommendation for uncopyrightable files fsfe/reuse-docs#62 about the recommendation for likely-uncopyrightable files (such as configuration files).
@tannewt tannewt added this to the Long term milestone May 13, 2020
@tannewt
Copy link
Member

tannewt commented May 13, 2020

I think it's a good idea.

Would you mind updating our test repo including the CI checks? https://github.com/adafruit/Adafruit_CircuitPython_TestRepo

The step after that would be to update the cookiecutter: https://github.com/adafruit/cookiecutter-adafruit-circuitpython/

@Flameeyes
Copy link
Author

Oh that cookiecutter looks nice!

Sure I'll prepare a pull request for testrepo — there's at least one question that stays open though: what's the license of the logo? (In the favicon.ico)

@tannewt
Copy link
Member

tannewt commented May 14, 2020

The logo is CC-BY 4.0: https://www.dropbox.com/sh/l6tp9ym5nf8h5v9/AABGu_q2pcdUQdx1avr8Xvvda?dl=0&preview=license-readme.txt

It's worth noting that the copyright license on the logo doesn't override the limitations of using it because of Adafruit's trademark.

Flameeyes added a commit to Flameeyes/Adafruit_CircuitPython_TestRepo that referenced this issue May 15, 2020
The REUSE specifications[1] are meant to make it explicit and easier to
apply code licensing information for a project. The provided lint tool
makes it easy to ensure all the content (code and not code) is tagged.

Important notes:

 * All the code (and documentation) that otherwise didn't have an explicit
   license headers have been tagged with Kattni Rembor's copyright as per
   the LICENSE file.
 * The favicon.ico file has been tagged with CC-BY-4.0 license as per
   adafruit/circuitpython#2887 (comment)
   and Phillip Torrone's for Adafruit Industries copyright.
 * All configuration files have been tagged with Kattni Rembor's copyright
   and Unlicense[2]. The current REUSE recommendation is to use CC0-1.0,
   but that has… side effects. There's some discussion in [3] about the
   recommendation for likely-uncopyrightable files (such as configuration
   files).

[1]: https://reuse.software/
[2]: https://unlicense.org/
[3]: fsfe/reuse-docs#62
Flameeyes added a commit to Flameeyes/Adafruit_CircuitPython_TestRepo that referenced this issue May 15, 2020
The REUSE specifications[1] are meant to make it explicit and easier to
apply code licensing information for a project. The provided lint tool
makes it easy to ensure all the content (code and not code) is tagged.

Important notes:

 * All the code (and documentation) that otherwise didn't have an explicit
   license headers have been tagged with Kattni Rembor's copyright as per
   the LICENSE file.
 * The favicon.ico file has been tagged with CC-BY-4.0 license as per
   adafruit/circuitpython#2887 (comment)
   and Phillip Torrone's for Adafruit Industries copyright.
 * All configuration files have been tagged with Kattni Rembor's copyright
   and Unlicense[2]. The current REUSE recommendation is to use CC0-1.0,
   but that has… side effects. There's some discussion in [3] about the
   recommendation for likely-uncopyrightable files (such as configuration
   files).

[1]: https://reuse.software/
[2]: https://unlicense.org/
[3]: fsfe/reuse-docs#62
Flameeyes added a commit to Flameeyes/Adafruit_CircuitPython_TestRepo that referenced this issue May 15, 2020
The REUSE specifications[1] are meant to make it explicit and easier to
apply code licensing information for a project. The provided lint tool
makes it easy to ensure all the content (code and not code) is tagged.

Important notes:

 * All the code (and documentation) that otherwise didn't have an explicit
   license headers have been tagged with Kattni Rembor's copyright as per
   the LICENSE file.
 * The favicon.ico file has been tagged with CC-BY-4.0 license as per
   adafruit/circuitpython#2887 (comment)
   and Phillip Torrone's for Adafruit Industries copyright.
 * All configuration files have been tagged with Kattni Rembor's copyright
   and Unlicense[2]. The current REUSE recommendation is to use CC0-1.0,
   but that has… side effects. There's some discussion in [3] about the
   recommendation for likely-uncopyrightable files (such as configuration
   files).

[1]: https://reuse.software/
[2]: https://unlicense.org/
[3]: fsfe/reuse-docs#62
@dhalbert
Copy link
Collaborator

@ladyada Do you or PT or your lawyers have an opinion on this? Also see
adafruit/Adafruit_CircuitPython_TestRepo#33
adafruit/actions-ci-circuitpython-libs#8

Flameeyes added a commit to Flameeyes/Adafruit_CircuitPython_TestRepo that referenced this issue May 15, 2020
The REUSE specifications[1] are meant to make it explicit and easier to
apply code licensing information for a project. The provided lint tool
makes it easy to ensure all the content (code and not code) is tagged.

Important notes:

 * All the code (and documentation) that otherwise didn't have an explicit
   license headers have been tagged with Kattni Rembor's copyright as per
   the LICENSE file.
 * The favicon.ico file has been tagged with CC-BY-4.0 license as per
   adafruit/circuitpython#2887 (comment)
   and Phillip Torrone's for Adafruit Industries copyright.
 * All configuration files have been tagged with Kattni Rembor's copyright
   and Unlicense[2]. The current REUSE recommendation is to use CC0-1.0,
   but that has… side effects. There's some discussion in [3] about the
   recommendation for likely-uncopyrightable files (such as configuration
   files).

[1]: https://reuse.software/
[2]: https://unlicense.org/
[3]: fsfe/reuse-docs#62
Flameeyes added a commit to Flameeyes/Adafruit_CircuitPython_TestRepo that referenced this issue May 15, 2020
The REUSE specifications[1] are meant to make it explicit and easier to
apply code licensing information for a project. The provided lint tool
makes it easy to ensure all the content (code and not code) is tagged.

Important notes:

 * All the code (and documentation) that otherwise didn't have an explicit
   license headers have been tagged with Kattni Rembor's copyright as per
   the LICENSE file.
 * The favicon.ico file has been tagged with CC-BY-4.0 license as per
   adafruit/circuitpython#2887 (comment)
   and Phillip Torrone's for Adafruit Industries copyright.
 * All configuration files have been tagged with Kattni Rembor's copyright
   and Unlicense[2]. The current REUSE recommendation is to use CC0-1.0,
   but that has… side effects. There's some discussion in [3] about the
   recommendation for likely-uncopyrightable files (such as configuration
   files).

[1]: https://reuse.software/
[2]: https://unlicense.org/
[3]: fsfe/reuse-docs#62
@ladyada
Copy link
Member

ladyada commented May 18, 2020

this is fine, please merge when ready and we'll keep an eye on it

Flameeyes added a commit to Flameeyes/Adafruit_CircuitPython_TestRepo that referenced this issue May 19, 2020
The REUSE specifications[1] are meant to make it explicit and easier to
apply code licensing information for a project. The provided lint tool
makes it easy to ensure all the content (code and not code) is tagged.

Important notes:

 * All the code (and documentation) that otherwise didn't have an explicit
   license headers have been tagged with Kattni Rembor's copyright as per
   the LICENSE file.
 * The favicon.ico file has been tagged with CC-BY-4.0 license as per
   adafruit/circuitpython#2887 (comment)
   and Phillip Torrone's for Adafruit Industries copyright.
 * All configuration files have been tagged with Kattni Rembor's copyright
   and Unlicense[2]. The current REUSE recommendation is to use CC0-1.0,
   but that has… side effects. There's some discussion in [3] about the
   recommendation for likely-uncopyrightable files (such as configuration
   files).

[1]: https://reuse.software/
[2]: https://unlicense.org/
[3]: fsfe/reuse-docs#62
@Flameeyes
Copy link
Author

To sum up current state:

Should I wait for both to be merged before preparing the equivalent change for https://github.com/adafruit/cookiecutter-adafruit-circuitpython/, so we know what the final form of it should be?

@tannewt
Copy link
Member

tannewt commented May 20, 2020

@Flameeyes you are welcome to make the PR. we won't want to merge until it'll be green.

@dhalbert
Copy link
Collaborator

Both of these are now approved and merged.

Flameeyes added a commit to Flameeyes/cookiecutter-adafruit-circuitpython that referenced this issue May 21, 2020
The REUSE specifications[1] are meant to make it explicit and easier to
apply code licensing information for a project. The provided lint tool
makes it easy to ensure all the content (code and not code) is tagged.

Important notes:

 * All the code (and documentation) that otherwise didn't have an explicit
   license headers have been tagged with Scott Shawcroft's copyright as per
   the LICENSE file.
 * The favicon.ico file has been tagged with CC-BY-4.0 license as per
   adafruit/circuitpython#2887 (comment)
   and Phillip Torrone's for Adafruit Industries copyright.
 * All configuration files have been tagged with Scott Shawcroft's copyright
   and Unlicense[2]. The current REUSE recommendation is to use CC0-1.0,
   but that has… side effects. There's some discussion in [3] about the
   recommendation for likely-uncopyrightable files (such as configuration
   files).
 * In the templated library structure, I've added a double copyright line
   for Scott Shawcroft _and_ the authoring person/company as per previous
   template in at least some of the files. Please let me know which others
   need to be tagged. There is some space for the _template_ having MIT
   license while the _generated_ file having Unlicense, or them having
   different copyright altogether.
 * Since all three of the licenses are used in both the repository itself
   and the generated repository in the cookiecutter, they are currently
   duplicated.

[1]: https://reuse.software/
[2]: https://unlicense.org/
[3]: fsfe/reuse-docs#62
@Flameeyes
Copy link
Author

Here's the cookiecutter PR: adafruit/cookiecutter-adafruit-circuitpython#75

There's probably more opportunities for templating the copyright for the generated repository, do let me know if you notice any.

Flameeyes added a commit to Flameeyes/cookiecutter-adafruit-circuitpython that referenced this issue May 21, 2020
The REUSE specifications[1] are meant to make it explicit and easier to
apply code licensing information for a project. The provided lint tool
makes it easy to ensure all the content (code and not code) is tagged.

Important notes:

 * All the code (and documentation) that otherwise didn't have an explicit
   license headers have been tagged with Scott Shawcroft's copyright as per
   the LICENSE file.
 * The favicon.ico file has been tagged with CC-BY-4.0 license as per
   adafruit/circuitpython#2887 (comment)
   and Phillip Torrone's for Adafruit Industries copyright.
 * All configuration files have been tagged with Scott Shawcroft's copyright
   and Unlicense[2]. The current REUSE recommendation is to use CC0-1.0,
   but that has… side effects. There's some discussion in [3] about the
   recommendation for likely-uncopyrightable files (such as configuration
   files).
 * In the templated library structure, I've added a double copyright line
   for Scott Shawcroft _and_ the authoring person/company as per previous
   template in at least some of the files. Please let me know which others
   need to be tagged. There is some space for the _template_ having MIT
   license while the _generated_ file having Unlicense, or them having
   different copyright altogether.
 * Since all three of the licenses are used in both the repository itself
   and the generated repository in the cookiecutter, they are currently
   duplicated.

[1]: https://reuse.software/
[2]: https://unlicense.org/
[3]: fsfe/reuse-docs#62
@Flameeyes
Copy link
Author

Current status:

@tannewt
Copy link
Member

tannewt commented Jun 1, 2020

@Flameeyes Thanks for this work! I've merged both of these PRs and replied on the CircuitPython pre-commit PR.

@dhalbert
Copy link
Collaborator

Note that in order to reduce skew from MicroPython, which does not use SPDX tags, we have removed SPDX from core files we inherit from MicroPython.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants