Notable changes to the allow-list tool, newest first. Version numbers mark
CLI releases (so a consumer can pin a specific build, e.g. cargo install --tag);
they are not a library API compatibility promise.
gen-licenses-log/gen-licenses-log-dirnow skip first-party (path / workspace-local) crates. TheirPackageIdembeds an absolute build path that differs between environments (for example acrosscontainer mounted at/projectversus the host that rancargo metadata), so they could not be matched by id across environments. They are not third-party dependencies, so they are excluded from the report; the fail-closed check still applies to every registry crate.
-
gen-licenses-logandgen-licenses-log-dirsubcommands that derive the third-party license report from a cargo build log (cargo build --message-format=json) rather than a CycloneDX SBOM. The build log defines scope (the crates that were actually compiled), and each compiled crate's identity is resolved to a typed name and version viacargo metadata --format-version 1output, supplied with--metadata.This avoids over-listing optional / feature-gated dependencies that appear in the resolved dependency graph but are not compiled into a given build. For example, a
--no-default-featuresbuild that disables serial support no longer reports the serial-only crates (serialport,tokio-serial, etc.) in its license file, which a CycloneDX-derived report incorrectly includes.The existing
gen-licensesandgen-licenses-dir(CycloneDX) subcommands are unchanged.
- Initial release:
gen-licensesandgen-licenses-dirsubcommands that produce a human-readable third-party license report from a CycloneDX SBOM, validated against a JSON allow-list configuration.