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

Make alpaka REUSE compliant #2177

Open
wants to merge 2 commits into
base: develop
Choose a base branch
from
Open

Conversation

j-stephan
Copy link
Member

This PR makes alpaka conform to the REUSE specification: https://reuse.software/

This is done by applying the following changes:

  • Make a distinction between copyright holders (HZDR / CERN in most cases) and individual contributors
  • Fix wrong contributor information where necessary (in some cases contributors were listed who never touched the file in question)
  • Convert copyright and contributor information into SPDX format
  • Add licensing and copyright information where missing
    • Some trivial files (like .zenodo.json) were placed into the public domain - please tell me if you wish this to be MPL, too
  • Add .reuse top-level directory with the required dep5 file
  • Add a CI job which runs the REUSE linter
  • Move all used licenses into the LICENSES directory.

Fixes #1920. This is the last open issue for the 1.0 release.

@j-stephan j-stephan requested a review from a team September 26, 2023 11:29
@j-stephan j-stephan added this to In progress in Release 1.0 via automation Sep 26, 2023
@@ -1,3 +1,5 @@
# SPDX-FileCopyrightText: Helmholtz-Zentrum Dresden-Rossendorf e.V. <https://www.hzdr.de>
# SPDX-License-Identifier: CC0-1.0
Copy link
Member Author

Choose a reason for hiding this comment

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

CC0-1.0 is essentially the public domain.

Copy link
Member

Choose a reason for hiding this comment

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

Do you think it's necessary to also put these utility files under a license? I imagine their reusability severly limited.

@@ -0,0 +1,24 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: alpaka
Upstream-Contact: Jan Stephan <j.stephan@hzdr.de>
Copy link
Member Author

@j-stephan j-stephan Sep 26, 2023

Choose a reason for hiding this comment

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

This should probably be someone else or a more general e-mail address.

Copy link
Member

Choose a reason for hiding this comment

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

Uwe told me, that is not possible. We cannot create E-Mail addresses for organizations or projects.

Copy link
Member

@bernhardmgruber bernhardmgruber left a comment

Choose a reason for hiding this comment

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

I don't think the distinction between copyright and contributor serves us. I contributed a lot during my free time, in which case I would like to be listed as a copyright holder and not a contributor. Also, I am technically not employed by CERN, only associated, so I don't know whether CERN holds any copyright on my work done during my PhD. Furthermore, any other of my affiliations (TU Dresden, HZDR, CASUS), or my funding provider (BMBF), could have reserved any rights (I don't know if this is the case). For the latter, the Gentner FAQ (my stipend) says: "The BMBF reserves any rights to use the results.", if you count alpaka as a result of my PhD.

I am generally very afraid, that this detailed tracking will create a lot of noise in general and also later during PR reviews. It also seems complicated for external contributors.

Comment on lines -1 to +7
// Copyright (c) 2015-16 Tom Deakin, Simon McIntosh-Smith,
// University of Bristol HPC
//
// For full license terms please see the LICENSE file distributed with this
// source code
//
// Cupla version created by Jeff Young in 2021
// Ported from cupla to alpaka by Bernhard Manfred Gruber in 2022
/*
* SPDX-FileCopyrightText: University of Bristol <https://www.bristol.ac.uk>
* SPDX-FileCopyrightText: Georgia Institute of Technology <https://www.gatech.edu>
* SPDX-FileCopyrightText: Organisation européenne pour la recherche nucléaire (CERN) <https://www.cern.ch>
*
* SPDX-FileContributor: Tom Deakin <tom.deakin@bristol.ac.uk>
* SPDX-FileContributor: Simon McIntosh-Smith <s.mcintosh-smith@bristol.ac.uk>
Copy link
Member

Choose a reason for hiding this comment

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

Isn't this demoting Tom and Simon from copyright holders to contributors? That is a change of the legal situation, isn't it? What gives us the right to do this?

Copy link
Member Author

Choose a reason for hiding this comment

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

Good point. I'll ask them.

* Based on John D. McCalpins original STREAM benchmark for CPUs
* Based on John D. McCalpins original STREAM benchmark for CPUs
Copy link
Member

Choose a reason for hiding this comment

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

Encoding?

Second occurence below.

Copy link
Member Author

Choose a reason for hiding this comment

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

Interesting, this didn't appear while I was writing the text in the initial comment. It also looks fine in my editor so this is probably some encoding issue in the license file.

Copy link
Member Author

Choose a reason for hiding this comment

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

This seems to be an issue with GitHub's preview - apparently they don't use UTF-8. If you select "View file" this goes away.

@bernhardmgruber bernhardmgruber requested a review from a team September 26, 2023 12:37
@j-stephan
Copy link
Member Author

I don't think the distinction between copyright and contributor serves us.

I believe it is quite important. Example: You are going to leave us in a few months. Now let's assume that we want to relicense to any other open source license a few years down the road which isn't fully compatible with MPL-2.0. Are you allowed to agree to this? Or do we have to reach out to one or more of your affiliations? If the latter, how do we know them if we can no longer reach you (for whatever reason)?

I contributed a lot during my free time, in which case I would like to be listed as a copyright holder and not a contributor. Also, I am technically not employed by CERN, only associated, so I don't know whether CERN holds any copyright on my work done during my PhD. Furthermore, any other of my affiliations (TU Dresden, HZDR, CASUS), or my funding provider (BMBF), could have reserved any rights (I don't know if this is the case). For the latter, the Gentner FAQ (my stipend) says: "The BMBF reserves any rights to use the results.", if you count alpaka as a result of my PhD.

I'll gladly change the copyright statements with regard to you or your affiliation(s) as long as they are correct. The BMBF statements sound like a promising start, at least with respect to LLAMA.

I am generally very afraid, that this detailed tracking will create a lot of noise in general and also later during PR reviews. It also seems complicated for external contributors.

I mean, there is a reason why every major open-source project is concerned with this and why specifications such as SPDX, REUSE etc. have been created. In most cases, the copyright holder is either the employer (if you're paid to do the work) or yourself (if you're doing this in your free time). Any new contributor needs to figure this out exactly once if it is more complicated than that.

@bernhardmgruber
Copy link
Member

Example: You are going to leave us in a few months. Now let's assume that we want to relicense to any other open source license a few years down the road which isn't fully compatible with MPL-2.0. Are you allowed to agree to this? Or do we have to reach out to one or more of your affiliations? If the latter, how do we know them if we can no longer reach you (for whatever reason)?

Well, that's exactly an argument for me being the copyright holder. Otherwise, you would need to ask CERN for permission.

Furthermore, I absolutely want you to contact me in 30 years if you intend to relicense alpaka. Otherwise, you could just change the license to proprietary, remove the Github repository and start selling the software as closed source :) Which I know you would never do. But I have made several contributions to this project, so I think I should be notified when the rights that I agreed to when contributing are subject to a revision.

I'll gladly change the copyright statements with regard to you or your affiliation(s) as long as they are correct. The BMBF statements sound like a promising start, at least with respect to LLAMA.

I will inquire with the CERN OSPO what to do here. I am afraid, this may take a few days. Their quick response was that anything work related belongs to CERN, even when done in my free time.

In most cases, the copyright holder is either the employer (if you're paid to do the work) or yourself (if you're doing this in your free time). Any new contributor needs to figure this out exactly once if it is more complicated than that.

Contributor status can change. I was employed by CASUS for 3 months, 3 years paid by the BMBF and associated to CERN, then CASUS got absorbed into HZDR, and my last 5 months are paid by CERN directly. I was registered as a PhD student at TU Dresden for the entire period. I am subject to different legal contracts in each of these periods, if we want to overanalyze the situation, which I don't want to do. I may also continue to contribute while being unemployed next year, or after getting a new job.

Anyhow, I think we should aim for a simple solution here.

@j-stephan
Copy link
Member Author

Well, that's exactly an argument for me being the copyright holder.

You can't just decide to become a copyright holder.

I was employed by CASUS for 3 months, 3 years paid by the BMBF and associated to CERN, then CASUS got absorbed into HZDR, and my last 5 months are paid by CERN directly. I was registered as a PhD student at TU Dresden for the entire period.

Sounds like the copyright belongs to HZDR and CERN then, possibly BMBF. Unless you explicitly signed a copyright agreement with TUD they're not part of the list since German universities don't automatically become copyright holders of their PhD students' work.

@bernhardmgruber
Copy link
Member

You can't just decide to become a copyright holder.

That's clear, but I can decide which chain of argumentation to pursue.

@BenjaminW3
Copy link
Member

Fix wrong contributor information where necessary (in some cases contributors were listed who never touched the file in question)

You do not need to touch a file to contribute to it. Sometimes files are split or functions are moved around and the result is that your code ends up in a file you did not ever touch and where git was not able to track the copy. Sometimes this was tracked manually when the new file was created.
Nevertheless the current way of manually tracking such things is as good/bad/correct as the new way to rely on file edits.

@BenjaminW3
Copy link
Member

Is it expected that I am listed both under SPDX-FileCopyrightText and SPDX-FileContributor for some files, while I am only listed in SPDX-FileContributor for others, which I even created like the .gitignore file?

@j-stephan
Copy link
Member Author

You do not need to touch a file to contribute to it. Sometimes files are split or functions are moved around [...]

I'm aware. I should have been more clear: in some cases a completely new feature was implemented and people would just copy the copyright header from another file. I looked at the history of each file and its predecessors to make sure I don't miss any contributor.

Regarding your second question: in your case I added you to the copyright holders for all files you touched after you left HZDR.

@bernhardmgruber
Copy link
Member

I conferred with the CERN OSPO and the Gentner coordinator. The copyright for my work as a Gentner funded PhD is held by CERN.

@@ -1,3 +1,5 @@
# SPDX-FileCopyrightText: Helmholtz-Zentrum Dresden-Rossendorf e.V. <https://www.hzdr.de>
# SPDX-License-Identifier: CC0-1.0
Copy link
Member

Choose a reason for hiding this comment

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

Do you think it's necessary to also put these utility files under a license? I imagine their reusability severly limited.

@@ -1,3 +1,9 @@
# SPDX-FileCopyrightText: Organisation européenne pour la recherche nucléaire (CERN) <https://www.cern.ch>
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
# SPDX-FileCopyrightText: Organisation européenne pour la recherche nucléaire (CERN) <https://www.cern.ch>
# SPDX-FileCopyrightText: CERN

I think CERN is enough here. See also: https://indico.cern.ch/category/4251/attachments/101/505/OSL-2012-01-Open_Source_Licences_at_CERN-Short_version.pdf

@@ -1,3 +1,5 @@
# SPDX-FileCopyrightText: Helmholtz-Zentrum Dresden-Rossendorf e.V. <https://www.hzdr.de>
Copy link
Member

Choose a reason for hiding this comment

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

In germany a company can not have the copyright, this is different from other countries.

Kann ein Unternehmen ein Urheberrecht haben?
Nein, ein Urheberrecht für Unternehmen gibt es in Deutschland – 
im Gegensatz etwa zum US-amerikanischen Recht als  
„work made for hire“ – nicht. 
Urheber eines Werkes ist in Deutschland immer die natürliche Person, 
die das Werk geschaffen hat, niemals aber eine “Firma”. [...]

https://www.res-media.net/faq-zum-urheberrecht-fuer-unternehmen/

Copy link
Member

Choose a reason for hiding this comment

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

but maybe copyright != Urheberrecht

Copy link
Member

Choose a reason for hiding this comment

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

OK I think copyright is Urheberrecht. So the record you added is fine from the technical point of view but I do not think we should apply these changes. Because if we would like to change the license of the project we need the OK from the legal departments of the institutions where we currently need the OK from the contributors.

@@ -1,3 +1,5 @@
# SPDX-FileCopyrightText: Helmholtz-Zentrum Dresden-Rossendorf e.V. <https://www.hzdr.de>
# SPDX-FileContributor: Benjamin Worpitz <benjaminworpitz@gmail.com>
Copy link
Member

Choose a reason for hiding this comment

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

Benjamin contributed under the affiliation of HZDR and TUD, later partly as a pure open-source developer or LogMeIn employee, I do not know exactly.

Copy link
Member

Choose a reason for hiding this comment

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

I only contributed for TUD, HZDR and as open-source developer. I did not contribute in the name of any other companies ;-)

Copy link
Member Author

Choose a reason for hiding this comment

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

Were HZDR and TU Dresden in parallel? Also do you remember when you left HZDR? Until now I used 2017-12-31 as the cutoff between "HZDR" and "not HZDR" because that is when I joined and I don't remember you ;-)

Copy link
Member

Choose a reason for hiding this comment

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

Were HZDR and TU Dresden in parallel?

TUD and HZDR were likely in parallel.

Also do you remember when you left HZDR?

Officially this should have been 2015-09-31

@j-stephan j-stephan removed this from In progress in Release 1.0 Oct 12, 2023
@psychocoderHPC psychocoderHPC added this to the 1.2.0 milestone Jan 29, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[RFC] Clarify authorship and copyright
5 participants