GitHub 上的开源许可

目前还没有读者喜欢这个。
Two different business organization charts

Opensource.com

Ben Balter 头像,GitHub 政府事务Ben Balter 是 GitHub 的政府事务推广专员,他鼓励在政府实体中使用开源理念。在加入 GitHub 之前,他曾在美国总统行政办公室的首席信息官办公室担任研究员,在那里他曾参与起草总统的数字战略和开放数据政策,并在软硬件自动化技术 (SWAT) 团队(白宫第一个也是唯一一个敏捷开发团队)任职,并曾在联邦通信委员会管理主任办公室担任 新媒体研究员,在那里他在塑造该机构重新构想的网络形象方面发挥了核心作用。

他将在今年的 OSCON 大会上发表演讲,题为GitHub 上开源许可的数据分析,他的同事 Tal Niv 也将一同参与。我们联系了他,以便让您先睹为快,了解他的演讲内容。

开源许可对于 GitHub 及其用户有多重要?

如果没有开源许可证,就不会有开源这种东西。我们只会发布代码。开源许可证使代码从可用变为开放。正是这种自由支撑着人们使用和修改软件的能力。这是开源独有的特性,也是开源与其他所有软件的区别所在。虽然选择哪个许可证的具体细节可能并不总是最重要的,但您为代码许可的事实才是最重要的。

开源许可对于 GitHub 在两个方面非常重要:首先,作为世界上最大的代码集合的托管方,我们有一个独特的机会——并且可以说基于这个机会我们有义务——尽我们所能来支持开源社区,这显然包括开源许可。其次,作为一家建立在开源基础上的公司,我们所依赖的开源代码和我们为开源社区贡献的代码都得到适当的许可,以便其他人可以使用它,这一点非常重要。毕竟,这就是开源的意义所在。

用户在 GitHub 上最常用的许可证是什么?

到目前为止,最常见的许可证是 MIT 许可证,近一半的许可仓库选择了 MIT 许可证。我认为造成这种情况的一个重要原因是,今天的开发者在一个开源已经获胜的世界中学习编码。与闭源软件的摩擦已经不像以前那么大了,因此开发者通常会选择实用性而不是纯粹性。开发者贡献开源是因为他们想构建很酷的东西,并且他们相信这是构建软件的最佳(唯一?)方式。哲学动机虽然仍然是他们贡献的基础,但并不像以前那样突出。

如果您查看 MIT 许可证,它简明扼要。它告诉下游用户他们不能做什么,它包括版权(作者身份)声明,并且它声明免除默示保证(买者自负)。显然,这是一个为开发者优化的许可证。您不需要法律学位就能理解它,并且实施起来很简单。将其与 Apache 许可证 进行对比,尽管在您可以做什么和不能做什么方面几乎相同,但 Apache 许可证在“法律”方面更加繁琐,并且更加冗长。见鬼,仅解释如何应用许可证的附录就比整个 MIT 许可证还要长。显然,这是一个为律师优化的许可证。

另一个流行的许可证是 GPL 系列许可证,作为一种 copyleft(病毒式)许可证,它与 MIT 和 Apache 等许可证在类别上有所不同。您可以在 三月份的这篇博文 中看到许可证使用情况的相对细分。

GitHub 正在采取哪些措施来减少未许可仓库的数量?

理论上,我们可以修改我们的界面,使开源许可成为选择退出,而不是像今天这样成为选择加入,但是开源许可的问题不在于许可项目太难,而在于对于许多开发者来说,它非常令人生畏并且非常令人困惑。这就是我们创建 choosealicense.com 的原因,以帮助揭开正确许可您的项目过程的神秘面纱。Choosealicense.com 本身是开源的,而 Choosealicense 仓库 是为您在创建新仓库时看到的许可证下拉列表提供支持的工具。在我们推出该网站后,我们看到许可仓库的百分比显着增加,包括新的和历史的。很明显,用户想做正确的事情,但常常缺乏必要的资源。

我们还创建了 License API,以便开源的消费者(无论大小)可以更轻松地以机器可读或自动化的方式了解项目在何种许可证下获得许可。这意味着关注许可证合规性的组织可以编写传统的手动流程脚本,这应该会鼓励未许可或许可不当的项目更仔细地查看他们在什么条款下分发。许可证 API 还返回有关每个单独许可证的信息,包括许可证文本以及下游用户可以使用代码做什么和不能做什么,再次希望尽可能方便用户参与开源社区。

GitHub 员工如何与其社区互动?

与许多其他公司不同,在 GitHub,以个人身份参与开源社区和以 GitHub 员工身份参与之间通常几乎没有区别(至少在实践中是这样)。GitHub 是一家拥有强大开源历史的公司,在发布、使用或维护开源项目时,开发者被期望成为开源社区的正式成员,就像他们在周末进行一些有趣的黑客活动一样。这关乎参与更广泛的对话,关乎人性。GitHub 的开发者在开源项目和闭源项目之间来回切换是很常见的,甚至一天多次。 “互动”社区的最佳方式是真正成为其中的一份子。

作为我们开源文化的一部分,每隔一个星期五,GitHub 员工(从开发者到会计师)都会被鼓励从日常工作中抽出时间,花一天时间为开源做贡献。这可以是学习一个您以前没有使用过的新开源项目、分类问题、贡献文档,当然也可以是编码,但重点是,您正在为开源社区做出贡献。我们还在内部设立了一个开源团队,专门帮助 GitHub 员工创建、发布和维护开源软件。

最后,如果我不提 GitHub 的定价模式,那我就失职了。您在 GitHub 上所做的一切都是完全免费的,只要它是开源的。您只有在项目是闭源项目时才需要支付项目托管费用,您可能会从中获利。在某种程度上,您可以说 GitHub “征收”专有软件的“税”以支持开源。对此可能有很多解释,但作为一名软件开发者,最让我产生共鸣的想法是,过去十年左右创建的所有开源软件都具有巨大的价值,如果我们因为维护者无法或不愿永久支付托管费用而丢失其中一部分,那么软件开发领域的一部分将永远消失。

通过这种方式,您可以说 GitHub 构建于开源之上,为开源做出贡献,并支持开源社区。

您(作为 GitHub 员工)多久为托管在您服务上的仓库做出贡献?

我使用了 这个快速脚本 来查看 GitHub 员工在典型一周内的开源贡献以及 GitHub 维护项目的社区贡献。在本例中,这是 2015 年 6 月 15 日开始的一周的快照。在那一周,有

  • 创建了 33 个新的开源仓库
  • 3 个仓库从闭源变为开源
  • 1,173 条问题评论
  • 打开了 118 个问题
  • 关闭了 316 个问题
  • 打开了 137 个拉取请求
  • 合并了 193 个拉取请求
  • 37 个发布版本
  • 970 次推送
  • 4,857 次提交
  • 总共有 3,262 个开源“事件”(问题、评论、拉取请求等)

还有许多 GitHub 维护的项目,以及由 GitHub 员工维护或大量贡献的项目,包括 AtomElectronGit LFSHomebrewBootstrapHubotOctokitGitLinguist,这些项目每周都会收到来自 GitHub 员工的数百个问题、提交、评论和拉取请求。

OSCON
演讲者访谈

本文是 OSCON 2015 的 演讲者访谈系列 的一部分。OSCON 是关于开源的一切——全栈,包括您在日常工作中使用的所有语言、工具、框架和最佳实践。OSCON 2015 将于 7 月 20 日至 24 日在俄勒冈州波特兰举行。.

Aleksandar Todorović
我是 OCCRP 这个很棒的调查新闻网络的技术部门的一员。我非常热衷于开源软件、人工智能和信息安全。我的开源贡献现在已合并到 reddit、elementary OS 和 Tor Project 等项目中。我正在运营一个个人博客,在那里我分享我的个人故事。

2 条评论

Copyleft 许可证不是“病毒式的”。这是一个虚假且具有误导性的标签。没有人会违背自己的意愿使用 GPL 软件。如果 opensource.com 的好心人能够纠正这种事情就好了。

GPL 是病毒式的。我发布了一个开源软件,我本来想使用 MIT 许可证,但由于我们的软件链接到 GPL 许可的线性优化包 (GLPK),我们被迫以 GPL 许可它。

回复 作者:Wayne Maniq (未验证)

知识共享许可协议本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.