60 lines
2.7 KiB
TOML
60 lines
2.7 KiB
TOML
# KEY-05 layer (c) — make the `rand` major-version split VISIBLE rather than silent.
|
|||
|
|
#
|
||
|
|
# WHY
|
||
|
|
# F-07 / R-05 asked for exactly one thing: a rule that fails the build when the
|
||
|
|
# duplicate `rand` majors in this graph change, "so the split is visible rather
|
||
|
|
# than silent". Two majors coexist today and that is tolerated-and-recorded, not
|
||
|
|
# fixed — bumping is not casual on a tree that pins `bip39` and `bitcoin` exactly.
|
||
|
|
#
|
||
|
|
# The contract this file encodes:
|
||
|
|
# - the tree AS IT STANDS passes;
|
||
|
|
# - a THIRD `rand` version, or a change to either member of the current pair,
|
||
|
|
# FAILS.
|
||
|
|
#
|
||
|
|
# POLICY DECISION (checkpoint 10-06 Task 5, decided 2026-08-02)
|
||
|
|
# Selected: **bans-only**. The `advisories` section is deliberately NOT enabled.
|
||
|
|
# An advisories gate fails builds when a new CVE is published against an existing
|
||
|
|
# dependency, with no change to this repository — on a tree where several agents
|
||
|
|
# commit and push continuously, an unrelated upstream disclosure would block
|
||
|
|
# everyone at an arbitrary hour, and the remediation is often a dependency bump
|
||
|
|
# that is itself a phase-sized change. No break-glass procedure exists today.
|
||
|
|
# Consequence, recorded rather than glossed: F-07's advisory half stays OPEN.
|
||
|
|
#
|
||
|
|
# Tool legitimacy: cargo-deny is published by EmbarkStudios
|
||
|
|
# (github.com/EmbarkStudios/cargo-deny), ~4.79M all-time downloads. CI pins 0.20.2
|
||
|
|
# (published 2026-07-09).
|
||
|
|
|
||
|
|
[bans]
|
||
|
|
# Global default stays permissive: this repo has many legitimately-duplicated
|
||
|
|
# transitive crates, and turning them all into build failures is not what F-07
|
||
|
|
# asked for and would be a large, unrelated cleanup.
|
||
|
|
multiple-versions = "allow"
|
||
|
|
|
||
|
|
# ...but `rand` specifically is change-detecting.
|
||
|
|
[[bans.deny]]
|
||
|
|
name = "rand"
|
||
|
|
deny-multiple-versions = true
|
||
|
|
|
||
|
|
# Grandfather entry — dated 2026-08-02, per F-07.
|
||
|
|
#
|
||
|
|
# Tolerates the CURRENTLY KNOWN second major so the rule lands green instead of
|
||
|
|
# turning CI red on the day it ships. Anything outside this exact pair trips the
|
||
|
|
# rule above.
|
||
|
|
#
|
||
|
|
# rand 0.8.5 — direct dependency (core/archipelago/Cargo.toml), and also via
|
||
|
|
# archipelago-security, bip39 2.1.0, mainline, secp256k1,
|
||
|
|
# tungstenite 0.20.1
|
||
|
|
# rand 0.9.2 — transitive only, via totp-rs 5.7.0 and tungstenite 0.26.2
|
||
|
|
# (through nostr-sdk)
|
||
|
|
#
|
||
|
|
# WHEN THIS FIRES: do not widen the skip list reflexively. A third version means a
|
||
|
|
# new dependency brought its own `rand`; decide deliberately whether to accept it,
|
||
|
|
# and if so record where it comes from here, the same way these two are recorded.
|
||
|
|
[[bans.skip]]
|
||
|
|
name = "rand"
|
||
|
|
version = "=0.9.2"
|
||
|
|
|
||
|
|
# Deliberately empty: see the policy decision above. Re-enabling this is a policy
|
||
|
|
# change that needs a break-glass procedure agreed first, not a quiet edit.
|
||
|
|
# [advisories]
|