RainLoop / rainloop-webmail

Simple, modern & fast web-based email client
http://rainloop.net
MIT License
4.12k stars 896 forks source link

Contributor License Agreements #692

Open RainLoop opened 9 years ago

RainLoop commented 9 years ago

TODO:

git log --format="%ae" | sort | uniq

related to #625

RainLoop commented 9 years ago

Thanks to @pietroalbini

pietroalbini commented 9 years ago

No problem :)

RainLoop commented 9 years ago

There is a proposal to license translations under a different license (MIT for example). What do you think about this? This will reduce the number of people who need to sign the CLA agreement.

pietroalbini commented 9 years ago

This might work... But you need to choose a permissive license for those, which should allow you to use them also in the standard release. And also, you must specify really well which part of the repository is under which license.

I've checked also who changed something that's not the translations file, and there are 20 except you actually. This is the command I used, which returns the email addresses of these people:

for contributor in `git log --format="%ae" | sort | uniq`; do if for commit in `git log --author="$contributor" --format="%H"`; do git diff-tree --no-commit-id --name-only -r $commit; done | sort | uniq | grep -v rainloop/v/0.0.0/langs >/dev/null; then echo $contributor; fi; done

It's up to you to decide if adding another license to the mix is a good thing, to avoid 10 contributors to sign the CLA. You might get more easy contributions to the language files, but you'll never have the ability to relicense those, except if you'll redo the whole process we're discussing now. Also, you might have troubles in the future about three licenses for only one project.

And again, I'm not a lawyer :)

PS: there is also this other "little" command, which shows which files someone changed. I've made it while building the above one, and you might find this useful.

for commit in `git log --author="foo@example.com" --format="%H"`; do git diff-tree --no-commit-id --name-only -r $commit; done | sort | uniq
RainLoop commented 9 years ago

Thanks!

Also, you might have troubles in the future about three licenses for only one project.

What about other libraries? They all have its own license.

https://github.com/RainLoop/rainloop-webmail/tree/master/vendors https://github.com/RainLoop/rainloop-webmail/tree/master/rainloop/v/0.0.0/app/libraries

pietroalbini commented 9 years ago

Then you should manually check for compatibility between the libraries' licenses and your licenses (AGPL and the RainLoop Software License).

About my statement, I wrote it because having a separate license for the translations might led to unexpected consequences in the future, like if you update the standard version's license and it results to be incompatible with the translations' one. In that case, you'll have to contact all the original contributors, and this might became hard to do in the future (for example, someone who died -- hopefully no one).

If you want some examples about the damages of that, you can read about the bukkit (minecraft custom server) licenses' story. A component of it (the original, decompiled code from the proprietary minecraft server code) was incompatible with the license of the rest of the source code, and one of the old developers (which contributed 1/3 of the source code) sent a DMCA to the project, which is now dead.

RainLoop commented 9 years ago

Then you should manually check for compatibility between the libraries' licenses and your licenses (AGPL and the RainLoop Software License).

Yes, of course, their licenses are allow me to use them in my software.

RainLoop commented 9 years ago

small fixes

for contributor in `git log --format="%ae" | sort | uniq`; do if for commit in `git log --author="$contributor" --format="%H"`; do git diff-tree --no-commit-id --name-only -r $commit; done | sort | uniq | grep -vE '^(rainloop/v/[^/]+/langs|plugins)' >/dev/null; then echo $contributor; fi; done

this command gives me 17 contributors (3 of them is me) = 14

pietroalbini commented 9 years ago

Any news on this?

RainLoop commented 9 years ago

Sorry, I very busy last weeks.

Harmony CLA:

http://static.rainloop.net/docs/RainLoop-Individual.pdf http://static.rainloop.net/docs/RainLoop-Entity.pdf

What do you think?

pietroalbini commented 9 years ago

I think it's ok. Now there is the annoying part, which means contacting everyone who contributed. What will requre the CLA? All the source code or all without the translations?

HLFH commented 9 years ago

@RainLoop Hi =) Any updates on this? Thanks!