Closed CharliePoole closed 3 years ago
Bummer! I just spent an hour making a table of all our projects and who holds copyright on each. Just as I went to save it as a comment, my machine died! Teaches me to not edit online.
The following is a summary of who holds copyright on all our projects and how (or if) I think it should change in the future. I wanted to make a full summary so we could see everything at once, but I think it will work best if we discuss one issue at a time.
Group | Repo | Copyright | Action |
---|---|---|---|
Core | nunit | Charlie | |
nunit-console | Charlie | ||
nunit3-vs-adapter | Charlie | ||
nunit-vs-adapter | Charlie | ||
NUnit.System.Linq | Charlie | ||
nunit-distribution | None | ||
Secondary | nunit-project-editor | Charlie | |
nunit-v2-framework-driver | Charlie | ||
nunit-v2-result-writer | Charlie | ||
nunit-project-loader | Charlie | ||
vs-project-loader | Charlie | ||
nunit.xamarin | Charlie | Change to NUnit Project. DONE | |
Preview | nunit-gui | Charlie | |
nunit-expectations | Charlie | ||
nunit.analyzers | None | ||
Contrib | nunit-vs-testgenerator | Charlie | Change to Terje. DONE |
teamcity-event-listener | Charlie | ||
nunit3-tdnet-adapter | None | ||
nunit-vs-templates | nunit.org | Change to The NUnit Project. DONE | |
nunit-transforms | Multiple | ||
Web | nunit.org | Charlie | Change to The NUnit Project. Use CC. |
docs | Charlie | Change to The NUnit Project. Use CC. | |
governance | None | Change to The NUnit Project. Use CC. DONE | |
nunit.github.io | nunit.org | Change to The NUnit Project | |
resources | nunit.org | Change to The NUnit Project | |
Samples | nunit-csharp-samples | None | Change to The NUnit Project. DONE |
nunit-fsharp-samples | None | Change to The NUnit Project. DONE | |
nunit-cpp-samples | None | Change to The NUnit Project. DONE | |
nunit-vb-samples | None | Change to The NUnit Project. DONE | |
Archive | nunitv2 | Multiple | |
nunitlite | Charlie | ||
nunit-compact-framework | Charlie | ||
nunit-silverlight | Charlie | ||
dotnet-test-nunit | nunit.org | Change to The NUnit Project DONE | |
nunit.portable.agent | Charlie | Change NUnit Project DONE |
Starting out with some low-hanging (I hope) fruit...
These are items that list me as the copyright holder but which I haven't even worked on. The author is listed for each one.
The authors had copyright in their work as soon as they created it. I think they added my name as a matter of convention, not really intending to gift it to me.
It seems to me that the simplest thing would be for each of them to hold the license of their own work.
What do you all think?
Here's another...
I wrote the first teamcity-event-listener, based on internal engine code, which I had previously written. So it carries my name. @NikolayPianikov has done all the work for some time. I propose to share the copyright with him, if he agrees. I created an issue for this in the teamcity project: nunit/teamcity-event-listener#40
Update: @NikolayPianikov can't be the copyright holder per his company. It remains with me.
@nunit/core-team I'm still hoping for feedback from my proposal of four days ago regarding four projects that "accidentally" list me as the copyright holder.
@nunit/core-team FYI, @NikolayPianikov is checking with his company to make sure he is able to have his name added as a copyright holder for the teamcity event listener. For example, if they consider his work on it as "for hire" then he may not be able to.
@nunit/core-team Another FYI... I asked for some info from the .NET Foundation as discussed. No answer as yet.
Looks good from here.
Sounds good.
I am fine with assigning the copyright of the projects listed as mine to me, to NUnit.org or eventually fully to the .NET Foundation. I agree that NUnit.org is weird since it isn't a legal entity.
I have also seen project recommendations that you only place the MIT copyright in a file at the root of each repo and not include it in every file because it is redundant. I like the idea because it is easy to maintain and cleans up the files. I would only leave exceptions in the code like the command line argument parser we borrowed from another project. I am not wed to the idea, just putting it out there if we are changing copyrights anyway.
I was considering the change from Charlie to Rob as a preliminary change, just to resolve my own issue. Obviously, once it's in your name you can change it otherwise, although changing it once is better if we know in advance how it would end up. Anyway, I'll do PRs on each of the four (did Terje's already).
Although NUnit.org is weird, we may want it or something like it for some purposes. I'll propose something on that in copyright.md.
IMO whether to place MIT copyright on files is an individual decision. Most open source projects have put it on each file, because its' so short (as compared e.g. to GPL). Microsoft has tended to leave it off. I like having it on the file, so you don't lose the info simply by copying the file to a different directory structure.
This could be a decision for whomever contributes a project. I would not want to tell them how to do it - or for that matter what license to use.
I have also seen project recommendations that you only place the MIT copyright in a file at the root of each repo and not include it in every file because it is redundant. I like the idea because it is easy to maintain and cleans up the files. I would only leave exceptions in the code like the command line argument parser we borrowed from another project. I am not wed to the idea, just putting it out there if we are changing copyrights anyway.
Seconded! 🎉
If we're going to keep something in each file, let's at least make it a one-liner.
I think the minimum is a one-line copyright and a one-line reference to the license. Of course, it's possible to combine those lines but it's generally recommended to stick with a standard template for copyright, which is one line.
That said, Rob only threw this idea out as a sideline to what we are discussing. Let's not derail everything to argue about it. Remember, we are in the governance repo acting in our role as the Core Team. We are deciding what stuff is so important that we will require it of everyone including people who come along and contribute a project. Are we likely to say "Gee, that's a really cool project and we would take it if your headers were shorter!" I kind of doubt it. 😄
I will try to draft a copyright.md that only specifies what we insist on and no more. We could add extra requirements for "core" (or whatever we call them) projects if you like. I had not planned to write anything about what goes in the header of a file after the copyright line, but I can make an attempt to be generic about it if you like. I'll have a PR soon.
Are we likely to say "Gee, that's a really cool project and we would take it if your headers were shorter!" I kind of doubt it.
I would rather say "Gee, we don't care if you have headers or not!" But requiring one line is better than requiring an entire license. I also strongly dislike the whole tracking year thing. I don't think it earns its mental space. \</end rant>
@jnm2 That's exactly what I think we should say. So we don't seem to disagree.
I don't think anyone has said we should require the entire license. Or even require a header. Most likely we'll ask people for something fairly light and will impose something slightly less lighter on ourselves for the primary projects. Let's wait and see what that guy writes before critiquing it. 😄
Should we add a Creative Commons license to this repository too?
For the projects that you state NUnit or Rob, let's just go with NUnit for now. Are people okay with me submitting PRs for those to get them done?
I am fine with assigning the copyright of the projects listed as mine to me, to NUnit.org or eventually fully to the .NET Foundation.
I'm not quite liking the fact that we're assigning copyrights to a name which isn't a legal entity. Are we going to end up assigning copyrights to the .NET Foundation? If so, why don't we hold off till then? If not, do we plan to create a legal entity?
I am fine to just make a plan and wait until the foundation decision.
@rprouse I think CC for our governance docs makes sense. Should there be a notice at the end of each doc such as one usually sees? Do you want to create an issue or just do a PR?
@rprouse I assume your comment about "NUnit or Rob" refers to the table I did at the beginning. That's kind of an index to everything we are doing, so no action has been taken on it yet. I'll edit it however.
I think CC for our governance docs makes sense. Should there be a notice at the end of each doc such as one usually sees? Do you want to create an issue or just do a PR?
I think just a license file at the root of the repo is good enough. I will do a PR. I will use the Creative Commons - Share Alike license which is one of the more open licenses.
I assume your comment about "NUnit or Rob" refers to the table I did at the beginning. That's kind of an index to everything we are doing, so no action has been taken on it yet. I'll edit it however.
Yes, referring to your table above.
@rprouse OK... edited. There is one other that says Rob or NUnit, the difference being because it's already in the name of a person (me) and I wanted to get my name off it. It's also part of an existing action item with four projects to be changed.
Here is my logic for wanting your name on this project... If it's going to be assigned or licensed to the .NET foundation (or any other entity) then the copyright holder has to do it. I don't see how NUnit.org or NUnit Project can do it in any legal sense. (Of course IANAL) Further, that holder has to decide whether to do it and which of the two actions to take. Since some projects are authored by you I figured you would want to make the decision. BTW, I did write to find out how much of a concern this is, with no response yet. I'm going to try Martin next time to see if he can spark a response.
Since @rprouse wanted to do some PRs on a few copyrights, let's decide what NUnit means!
You recall that I used "NUnit" as a place holder for any projects where we wanted some generic copyright holder. IMO, we should use that approach for things like docs, samples and stuff we are less concerned about for our actual software. But, in any case, we should have a standard name when we use it.
I propose "The NUnit Project" which is something we define in the governance doc. NUnit.org is the name of a website or a short name for a GitHub artifact. If we called ourselves "the NUnit Organization" I'd be OK with that, but we don't.
Still there could be other things like NUnit Community, NUnit Contributors, etc. I will use Project in the doc I'm doing a PR for and we can change it after discussion.
"The NUnit Project" 👍
To alleviate your concerns about it being a non-entity, would naming the core team as the copyright holders for The NUnit Project work? IANAL and I don't usually pay much attention to this stuff, so just asking. I tend to think that if it is MIT Licensed, anyone can do anything they please with it except remove the copyright, so I don't give it much thought.
The NUnit project sounds good to me.
I reformatted the summary table, used The NUnit Project, made a few other changes.
Question for all. Should the samples be MIT or CC? I originally suggested CC, but I'm thinking that MIT like other code may be more consistent. Either way, I will just add the license in the root.
@rprouse Which items were you doing PRs for, so we don't duplicate our efforts?
MIT is fine by me
I think MIT is more correct for code. As for PRs, I misunderstood an earlier comment and thought you wanted me to hold off.
I am going on vacation tomorrow, but could probably knock off dotnet-test-nunit, nunit-portable, xamarin, templates before I leave. I would prefer all go to NUnit Project, none to me specifically if that is okay.
Till we decided on what word to use... but now we know it's "Copyright (c) The NUnit Project"
If you can manage that's great. Should I wait till tonight and see what's done? I can move on with a few other things today.
Feel free to ignore this but I like ©
better than (c)
. Even though hardware keyboards tend not to have a key for this symbol, you can type it via Alt+ numpad 0169.
I switched the samples to MIT and will do some PRs for them.
Everything I have read from lawyers says to use (c). I used to use © but changed it everywhere after learning that. This really isn't an area where you go by personal preference.
@CharliePoole :-/ Everything I am finding seems to say, if anything, © is the canonical legal symbol. But I need to know because I use it. Can you point me to legal advice on this?
I ended up doing the samples directly in master, since all I did was add the license file.
@jnm2 I had explicit info in the way-back saying not to use that symbol because of issues on systems that use different character sets. It would not surprise me to see it different today, but I'm pretty sure our old copyright notices are still good - many works from the past continue to use it. I'm not inclined to change it at least till somebody gives us legal advice that says we should.
Much of the info I had was in books. As part of my current major change of life, I'm afraid I've gotten rid of almost all my technical books, so I can't give you a reference without doing major research.
PRs are up for the four projects that I said I would update. Links above.
@CharliePoole - there seems to be some left over bits and pieces in the samples repos. I'll PR them now, as I assume they were just missed - will leave you to double check before merging if that's ok.
Actually - there's more to this than I thought.
Some of the samples files contain this copyright notice
// ****************************************************************
// This is free software licensed under the NUnit license. You
// may obtain a copy of the license as well as information regarding
// copyright ownership at http://nunit.org
// ****************************************************************
Given there's now an MIT licence in root - I assume we should remove that notice entirely?
Given there's now an MIT licence in root - I assume we should remove that notice entirely?
I think so, those are left over from the license change between NUnit 2 and 3
Ok, I'll run through them quickly now.
My mistake! I looked at a few source files for each language and didn't hit any with headers, so I thought that none of them had it. Also searched for copyright - but these headers didn't have any.
Ah - lucky I searched 'license' then!
(Well...'licence' first, because Americanisms...but eventually 'license'! ;-) )
@CharliePoole - Was just looking at nunit-distribution today - that contains a .txt and .rtf licence which are both (c) Charlie Poole - although it will now be used for the console, which is (c) Charlie Poole and Rob Prouse. (And the extensions - although they're currently just (c) Charlie Poole.)
Is it maybe worth updating the two licence files in nunit-distribution, while we're here? I presume that's best coming as a PR from yourself, rather than me doing it.
Lol I thought 'licence' was a Britishism! In the US I think the only correct spelling is 'license.'
@ChrisMaddock Feel free to keep both your spelling and your nationality. :smiley:
Yanks... rolls eyes
😉 Only joking! @CharliePoole - not sure if you saw my post from today, alongside my whining about spellings from last week? https://github.com/nunit/governance/issues/12#issuecomment-311637002
Ah no I missed the byplay, so didn't understand why your spelling was being critici[z|s]ed.
A bunch of NUnit projects are copyright to me personally. A bunch of others are not, but just had my name added to them in a kind of rote way as "the guy" for holding copyrights.
I need to figure out what to do with "my" copyrights, but the ones that just have my name artificially added to them kind of confuse the issue. Let's discuss how to fix all this.
I'll add separate comments for each sort of project.