github 开源项目如何选择协议
在 github 创建开源项目的建议选择协议,或者说许可证。当然你可以不采用任何协议,那样就表示代码权给自己所有,别人不可以复制,不可以基于你的代码进行开发,这样还不如 把项目设置为私有。
应该根据自己项目的目标选择合适的协议,一般分为以下几种情况
- 通用许可协议,表示别人可以使用任何协议修改、使用、共享你的代码,包括MIT、 Apache 2.0, ISC, BSD。 当然如果你的项目依赖的项目中采用了这些协议,那么你的项目 可以随意选择你想用的协议
- 要求下游代码必须使用跟自己项目使用相同的协议,如GPLv2, GPLv3, AGPLv3,使用 权限个通用许可协议一致,但是要求依赖自己项目的其他项目必须采用相同的协议。
- 要考虑采用或者给自己项目做贡献的社区
- 如果希望自己的项目被其他项目依赖,建议选择通用的许可协议,如MIT
- 被企业采用,企业需要项目的明确许可,应采用Apache 2.0
- 不希望被用于闭源软件 GPLv3, 或者不对闭源软件做贡献 AGPLv3
- 公司/社区内部许可
更多参考 chose a license,可以在README中添加 相应许可协议的badage,参考这里