v3.30.1 — docs.rs has never built this crate
cargo install pmat / pmat = "3.30.1"
docs.rs
3.30.0, 3.29.0 and 3.28.2 are all on crates.io with no API documentation. docs.rs had
never built this crate, and nothing noticed for three releases because both available signals
read as success: docs.rs returns HTTP 200 for a failed build (the page it serves says
"failed to build"), and cargo doc locally runs on stable without docsrs defined, so the
failure reproduced on no invocation anyone ran.
The cause was this crate's own manifest. docs.rs turns [package.metadata.docs.rs] rustc-args
into RUSTFLAGS, which applies to the compilation of every dependency — and
lexical-util 1.0.7 (arrow-cast ← arrow ← aprender-db ← aprender-graph, non-optional) opens
with #![cfg_attr(docsrs, feature(doc_auto_cfg))], a feature removed in Rust 1.92:
RUSTFLAGS="--cfg docsrs" cargo +nightly check -p lexical-util → E0557
cargo +nightly check -p lexical-util → ok
pmat has zero cfg(docsrs) sites, so the flag bought nothing and cost the entire public API
documentation. A second failure sat behind the first — --generate-link-to-definition is
nightly-only and needs -Z unstable-options — so fixing rustc-args alone would have traded
one broken build for another with an unrelated-looking error.
Also fixed
--features agents-mdand--features unified-protocolhad never compiled.notify,
bytesandhttpwere declaredoptional = trueand enabled by no feature, so both failed
with unresolved imports in every build ever made.five-whysignored--depthabove 3 and stamped 100% confidence on hypotheses the same
report disclaimed as repo-wide signals. Every severity scale was a hard clamp real
repositories blow past — 62 SATD markers against a cap of 10, 29 commits against 20 — so
every severity pinned to 1.0 and the early exit fired on iteration 3 every time.--depth 1,2,3,5,7,10now yields 1,2,3,5,7,10 whys where it yielded 1,2,3,3,3,3.enforcereported "dead code could not be measured" for measurable projects — a
hardcoded 60s wall-clock budget around acargo checkexpired on work progressing normally.
New
CB-081-F: Workspace Member From Registry— a sibling pulled from crates.io instead of
the in-tree copy, split out of CB-081's undifferentiated duplicate count because that remedy
is unconditional. Matches[lib]name as well as[package]name, treats-and_as the
same character (as Cargo does), and scans[workspace.dependencies].- Feature-matrix CI — every advertised feature compiles, lib and bin, plus
clippy --all-targets. The previous CI compiled only--bin pmatwith default features,
which is how six features shipped broken. - docs.rs CI gate — reproduces the docs.rs environment on nightly and refuses
rustc-args;
a second leg reads docs.rs'sstatus.json, since the page is HTTP 200 either way. - Package-size gate — 3.30.0 went out at 94% of the crates.io 10 MiB ceiling, and an
oversized upload returns a bare 503 while--dry-runpasses because it never uploads. This
release packages at 7.4 MiB.
Full detail in CHANGELOG.md.