smartcontractkit / hardhat-starter-kit

A repo for boilerplate code for testing, deploying, and shipping chainlink solidity code.
MIT License
1.21k stars 490 forks source link

CC0 licence? #60

Closed voltrevo closed 2 years ago

voltrevo commented 2 years ago

Hi there. I was wondering if you would consider switching to a public domain licence like CC0 or the unlicense?

Complying with the MIT licence is often not too hard - if you're using a library then you have an exact copy and you simply preserve the licence declaration. Easy. Not so when creating a derivative work, and this is a template project so all usage is derivative in nature. How do you refer to the code that remains copied from here to attribute the MIT licence?

If a part of that project itself is used to create another derivative work, how is that author to know if they have used any of this project's code, and whether they are subject to its MIT licence? That downstream author, if paying attention to compliance, may be forced to write something like:

Though I am not aware of any specific examples, there may be portions of this   
project that are considered derivative of hardhat-starter-kit. The copyright       
for those portions would be held by pappas999 (c) 2021, and the MIT licence        
below would apply.

(MIT licence goes here)

IANAL, but to the best of my knowledge, project authors are required to do this kind of thing. I think it's a bit silly, and it would be better if we all stopped worrying about attribution in open source licences, and just committed the work to the public domain (assuming having other projects benefit from your work is the goal, of course).

Wdyt?

PatrickAlphaC commented 2 years ago

Thanks for bringing this up! @StephenFluin wondering if you have any insight here?

StephenFluin commented 2 years ago

The MIT license is often chosen purposefully so that derivative works remain open source. https://www.gnu.org/licenses/copyleft.en.html

voltrevo commented 2 years ago

The MIT license is often chosen purposefully so that derivative works remain open source. https://www.gnu.org/licenses/copyleft.en.html

If that's the intention then wouldn't the GPL better serve that goal?

I'm not sure that MIT is intended to be copy-left in this way. My understanding is that MIT is permissive, promoting wide adoption, and the terms are there merely to disclaim liability and preserve some credit for the author, deliberately avoiding any additional restrictions on derivative works, since that would inhibit derivative works.

Of course, if you consider this copy-left aspect of the MIT licence to be a feature and not a bug, then I respect that. Personally though, it means I'd rather put together a hardhat project manually than use this template.

StephenFluin commented 2 years ago

We're choosing the MIT license intentionally because it strikes the right balance of permissiveness and copy-left, which we think enables most developers and companies to adopt it.

This decision is in line with most of the software in our space (eg https://github.com/ethereum/solc-js/blob/master/LICENSE, https://github.com/smartcontractkit/chainlink/blob/develop/LICENSE).

Thanks for sharing the feedback and we'll continue looking at this over time to see if this is helping or hurting developers.