3b1b / manim

Animation engine for explanatory math videos
MIT License
60.28k stars 5.7k forks source link

Project lacks a software license #24

Closed hashar closed 6 years ago

hashar commented 7 years ago

At first, thank you for publishing the source of the videos. That is very nice from a software point of view. I would like to contribute a bit with some trivial software quality and found out the project lacks a license.

A license protect your rights and lets users have a guarantee they are not breaching your rights when reusing your software. That is quite important. Github has a FAQ about it https://help.github.com/articles/licensing-a-repository/ and have even created a tutorial to pick one https://choosealicense.com/

The three top recommendations are the most popular licenses: MIT and Apache 2.0 Licenses are very permissive, GPLv3 guarantee derivative are placed under the same license (it is viral).

The repository 3b1b/manim host both the software and the code to generate the video. Most probably the software can be placed under an open source license that would let others reuse the project. The YouTube videos do not seem to be free to redistribute, so maybe the code that is used to generate them should be under a different license.

Thank you for all the videos :]

waldyrious commented 7 years ago

The YouTube videos do not seem to be free to redistribute

The videos can be placed under a Creative Commons license, FWIW -- YouTube's settings support that natively.

2mac commented 6 years ago

+1 for this request, and an additional note.

I personally recommend against the MIT and Apache 2.0 licenses for a couple of reasons. The MIT license contains some ambiguous language that is removed in the ISC license, and the Apache 2.0 license has requirements on what can be done with supplemental files that aren't part of the software.

I recommend the COIL as a replacement for either of these. It is a short, permissive license like the MIT license but also protects you from patent trolls like the Apache 2.0 license.

I would like to emphasize the importance of adding a license to your project. As it currently stands, it may indeed be illegal in many jurisdictions for anyone to make modifications to this software. If your goal is to have an open source project with contributors, an open source license is an absolute requirement. If your goal is to have proprietary software (which it technically currently is), why host it on GitHub at all? Adding a license will make your software much more attractive to people who know the legal side of open source and will allow operating system maintainers to add your software to their repositories (which is likely to gain you extra contributors).

vors commented 6 years ago

@3b1b polite ping, can you, please, share your thoughts about it? This is currently a big blocker for many people who otherwise can start collaborating together.

3b1b commented 6 years ago

Ah yes, thanks for the ping. I keep putting this off as other things fill my plate. The main reason I want to give it proper time do it the right way is that the repository currently contains a weird mix of tools which I do intend to be open, and video-specific scripts which are really intended only for 3b1b videos (though I'm more than happy for people to look through them). I know the right answer here is probably simple and straightforward (e.g. just make them separate), I just personally want to take the time to feel confident in that.

If you'll forgive me for just a bit here while I get another video finished up, I'll be sure to have this addressed within a week.

vors commented 6 years ago

Awesome thank you for sharing!

I totally support your thinking - please, take time to setup the licenses / repos. One option that may be worth considering is to keep everything in the same repo like it's done now. You can have different licenses for different parts of the repo and keep you workflow as is, without splitting.

I have some small experience with such project. Here is the license file for SublimeREPL https://github.com/wuub/SublimeREPL/blob/d17e8649c0d0008a364158d671ac0c7d33d0c896/LICENSE-LIB.txt The repo contains part of other people work under GPL and the code written by the author is licensed with BSD. On top of it it was relicensed from BSD to GPL at some point (but attributed to another author). Here is how I used parts of this package in my work with (hopefully) proper attribution https://github.com/vors/jupyter-powershell/tree/e418eb055b4d89ef88249e1b6a1bd7e0835e19d0#aknowledgement

This is hardy the best example, but I just shared it to highlight the point that licenses can be applied creatively and don't have to be 1:1 correspondence with github repos.

3b1b commented 6 years ago

Thanks for your patience, and apologies for taking so long to get back to this. I have now added an MIT license, with a simple clause to exclude the files under active_projects and old_projects.

From what I can tell this should be alright, but if any of you see this as problematic please let me know.

hashar commented 6 years ago

Well done. Thank you @3b1b