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

Copyright renewal #1586

Closed
cwhanse opened this issue Nov 7, 2022 · 11 comments · Fixed by #1692
Closed

Copyright renewal #1586

cwhanse opened this issue Nov 7, 2022 · 11 comments · Fixed by #1692
Milestone

Comments

@cwhanse
Copy link
Member

cwhanse commented Nov 7, 2022

The current copyright statement is:

Copyright (c) 2013-2021, Sandia National Laboratories and pvlib python Development Team
All rights reserved.

Two problems: 2021 is past, and "Sandia National Laboratories" isn't a legal entity (neither is the "Development Team.")

Sandia's copyright office is willing to provide the copyright assertion on behalf of pvlib-python. To acknowledge that much of the code does not originate with Sandia, they advise that we change the statement to

Copyright (c) 2013-YYYY, National Technology and Engineering Solutions of Sandia, LLC and Contributors.

@pvlib/pvlib-maintainer would like your opinions here.

@wholmgren
Copy link
Member

Thanks @cwhanse for digging into this. I'm +1 for the proposed change.

@AdamRJensen
Copy link
Member

AdamRJensen commented Nov 8, 2022

When reading this statement I'm left with the impression that pvlib is 95% developed by Sandia and there are occasional contributions by others. This might not be important but just wanted to mention it.

On another note, my impression of being fiscally sponsored by NumFOCUS is that they could take care of this.

@cwhanse
Copy link
Member Author

cwhanse commented Nov 8, 2022

That's not the impression I would prefer to give. I don't think Sandia would object to transferring the copyright to NumFocus.

Interesting, here's numpy's copyright statement:

Copyright (c) 2005-2022, NumPy Developers.

@kandersolar
Copy link
Member

Copyright (c) 2013-YYYY, National Technology and Engineering Solutions of Sandia, LLC and Contributors.

No objection from me if this is what the lawyers recommended, but for my own understanding, what is the reason to list Sandia separately instead of lumping it in with the rest of the Contributors? Is it that much of pvlib-python is considered a derivative work of the original MATLAB code (to which Sandia presumably holds copyright)? If so, we could indicate that history with something like this:

Copyright (c) 2013-2015, National Technology and Engineering Solutions of Sandia, LLC
Copyright (c) 2015-YYYY, Contributors

I don't know the relevant years off the top of my head. The main point is that we might prefer to list copyright years separately for different entities.

@kandersolar
Copy link
Member

list copyright years separately for different entities

pandas does this, see pandas-dev/pandas#31100 (comment) and https://github.com/pandas-dev/pandas/blob/main/LICENSE#L3-L6

@cwhanse
Copy link
Member Author

cwhanse commented Nov 8, 2022

Following pandas' phrasing, I like "pvlib-python open source contributors" more than the other options above.

A related question: what is to be done with submissions with their own copyright statement? #1585 assuming those lines are required by the submitter's organization.

@mdeceglie
Copy link
Contributor

Re #1585 - This was my attempt to comply with the original BSD3 license which states "Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer". My thinking was that being incorporated into another BSD3 project (pvlib) meets the "list of conditions" part. Then I added the specific Alliance copyright line to the docstring to comply with the "copyright notice" part. But this is my first time repurposing code from one BSD project to another, so it's very possible this isn't the best/correct approach.

@adriesse
Copy link
Member

adriesse commented Nov 8, 2022

I googled a bit and am still unclear about what copyright statements for all or individual parts of pvlib actually achieve. And in the case of a group copyright, is the idea that the copyright for the whole is shared by all, or that each member of the group has copyright to the part they contributed? It's probably of no practical relevance, but I'm curious anyway.

As for the Matlab origins of pvlib, I don't think copyright passes on to derivative works.

@mikofski
Copy link
Member

mikofski commented Nov 9, 2022

I am not a lawyer, but my understanding of copyright is that it is inherent whenever you publish something publicly. I think it’s actually difficult to give up your copyright. Your work belongs to you, and if your work is plagiarized, then you have the right to pursue damages:
https://en.wikipedia.org/wiki/Copyright

Given those constraints, do we even care? I think anything works work here. I guess I’m not too concerned if someone wants to copy our documentation, but maybe there’s scenarios where we do want to control its use?

If we do want better control over our docs, then I would recommend adopting a Creative Commons license: https://creativecommons.org/

I think the copyright is different than our BSD3 license which mostly protects us the code authors from users of our code trying to receive damages from us. That is my naive understanding. See https://opensource.org/

@adriesse
Copy link
Member

adriesse commented Nov 9, 2022

Well, for the most part it doesn't matter since no one is exercising commercial rights, so it's just a question of moral rights, i.e. whether we are individually or collectively recognized as authors.

Technically, listing Sandia and contributors seems redundant since Sandia is a contributor. :) But I'm ok with any of the suggestions above.

The unanswered question would be whether we want to see a sprinkling of additional alternative copyright declarations in the pvlib code and/or doc strings.

@kandersolar
Copy link
Member

list copyright years separately for different entities

I just noticed that we already do this in AUTHORS.md. Wherever we end up landing here, we should consider consolidating our copyright assertions so that there are fewer of them to forget to maintain.

A related question: what is to be done with submissions with their own copyright statement?

GitHub claims that Contributor License Agreements (CLA) are not necessary for most projects (source, note that this website is run by github despite not being on github.com) and that submissions are understood to be licensed by default under the same terms as the project's license (see github's terms of service).

So my take is that as long as the submitter is able and willing to license (or re-license) their code under the terms of pvlib's existing license, the PR need not concern itself with any copyright statements and the submitter's copyright is automatically lumped in with the "pvlib contributors" entity. It's only when the submitter isn't able or willing to (re-)license their contribution under our terms that we have to do something special. If the code is available to us under some acceptable license (either because the submitter holds copyright and grants us an acceptable license, or because the code is already available under that license) then we can choose to accept the submission and follow the license terms, or we can reject the submission.

For #1585 I think there are two options. Since @mdeceglie represents the code's copyright holder (NREL), I think he can either (1) submit the code under its original BSD3 license, in which case we would have to reproduce the copyright statement if not the entire license, or (2) as the copyright holder, re-license it under pvlib's license terms, in which case nothing special is needed.

The unanswered question would be whether we want to see a sprinkling of additional alternative copyright declarations in the pvlib code and/or doc strings.

If we want to accept submissions under non-pvlib licenses, I think there's no getting around this. My preference would be for housing them in code comments instead of docstrings.

@cwhanse cwhanse mentioned this issue Mar 2, 2023
12 tasks
@kandersolar kandersolar added this to the 0.9.5 milestone Mar 8, 2023
@cwhanse cwhanse mentioned this issue Mar 8, 2023
4 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

7 participants