#datadog #license #config-file #3rdparty

app dd-rust-license-tool

一个用于创建DataDog开源Rust项目所需的LICENSE-3rdparty.csv文件的工具

4个稳定版本

1.0.3 2024年4月10日
1.0.2 2023年9月28日
1.0.1 2023年7月19日
1.0.0 2023年7月18日

43开发工具

Download history 415/week @ 2024-04-14 331/week @ 2024-04-21 402/week @ 2024-04-28 363/week @ 2024-05-05 258/week @ 2024-05-12 491/week @ 2024-05-19 376/week @ 2024-05-26 423/week @ 2024-06-02 544/week @ 2024-06-09 382/week @ 2024-06-16 337/week @ 2024-06-23 528/week @ 2024-06-30 570/week @ 2024-07-07 565/week @ 2024-07-14 621/week @ 2024-07-21 549/week @ 2024-07-28

每月下载量 2,340

MIT 许可证

21KB
404

DataDog Rust License Tool

本项目包含一个工具,可以从Rust项目中创建LICENSE-3rdparty.csv文件。此文件是Datadog发布开源代码的标准要求。

用法

  1. 使用cargo安装工具: cargo install dd-rust-license-tool

  2. 在您的项目目录中,使用以下命令创建许可证列表文件:dd-rust-license-tool write

  3. 在您的CI工作流程中,使用以下命令检查许可证列表文件是否更新:dd-rust-license-tool check

配置

许可证工具在启动时加载一个配置文件,该文件可能包含包的覆盖或补充数据。在crate没有提供主页或仓库URL,或者缺少显式许可证的情况下,这很有用。该配置文件的默认名称为license-tool.toml,但可以使用--config命令行选项进行覆盖。

示例

[overrides]
# These crates do not specify a homepage in their metadata.

"openssl-macros" = { origin = "https://github.com/sfackler/rust-openssl" }
"serde_nanos" = { origin = "https://github.com/caspervonb/serde_nanos" }

# `zerocopy` et al don't specify their licenses in the metadata, but the file contains the 2-clause
# BSD terms. These should use versioned identifiers, as they could change from version to version
# and so need to be reviewed after each version bump.

"zerocopy-0.6.1" = { license = "BSD-2-Clause" }
"zerocopy-derive-0.3.2" = { license = "BSD-2-Clause" }

存在其他现有项目,它们几乎提供了上述文件所需的数据。然而,它们都没有扫描项目中的实际许可证或源文件,这是在文件中生成“版权”字段所必需的,因此所有这些都需要作为后续步骤。其中大多数也没有报告crate的来源仓库,因此我们仍然需要解析cargo metadata输出。没有选项可以将输出写入CSV,因此还需要额外的后处理步骤。

cargo-about

集成了许可证有效性检查。

cargo-bundle-licenses

与这个类似类型的工具,具有上述所有限制。

cargo-deny

将所有结果按许可证分组,而不是按依赖项列出所有许可证,这使得无法生成准确的CSV列表。

cargo-license

具有上述限制。

extrude-licenses

仅是 cargo-license 的包装器,因此具有所有其限制。

依赖项

约 6.5–8.5MB
约 170K SLoC