通过 ClearlyDefined 众包许可证合规性

许可协议将开源维系在一起,ClearlyDefined 消除了项目许可协议、版权和来源位置的神秘感。
264 位读者喜欢这篇文章。
Crowdfunding

Opensource.com

开源使用继续 стремительно 增长,不仅在用例和场景方面,而且在数量方面也是如此。对于开发人员来说,通过单次运行 npm install 依赖 1,000 个 JavaScript 包或在 Docker 镜像中拥有数千个包是微不足道的。与此同时,人们越来越关注确保许可证合规性。

如果没有正确的许可证,您可能无法以您想要的方式合法使用软件组件,或者可能承担与您的商业模式相悖的义务。例如,一个 JavaScript 包可能被标记为 MIT 许可证,该许可证允许商业重用,而它的一个依赖项被许可为 著佐权许可证,要求您在相同的许可证下免费提供您的软件。合规意味着找到适用的许可证,并评估和遵守条款,这对于单个组件来说还不错,但对于大型项目来说可能令人生畏。

幸运的是,这个开源挑战有一个开源解决方案:ClearlyDefined。ClearlyDefined 是一项众包、开源的 开源促进组织 (OSI) 工作,旨在收集、整理和向上游/规范化关于开源组件的数据,例如许可证、版权和来源位置。这些数据是减少开源许可证合规性摩擦的基石。

ClearlyDefined 背后的前提很简单:我们都在努力查找和理解与我们使用的开源相关的关键信息——无论是查找许可证、了解要归属的对象,还是识别与特定包相关的源代码。ClearlyDefined 允许我们协作并分担合规工作,而不是各自独立挣扎。此外,ClearlyDefined 社区寻求向上游推送任何更正,以便未来的版本能够更清晰地定义,并使约定更加明确,以提高社区对项目意图的理解。

工作原理

ClearlyDefined's harvest, curate, upstream process

ClearlyDefined 监控开源生态系统,并使用一系列开源工具(如 ScanCodeFOSSologyLicensee)自动收集来自开源组件的相关数据。结果被汇总和聚合以创建定义,然后通过 API 和 UI 呈现给用户。每个定义包括

  • 组件的声明许可证
  • 在所有文件中发现的许可证和版权
  • 精确的源代码位置,精确到提交级别
  • 发布日期
  • 嵌入式组件列表

巧合的是(嗯,其实不是),这正是您进行许可证合规性所需的数据。

整理

由于工具问题或数据在源头丢失或不正确,任何给定的定义都可能存在差距或缺陷。ClearlyDefined 使用户能够通过改进值和填补空白来整理结果。这些贡献会像任何开源项目一样被审查和合并。结果是改进的数据集,供所有人使用。

抢占先机

在某种程度上,这个过程仍然是在追逐问题——在软件包已经发布后进行分析和整理。为了抢占先机,ClearlyDefined 社区还将合并的整理结果反馈给原始项目,作为拉取请求(例如,添加许可证文件、澄清版权)。这提高了未来版本的清晰度,并建立了一个良性循环。

适应,而非强制

在进行分析时,我们发现了许多表达许可证相关数据的方法。不同的社区将 LICENSE 文件放在不同的位置,或者在署名方面有不同的做法。ClearlyDefined 的理念是发现这些约定并适应它们,而不是要求社区做不同的事情。这样做的一个附带好处是,可以使隐式约定更加明确,从而提高所有人的清晰度。

与此相关的是,ClearlyDefined 注意不要过于努力地寻找这些有趣的数据。如果我们必须过于聪明并推断太多才能找到数据,那么很有可能源头并不那么清晰。相反,我们更愿意与社区合作,以更好地理解和澄清正在使用的约定。从那里,我们可以相应地更新工具,并使其更容易“清晰定义”。

NOTICE 文件

作为用户的额外福利,我们设置了一个 API 和 UI,用于生成 NOTICE 文件,使您可以轻松地遵守大多数开源许可证中发现的署名要求。您可以向 ClearlyDefined 提供组件列表(例如,将 npm package-lock.json 文件拖放到 UI 上),并取回由多个渲染器之一(例如,文本、HTML、Handlebars.js 模板)渲染的完整 NOTICE 文件。鉴于我们已经拥有所有合规性数据,这非常简单。在此衷心感谢 OSS Attribution Builder 项目,感谢他们制作了一个简单且可插拔的 NOTICE 渲染器,我们可以直接将其插入 ClearlyDefined 服务中。

参与其中

您可以通过以下几种方式参与 ClearlyDefined

  • 成为活跃用户,为您的合规工作流程做出贡献
  • 使用界面审查其他人的整理结果
  • 参与 代码(Node 和 React)
  • 我们的邮件列表Discord 频道 上提问和回答问题
  • 向 OSI 捐款,用于 ClearlyDefined。我们将用这笔钱来资助开发和整理。

我们很高兴继续发展我们的贡献者社区,以便许可协议可以继续成为任何团队采用开源的易于理解的一部分。有关更多信息,请查看 https://clearlydefined.io

标签

评论已关闭。

© . All rights reserved.