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

LICENCEs Guideline #37

Closed
Carreau opened this issue Sep 8, 2017 · 21 comments · Fixed by #66
Closed

LICENCEs Guideline #37

Carreau opened this issue Sep 8, 2017 · 21 comments · Fixed by #66

Comments

@Carreau
Copy link
Member

Carreau commented Sep 8, 2017

During JupyterCon sprints, one of the topic was to update our various repositories to ensure uniforme licensing terms. We got ~50 Pull-Requests about this topic and a few issues appeared or were discovered. This is thus an issue to discuss the licensing Guidelines.

A) LICENCEs files were added without consideration of Pre-existing COPYING files.

B) COPYING were renamed to LICENCE without updates of Manifest.in files leading to releases being uploaded without being Properly licensed.

C) Previous Copyright were removed or about to get removed

D) MIT project were almost relicenced as BSD without authors consents

D') Projects without licenses were added a BSD Licence without all authors approval

E) Some projects (docs, website tutorial) Got BSD and should get CC0?

F) Copyright Dates we updated to 2017

I'm Going to Focus on F in the following paragraph, but if we get a Guideline it would be good to cover other points.

According to Brian:

Here is the US law on copyright notices:

https://www.copyright.gov/title17/92chap4.html#401

tl;dr - we should use the first year of publication and don't need to
put -present as copyrights don't expire.

Jason pointed out :

  • While the year is the date of the first publication, you may (should?) also list other years that significant contributions were made, as their copyright starts the year those contributions were published.

Fernando

Quick note - at the sprints in NYC on Saturday we had a brief chat about trying to simplify this as much as possible to avoid all that churn... I suggest we seek the simplest solution that is compliant with law but that avoids all the "January copyright update storm".

If simply listing file creation year is legally sufficient, I'm all for that. Like in many other areas, times of significant activity are adequately recorded by the VCS, so I don't think having a bunch of years listed in the file (or an updated endpoint) is really of any use.

And Paul

I left this as a comment in a recent JupyterLab PR that bumped the copyright verison: we moved to remove the end copyright date from files as we updated them in IPython starting back in 2012. The reason is that it keeps you from having to have a noop commit once per year that updates the whole repo's end dates. For more on this discussion, see ipython/ipython#1644

So can we get a clear guideline ni this repo and check all the PRs that have been recently made.

Note: We're asking other project to correctly use our licensing terms when they use some of our code, so let's do things properly.

@jzf2101
Copy link

jzf2101 commented Sep 8, 2017

Thanks for creating this issue @Carreau

@Carreau
Copy link
Member Author

Carreau commented Sep 8, 2017

Response to Myself for what I would vote for:

  1. Even if unnecessary use <Year>-Present to make it clear to anyone trying to modify the file.
  2. Assume that "Significant changes" are recorded in VCS.
  3. Provide a template file that says literally <First Publication year>-Present to make it clear to anyone using the "template".
  4. Code should be BSD3 by default.
  5. Repositories containing only documentation, tutorials, websites,... CC0.

The template file should be a markdown file with the LICENCE template in a triple backticks that list some of the point to manually check (existing of Copying, Manifest.in...).

Getting Licences right is a tricky process...

@Carreau
Copy link
Member Author

Carreau commented Sep 8, 2017

@jzf2101 and I think we can also schedule a Bluejeans group call if we need a higher bandwidth.

@jasongrout
Copy link
Member

Relevant information:

Also, we've had other previous discussions on licenses recently, like:

@Carreau
Copy link
Member Author

Carreau commented Sep 8, 2017

Another suggestion, can/should we use the CodeOwner file even just for LICENCES, to enforce review by a specific team if the LICENCE file is touched ?

@jzf2101
Copy link

jzf2101 commented Sep 8, 2017

I'm fine with that

@jasongrout
Copy link
Member

@Carreau - my understanding is that -Present is not correct - you get to claim copyright for substantial changes you've made, but if a repo is stagnant for a while with little or no activity, Present would not be correct.

Repositories containing only documentation, tutorials, websites,... CC0.

I think code that is meant to be examples that are copied should be CC0 (such as cookie-cutters). Most documentation (except the code samples), websites, etc. should not be CC0 in my opinion. Sometimes people do something like "the documentation is license so-and-so, and the code sample are CC0" as well.

@Carreau
Copy link
Member Author

Carreau commented Sep 8, 2017

@jasongrout any other preferred thing for non-software, CC-BY ? CC-BY-SA ?(https://choosealicense.com/non-software/)

List of active (or merged) PRs that need to be checked once this is resolved (please edit):

@jzf2101
Copy link

jzf2101 commented Sep 8, 2017

We should probably also update https://github.com/jupyter/governance/blob/master/projectlicense.md when we propose appropriate changes.

@jzf2101
Copy link

jzf2101 commented Sep 8, 2017

Another thing that should be considered is that we should make it easy for users to find our license. GitHub indicates on the top bar of the repo page what kind of license is used if it's a text file under the name LICENSE. GitHub hasn't been able to identify our licenses when we use other conventions, see:

https://github.com/jupyter/notebook

@jasongrout
Copy link
Member

@jasongrout any other preferred thing for non-software, CC-BY ? CC-BY-SA ?(https://choosealicense.com/non-software/)

See also the FSF guidelines for more ideas and an idea of how they do it: https://www.gnu.org/licenses/license-recommendations.html#documentation

@jzf2101
Copy link

jzf2101 commented Sep 8, 2017

We also should have an onboarding process for adding licenses to repos that join the jupyter orgs

@takluyver
Copy link
Member

This is closely related to a pet peeve of mine: please don't assume that docs - or licensing - is an easy task for new contributors to work on. We aren't very interested in doing these things, so it's tempting to fob them off on new contributors, especially when we're struggling to find coding-related tasks for them. But then we get low quality contributions with a strong social pressure to accept them, because we've already misled someone into thinking that this is an easy, useful thing for them to do.

@mpacer
Copy link
Member

mpacer commented Sep 12, 2017

I am somewhat on board with CC0 for small code snippets and maybe basic templates (like cookie cutters). However, I feel like in general for docs, larger code chunks & templates (those that we don't want to BSD as part of the libraries), tutorials, and fleshed out templates that give a lot of guidance should probably default to CC-BY (not SA… which seems contrary to the purpose of BSD/MIT licenses we have previously employed).

There are lots of reasons to do that, but the few that I can think of right now:

  • it signals that we consider non-software contributions to be on par with software contributions in terms of their worth as intellectual property worth establishing attribution on
  • it will be easier to enforce the Jupyter trademark if we do require attaching our brand to our non-software content
    • if we consider non-software projects intellectual property worth spending time on – which I'm guessing we all do – CC0 would literally make it impossible to enforce attribution, which means a dilution of the Jupyter brand in its ability to uniquely attach itself to the IP produced by Jupyter in a way that ensures that we are the IP source
  • We can encourage contributors to release their own work CC-By (e.g., tutorials) and then separately submit them to the Jupyter org where we can incorporate it & modify it as it best makes sense for our project (while continuing to attribute the original work to the author unless they decide to retroactively assign partial copyrights to Jupyter).
    • this encourages people to put their own work out there and get credit for it, while at the same time giving us a clear path for integrating it into Jupyter IP with no pressure on us to do so (since the work has already been published and not in a CC0 way so the author will still assuredly get credit)

Edit: originally it say easier to enforce if we do not require attaching our brand, which is he opposite of what I intended as the follow up section hopefully made clear. But I edited for clarity to say do.

@minrk
Copy link
Member

minrk commented Sep 12, 2017 via email

@jzf2101
Copy link

jzf2101 commented Sep 12, 2017

Is there a way we can ensure that more complex licensing terms be easily found? As far as I know, GitHub won't highlight our license if it isn't simple.

@minrk
Copy link
Member

minrk commented Sep 12, 2017

Great question! One is guidelines for new repos, as you suggested above. Another is separate license files in the docs and/or examples directories as appropriate for the given repo. However, we cannot easily change licenses of sections of existing repos if we didn't follow these guidelines already.

@willingc
Copy link
Member

It would be helpful to have a template/cookiecutter/example/checklist when starting a new project repo.

General information on Licensing for Humans (not lawyers)

Karl Fogel's book Producing Open Source, which is open source, has a lot of useful information.

License for Documentation - BSD recommendation

I agree with @jasongrout re: "Most documentation (except the code samples), websites, etc. should not be CC0 in my opinion." I would expect documentation written for a project to have the same modified BSD license. Personally, I expect the documentation that I have written and their associated builds to be BSD.

For simplicity, I would even keep tutorials, cookiecutters, etc. as BSD. It's much simpler than asking each time "should this be BSD or CC0". All of these have code to some degree for generation, build, etc. and there's really no big downside AFAIK to prefer BSD.

In general, consulting an attorney with experience in open source and licensing is the best approach.

@jasongrout
Copy link
Member

It would be helpful to have a template/cookiecutter/example/checklist when starting a new project repo.

+1

In general, consulting an attorney with experience in open source and licensing is the best approach.

Definitely +1. Whatever consensus we come to should be run by someone like that, I think.

@ellisonbg
Copy link
Contributor

ellisonbg commented Sep 23, 2017 via email

jasongrout added a commit to jasongrout/ipywidgets that referenced this issue Jul 16, 2018
Based on discussion at jupyter/governance#37 and discussion from the links on that issue, I made the following changes:

1. Delete the COPYING.md, as it was redundant
2. Changed the LICENSE copyright dates to just have the starting year

I also added LICENSE to the widgetsnbextension package (thanks to @jakirkham for noticing this in jupyter-widgets#2048).

This supersedes jupyter-widgets#1706, which was reverted in master while the discussion was still happening.
jasongrout added a commit to jasongrout/jupyterlab that referenced this issue Jul 19, 2018
Based on discussions at jupyter/governance#37,  as well as information at the links from that discussion, I made the following updates:

1. Changed the copyright notice years to just the first year.
2. Formatted the BSD license as on the OSI license page at https://opensource.org/licenses/BSD-3-Clause (change the bullets to numbers, insert spaces to line things up)
3. Update the Help|About dialog to reflect these updates (both the license year, and correct the license holder to our official “Project Jupyter Contributors”)
blink1073 pushed a commit to jupyterlab/jupyterlab that referenced this issue Jul 19, 2018
Based on discussions at jupyter/governance#37,  as well as information at the links from that discussion, I made the following updates:

1. Changed the copyright notice years to just the first year.
2. Formatted the BSD license as on the OSI license page at https://opensource.org/licenses/BSD-3-Clause (change the bullets to numbers, insert spaces to line things up)
3. Update the Help|About dialog to reflect these updates (both the license year, and correct the license holder to our official “Project Jupyter Contributors”)
@jasongrout
Copy link
Member

Updates from the mailing list discussion linked above, where changes were approved by a number of Jupyter project leaders:

  • Replace "Project Jupyter Team" by "Project Jupyter Contributors" in our copyright notice in files.
  • Move to an exact copy of the BSD license rather than one with subtle changes.

These changes were implemented in JupyterLab and approved and merged by Fernando.

jasongrout added a commit to jasongrout/governance that referenced this issue Sep 9, 2019
These changes come from discussion at jupyter#37 and on the mailing list thread https://groups.google.com/forum/#!topic/jupyter/vZpWgw8zKdc

Summary of changes:

* Update primary license name to 3-Clause BSD License to reflect the opensource.org and spdx.org primary names for the license

* Make copyright owner “Project Jupyter Contributors” to reflect discussion in the mailing list thread. We do not view this as a change, but rather as a clarification of our shared copyright model.

* Wrap all columns to 78 or fewer characters

* Update BSD conditions to be enumerated with numbers, following the text on opensource.org and spdx.org

* In condition 3, replace “Jupyter Development Team” with the exact license text “copyright holder”.

* We previously had, in the disclaimer section, a sentence starting with “IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS…”. OWNER is now replaced with HOLDER, to reflect the license text on opensource.org and spdx.org

* Update the per-file license statement with “Project Jupyter Contributors” and “3-Clause BSD License” terminology.
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.

8 participants