docs(ci): correct the cargo-audit rationale to the real dependency surface (#125) - #157
Merged
Conversation
…rface The comment justifying the scope of the supply-chain gate said the root crate ships "only `xxhash-rust` and `libc` as production deps — both well-maintained — so the practical risk surface is small". That has been false since encryption landed. The root [dependencies] block lists nine direct production deps, six of them cryptographic, and they are unconditional — there is no encryption feature gate, so the seal/open code is always compiled. The audit surface is the whole RustCrypto AEAD/KDF stack and its transitives. It is false in the direction that matters: a reader deciding whether `cargo audit` alone is sufficient makes that call from the comment, and a two-dependency picture argues for less tooling than a crypto stack does. Also records the two MSRV-motivated downgrade pins (`zeroize = "~1.8"`, `base64ct = "~1.6"`, both held below edition2024 releases to keep the 1.82 floor the msrv job enforces). Deliberately held back means deliberately not receiving upstream fixes, and nothing else in CI would surface that — so they belong in the comment that decides how much supply-chain scrutiny this repo applies. Leaves the open question stated rather than answered: there is no deny.toml, so nothing gates on licenses, duplicate versions or banned crates. Defensible for two leaf utilities, a bigger call for the current tree. Closes #125.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #125. Stacked on #156. Comment-only — no behaviour change.
The comment justifying the scope of the supply-chain gate said the root crate ships "only
xxhash-rustandlibcas production deps — both well-maintained — so the practical risk surface is small".That has been false since encryption landed. The root
[dependencies]block lists nine direct production deps, six of them cryptographic:They are unconditional — there is no
encryptionfeature gate, so the seal/open code is always compiled. The audit surface is the whole RustCrypto AEAD/KDF stack plus its transitives, not two leaf utilities.It is false in the direction that matters. This comment is the recorded reason the repo runs this much supply-chain tooling and no more; a reader deciding whether
cargo auditalone is sufficient makes that call from it, and a two-dependency picture argues for less tooling than a crypto stack does.Also recorded: the two MSRV-motivated downgrade pins
zeroize = "~1.8"base64ct = "~1.6"argon2 0.5.3depends on it transitivelyBoth preserve the 1.82 floor the
msrvjob enforces. Deliberately held back means deliberately not receiving upstream fixes, and nothing else in CI would surface that — so they belong in the comment that decides how much supply-chain scrutiny this repo applies.Left stated, not answered
There is no
deny.toml, so nothing gates on licenses, duplicate versions, or banned crates. That was a defensible call for a two-dependency tree; it is a more substantial one now. Flagged in the comment as a decision to make rather than silently resolved here.