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 在 开发工具 中
每月下载量 2,340
21KB
404 行
DataDog Rust License Tool
本项目包含一个工具,可以从Rust项目中创建LICENSE-3rdparty.csv
文件。此文件是Datadog发布开源代码的标准要求。
用法
-
使用
cargo
安装工具:cargo install dd-rust-license-tool
-
在您的项目目录中,使用以下命令创建许可证列表文件:
dd-rust-license-tool write
。 -
在您的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