deny.toml
Rama main · réplica de lectura del repositorio original.
# cargo-deny: the supply-chain gate. CI's `dependencies` job runs `cargo deny --locked check`
# on every push and PR, and release.yml re-checks the advisories before it tags a release.
# What to do when it fails is in CONTRIBUTING.md, "Dependencies".
[graph]
# Every optional feature too: the gate covers whatever any build of the workspace can link.
all-features = true
[advisories]
# Every RustSec advisory against a crate the workspace builds fails the gate: vulnerabilities,
# and the unmaintained and unsound notices of transitive crates too (a yanked version only
# warns). Cargo.lock also records optional crates no feature turns on (quinn, for reqwest's
# unused HTTP/3); the gate does not see those, so keep them patched with `cargo update` too.
# An entry here needs a reason, and goes once its crate is upgraded or dropped.
unmaintained = "all"
unsound = "all"
ignore = [
# A proc-macro lofty (tag and lyrics reading) builds with; every 0.25 release, 0.25.5
# included, depends on it. Not a vulnerability, and no code of it ships in the binary.
{ id = "RUSTSEC-2024-0436", reason = "paste: unmaintained proc-macro of lofty 0.25, no fixed release" },
]
[licenses]
# Licenses compatible with Ferrofin's GPL-3.0-only. A new one is a decision, not a fix:
# check its compatibility before adding it.
allow = [
"0BSD",
"Apache-2.0",
"Apache-2.0 WITH LLVM-exception",
"BSD-2-Clause",
"BSD-3-Clause",
"BSL-1.0",
"CC0-1.0",
"CDLA-Permissive-2.0",
"GPL-3.0-only",
"IJG",
"ISC",
"MIT",
"MIT-0",
"Unicode-3.0",
"Unlicense",
"Zlib",
"bzip2-1.0.6",
]
[bans]
# Two versions of a crate are reported, not refused: most come from transitive majors no
# manifest here chooses.
multiple-versions = "warn"
wildcards = "deny"
# The workspace's own path dependencies carry no version; that is not a wildcard.
allow-wildcard-paths = true
deny = [
# One TLS crypto backend: rustls and tokio-rustls use aws-lc-rs, so ring would be a second
# C/asm stack to build and to watch for advisories. Cargo.lock still lists it as an optional
# dependency nothing turns on; the ban is on building it.
{ crate = "ring", reason = "aws-lc-rs is the one rustls crypto provider" },
]
[bans.workspace-dependencies]
# A dependency several crates declare apart from the root [workspace.dependencies] (CLAUDE.md),
# and a workspace entry nothing uses. One crate's lone inline version passes this;
# scripts/check-workspace-deps.py, in the same CI job, refuses it.
duplicates = "deny"
include-path-dependencies = true
unused = "deny"
[sources]
unknown-registry = "deny"
unknown-git = "deny"