-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.pmat-gates.toml
More file actions
47 lines (40 loc) · 1.93 KB
/
.pmat-gates.toml
File metadata and controls
47 lines (40 loc) · 1.93 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# pmat quality gates for shipping-rust
#
# Mirrors what `gate` enforces in CI and what `make ship-ready` runs
# locally. Editing a threshold here is a deliberate signal that the
# bar moved; CI is still the source of truth for whether a PR merges.
[gates]
run_clippy = true # cargo clippy --workspace --all-targets -- -D warnings
clippy_strict = true # workspace lints: unsafe_code = forbid, pedantic on
run_tests = true # cargo test --workspace --all-targets + --doc
test_timeout = 300
check_coverage = true # cargo llvm-cov --fail-under-lines 100
min_coverage = 100.0 # 100% line coverage gate (etl-core + etl-cli)
check_complexity = true
max_complexity = 15
# Cargo workspace-specific gates
[gates.workspace]
# Toolchain pin — must match rust-toolchain.toml + [workspace.package].rust-version
msrv = "1.95.0"
# Supply chain
run_audit = true # cargo audit --deny warnings
run_deny = true # cargo deny check
run_doc = true # cargo doc -D warnings (no broken intra-doc links)
# Format / repo shape
fmt_check = true # cargo fmt --all -- --check
bashrs_lint = true # bashrs lint Makefile + Dockerfiles
pv_lint = true # pv lint contracts/
# Binary size / artifact gates
[gates.binary]
# Strip+musl scratch-image target for `etl`. Hard fail above this.
max_release_bytes = 8_388_608 # 8 MiB
# Bench harness — smoke-tested in CI (--test), full criterion run locally
[gates.bench]
harness = "criterion"
smoke_in_ci = true # cargo bench --workspace -- --test
full_locally = true # cargo bench --workspace
sizes = [1_000, 10_000, 100_000] # rows-per-bench (Throughput::Elements)
# Container size budget — informational, not enforced as a gate today
[gates.container]
scratch_target_mb = 2 # README claim: <2 MB scratch+musl image
distroless_target_mb = 30 # README claim: ~25 MB distroless cc-debian12