ClearlyDefined,一年之后

自从开源促进会批准了 ClearlyDefined 作为其组织下的一个项目的提案以来,已经过去一年多了。到目前为止,该项目已与社区中的许多人合作,成功构建了一个强大的软件系统。我们想告诉您更多关于我们目前构建的内容以及您如何参与该项目的信息。
什么是 ClearlyDefined?
拥有关于开源的清晰许可证数据可以增强所有人的信心。项目希望他们的软件得到更广泛的应用,而这建立在对如何负责任地使用它的信心之上。开源项目的用户希望确信他们知道项目是如何获得许可的,以便正确遵守该许可证的条款。构建在开源之上的组织和公司希望确信他们了解他们使用的所有开源的合规义务。
进入 ClearlyDefined。ClearlyDefined 专注于澄清关于开源组件的数据。具体来说,最初的重点是关于开源的三个关键数据:许可证、源代码位置和署名方。关于这些数据的清晰度有助于每个人了解他们的义务,并对履行这些义务更有信心。
作为 OSI 的一个项目,我们在过去一年中花费了大量时间来构建软件,以促进项目以及围绕该项目的社区发展。
该项目围绕一个 3 步流程构建

- 采集 (Harvest):我们的目标是以尽可能自动化的方式获取尽可能多的关于开源组件的数据,因此首先我们使用开源工具从组件中采集有趣的数据。我们获取开源软件包,打开它们,在其上运行开源扫描工具,例如 ScanCode、FOSSology、Licensee 等,并聚合和总结结果,以生成我们能获得的关于组件的最佳许可证数据。原始数据和处理后的数据都免费提供给我们的用户。
- 策展 (Curate):即使这些工具在采集关于开源组件的有趣数据方面做得很好,但在许多情况下,我们仍然缺少数据,或者我们拥有的数据是模棱两可的。在这些情况下,ClearlyDefined 使整个社区能够参与进来并对数据进行更改(“策展”),以提高其质量。这些策展都是公开完成的,在 GitHub 上,通过 pull requests,并且旨在完全透明地进行讨论和达成共识。
- 上游 (Upstream):最终,事后收集和澄清许可证数据是一场失败的战斗。对于我们策展的所有数据,我们还在围绕将这些更改上游回溯到原始项目构建一个更大的流程。随着时间的推移,随着这些更改被整合到上游,这些组件的新版本以及整个开源世界将变得更加清晰地定义。
我可以使用 ClearlyDefined 吗?
是的!任何对关于开源的清晰许可数据感兴趣的人都可以使用 ClearlyDefined。您可以访问 clearlydefined.io 并浏览您最喜欢的开源组件,并在您的开源合规流程中使用它。如果您看到缺少或错误的东西,您可以直接在网站上修复它,并贡献更改以供审核!
当您在那里时,您可以使用该网站创建一个 NOTICE 文件。例如,只需将您的 NPM package-lock.json 文件拖放到Definitions 页面,然后使用“共享”按钮以您选择的格式创建和下载 NOTICE 文件。观看这个短视频以获得快速示例。

此外,所有这些数据和功能都可以通过 REST API 免费提供给任何人。
如果您是一名为您的社区制作开源的开发人员,请花一点时间确保您遵循您社区的许可规范。从一开始就拥有一个可发现的许可证文件和清晰的版权声明对于清晰地定义自己大有帮助。
我可以帮助 ClearlyDefined 吗?
如果您有兴趣帮助我们澄清我们已经采集的组件上的许可证数据,我们非常希望您来帮助我们策展。您可以在我们的文档中了解更多关于理念以及如何进行您的第一次策展的信息。
如果您有疑问或想进一步参与,请告诉我们,我们很乐意听到更多关于您的信息,因为我们将继续构建这个项目。您可以在 Discord、Twitter、Google Groups 和 GitHub 上找到我们。