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

WIP: Reuse license #1390

Closed
wants to merge 16 commits into from
Closed

WIP: Reuse license #1390

wants to merge 16 commits into from

Conversation

MarcelKoch
Copy link
Member

@MarcelKoch MarcelKoch commented Aug 15, 2023

This PR changes how we handle our license declaration. It moves from the current block of license (~30 lines) to 3/4 lines as defined by https://reuse.software/. The new license header will now read as:

// SPDX-FileCopyrightText: 2017-2023 The Ginkgo authors
//
// SPDX-License-Identifier: BSD-3-Clause

Additionally, a license is added to all files in our repository. This includes adding a CC-BY-4.0 license for all of our images. Since the images are binary files, an extra file with a .license suffix is created in all cases.

The MatrixMarket files are properly attributed, but since these files should not be modified (see the license section in https://sparse.tamu.edu/about) this is handled in the .reuse/dep5 file. We could also do the same as with the images for those.

Some files have a CC0-1.0 license which basically means no copyright. The files are the *.stderr and *.stdout in the benchmark tests, and the files examples/*/doc/.

Some files have dual license. These are FindHWLOC.cmake (MORSE + our) and external-lib-interfacing.cpp (deal.II + our). I'm currently using an AND clause to combine the licenses, which means that a user must comply with all licenses simultaneously. The alternative is an OR clause, which would mean that the user can choose a license.

For now I've disabled our pre-commit license check, and instead added a github action for that.

Todo

  • enable pre-commit check for license again
  • figure out the license of the matrices in matrices/test
  • switch to CC0 license for files with little originality, eg gitignore, clang-format, etc

Benefits of this PR

  • Removes ~30k LOC which is just our license
  • Fewer 'ignored' lines in upcoming PRs
  • Clearly states the license for all files (no ambiguity)

@MarcelKoch MarcelKoch added 1:ST:do-not-merge Please do not merge PR this yet. 1:ST:WIP This PR is a work in progress. Not ready for review. labels Aug 15, 2023
@ginkgo-bot ginkgo-bot added reg:build This is related to the build system. reg:testing This is related to testing. reg:ci-cd This is related to the continuous integration system. reg:documentation This is related to documentation. reg:example This is related to the examples. reg:benchmarking This is related to benchmarking. type:solver This is related to the solvers type:preconditioner This is related to the preconditioners type:matrix-format This is related to the Matrix formats type:factorization This is related to the Factorizations type:reordering This is related to the matrix(LinOp) reordering reg:helper-scripts This issue/PR is related to the helper scripts mainly concerned with development of Ginkgo. labels Aug 15, 2023
@ginkgo-bot ginkgo-bot added type:multigrid This is related to multigrid type:stopping-criteria This is related to the stopping criteria mod:all This touches all Ginkgo modules. labels Aug 15, 2023

## Third-Party Licenses

Ginkgo source distribution does not bundle any third-party software. However,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is no longer true since AMD was added

@MarcelKoch MarcelKoch self-assigned this Aug 16, 2023
@upsj
Copy link
Member

upsj commented Aug 19, 2023

Maybe we can do this in two separate PRs? First replace the license by the SPDX header, then handle automation?

@MarcelKoch
Copy link
Member Author

@upsj This PR handles only the license replacement atm. It only disables our current handling, because that doesn't mix well. The automation (if wanted) should best be handled by pre-commit.

But as you noted, we need to adjust the license for files with very little originality.

@upsj
Copy link
Member

upsj commented Aug 21, 2023

I mean shortening only the existing license headers, everything else is a bigger effort

@MarcelKoch
Copy link
Member Author

I will split this PR up into two parts:

  1. changing only existing license (as @upsj suggested)
  2. adding license to other files using the reuse automation.

I will close this PR in favor of the other two.

@MarcelKoch MarcelKoch closed this Sep 11, 2023
@MarcelKoch MarcelKoch mentioned this pull request Oct 23, 2023
1 task
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
1:ST:do-not-merge Please do not merge PR this yet. 1:ST:WIP This PR is a work in progress. Not ready for review. mod:all This touches all Ginkgo modules. reg:benchmarking This is related to benchmarking. reg:build This is related to the build system. reg:ci-cd This is related to the continuous integration system. reg:documentation This is related to documentation. reg:example This is related to the examples. reg:helper-scripts This issue/PR is related to the helper scripts mainly concerned with development of Ginkgo. reg:testing This is related to testing. type:factorization This is related to the Factorizations type:matrix-format This is related to the Matrix formats type:multigrid This is related to multigrid type:preconditioner This is related to the preconditioners type:reordering This is related to the matrix(LinOp) reordering type:solver This is related to the solvers type:stopping-criteria This is related to the stopping criteria
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants