Skip to content

File headers, copyrights, and licenses #3589

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

Closed
jnm2 opened this issue Jun 29, 2020 · 5 comments
Closed

File headers, copyrights, and licenses #3589

jnm2 opened this issue Jun 29, 2020 · 5 comments
Milestone

Comments

@jnm2
Copy link
Contributor

jnm2 commented Jun 29, 2020

I've heard a mix of things that I'm still trying to clarify:

  • Year ranges are extraneous and possibly invalidate the copyright notice.
  • A year in a file should never be updated or it possibly invalidates the copyright notice.
  • A starting year that is later than the entire project's initial publish, even for new files, possibly invalidates the copyright notice.
  • A license notice is not required to be in source files in order for the license to cover those files.

Things I'm pretty sure of from reading the linked https://www.copyright.gov references just now:

  • A copyright notice is not required to be in source files in order for the copyright to cover those files.
  • © is the preferred symbol, but (c) is explicitly listed as an acceptable alternative marking.
  • Copyright and © are redundant with each other but it doesn't invalidate the notice to use both.

Things I know for sure:

  • Many open-source projects don't have headers.
  • Many others use one-liners tell you that the copyright and license info for the file is in the repository root. (Notably, all projects copyright by .NET Foundation.)
  • I can't stand scrolling past, adding, or updating file headers, or asking for contributors to do these things in PRs.

It bothers me a lot, especially the not knowing if what we're doing is even legally achieving what we think it is. I'm willing to get solid legal answers to all of this if needed. First, is there any way we could be comfortable with the idea of not using file headers at all? What would it take to get to that point? If that's not possible, can we do the next most light-weight thing which is a single-line header that never changes?

References:

The GitHub URLs are intentionally within backticks to prevent spamming the threads with crossreferences.

@CharliePoole
Copy link
Member

Lots of conflicting info out there, for sure. There are a few good reasons for that, I believe:

  1. Statements are not always from lawyers.
  2. People are from various countries.
  3. Even sticking with lawyers and US law, many of these opinions are predictions of how a court would interpret the law. Lots of copyright stuff as applied to Open Source has actually never been adjudicated and existing case law is the whole basis of our legal system.

So there are no guarantees, each project has to use its best judgement and then stick with a consistent approach.

NUnit has always stuck with a single license for the product. The license header in the files is not specific to that file but reflects the entire product. We have a few files without headers that we took verbatim from other projects, but the entire project is ours and I've come to the conclusion that most of the header file content is redundant.

For a different approach, you might peek at what I do in the TestCentric project. There's an unchangeable four line header in each file. The license is in the root and that's the only place the dates get changed.

BTW, you made this a framework issue but I suspect you are intending to apply it to other projects as well, which is why I responded.

@jnm2
Copy link
Contributor Author

jnm2 commented Jun 29, 2020

Also: https://www.copyright.gov/title17/92chap4.html#412 seems to say that the date wouldn't have any impact at all unless you register the copyright (thanks to @sharwell for finding this).

@CharliePoole I meant this as a framework issue since it seemed like a it would be up to each project lead independently. This is the project where dealing with headers comes up the most for me. Thanks for commenting!

@nunit/framework-team Feeling encouraged by Charlie's example of using an unchanging, shorter header in all files, I'm hopeful that we can strike a balance somewhere from there to possibly having no headers at all (my favorite). Where does your preference fall?

For now I'd propose leaving files with non-NUnit notices untouched. There are so few and they are typically not edited. If we wanted, a second step could be to follow the convention of moving the the non-NUnit notices into a THIRD-PARTY-NOTICES.txt file.

@CharliePoole
Copy link
Member

Agree it's a team issue so I would not normally respond. But I was predicting you may want the same in the console project, so I thought I'd give my opinion anyway. 😉

@rprouse
Copy link
Member

rprouse commented Jan 11, 2021

Once we decide on a format in the console project in nunit/nunit-console#793, we should do the same here.

@rprouse rprouse added this to the 3.14 milestone Jan 11, 2021
@jnm2
Copy link
Contributor Author

jnm2 commented Mar 8, 2021

Replaced by #3789.

@jnm2 jnm2 closed this as completed Mar 8, 2021
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

3 participants