我的项目适合什么样的开源许可?
如果你们是从头开始的,那么使用 MIT License ,不容易出错。它很短,很容易理解,并允许任何人做任何事情,只要他们保留许可证的副本,包括你们的版权声明。如果你们需要,您们能够根据不同的许可协议发布项目。
否则,为项目选择合适的开源许可协议,取决于你们的目标。
你们的项目非常可能有(或将有)依赖。例如,如果你们开源了一个 Node.js 的项目,你们将可能使用来自 npm(Node Package Manager)的库。你们依赖的这些库都有它们自己的开源许可协议。如果他们的许可协议”允许”(对使用,修改和分享给予公共权限,而对有关项目的许可协议没有要求),这样你们就可以使用任何你们想要的许可协议。共同允许许可协议包括 MIT,Apache 2.0 ,ISC 和 BSD。
另一方面,如果你们的依赖中有一个的许可协议是“强硬的 copyleft ”(也给予公众相同的权限,但条件是有关项目得使用同样的许可协议),那么你们的项目将必须使用与之相同的许可协议。copyleft 许可协议包括 GPLv2,GPLv3 和 AGPLv3。
你们也会想要考虑你们希望的社区使用以及为你们的项目做贡献:
- 你们是否想让你们的项目成为其它项目的依赖?在你们的相关社区最好尽可能使用最流行的许可协议。例如,MIT 是 npm libraries 使用的最流行的许可协议。
- 你们的项目是否想吸引大企业?大型企业可能需要所有贡献者的明确专利许可。在这种情况下,Apache 2.0 适合你们。
- 你们的项目是否想吸引不愿自己的贡献用于其它同类型软件的贡献者? GPLv3 和 AGPLv3 适合你们。
你们的公司可能为自己的项目准备了特定的许可协议。例如,它可能需要宽松的许可证,以便公司可以在公司的闭源产品中使用你们的项目。或者你们的公司要求严格的 copyleft 许可协议和一份附加的贡献者协议,以便除了你们公司以外,没有人能在封闭源代码的软件中使用你们的项目。或者你们的公司可能有与标准,社会责任或透明度相关的某些需求,其中任何一个都可能需要特定的许可策略。与你们公司的法律部门 谈谈。
当你们在 GitHub 上创建了一个新项目,它给你们提供了选择许可协议的选项。包括上面提到的可以使你们的GitHub项目开源的许可协议。如果你们想要了解其他选择,可以通过查阅 choosealicense.com 找到适合你们项目(即使它不是软件 )的许可协议。