-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCargo.toml
More file actions
104 lines (95 loc) · 3 KB
/
Copy pathCargo.toml
File metadata and controls
104 lines (95 loc) · 3 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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
[package]
name = "ctxgrd"
version = "2.1.0"
edition = "2021"
rust-version = "1.89"
description = "Document linter with pluggable sources and rules"
license = "MIT"
authors = ["Aktagon <christian@aktagon.com>"]
repository = "https://github.com/aktagon/ctxgrd"
homepage = "https://github.com/aktagon/ctxgrd"
documentation = "https://docs.rs/ctxgrd"
readme = "README.md"
keywords = ["linter", "markdown", "adr", "documentation", "cli"]
categories = ["command-line-utilities", "development-tools"]
# Explicit allow-list for what `cargo publish` ships. Anything not
# listed here stays out of the published crate, even if present in
# the working directory at publish time.
include = [
"src/**/*",
"tests/**/*",
"examples/**/*",
"Cargo.toml",
"Cargo.lock",
"Makefile",
"README.md",
"CHANGELOG.md",
"LICENSE-MIT",
"rust-toolchain.toml",
# User-facing reference docs. src/bin/ctxgrd/main.rs embeds these via
# include_str! into the `ctxgrd docs <topic>` subcommand, so they
# are bin compile-time dependencies.
"docs/namespaces.md",
"docs/rules.md",
"docs/sources.md",
"docs/references.md",
"docs/migration/**/*",
"assets/**/*",
]
[lib]
path = "src/lib.rs"
[[bin]]
name = "ctxgrd"
path = "src/bin/ctxgrd/main.rs"
[dependencies]
# Library errors — derive-macro-only, no runtime surface.
thiserror = "1"
# Binary-only by convention: `anyhow` imports live in src/bin/**. The
# single-crate layout shares [dependencies] across lib + bin, so this
# is grep-discipline, not build-enforced.
anyhow = "1"
clap = { version = "4", features = ["derive"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
serde_yaml = "0.9"
toml = "0.8"
walkdir = "2"
pulldown-cmark = "0.10"
regex = "1"
wait-timeout = "0.2"
tempfile = "3"
# Gitignore-faithful glob matching for the `[ignore]` patterns block
# in ctxgrd.toml. Safe, well-maintained, part of the burntsushi /
# ripgrep stack.
globset = "0.4"
# Reference scanner stack (ADR-001 § REF-002). Inherits ripgrep's
# literal pre-filter, lazy DFA, SIMD acceleration, binary detection,
# and parallel gitignore-honoring directory walk. Approved 2026-04-26.
grep-searcher = "0.1"
grep-regex = "0.1"
ignore = "0.4"
tower-lsp = "0.20"
tokio = { version = "1", features = ["full"] }
[dev-dependencies]
insta = "1"
assert_cmd = "2"
predicates = "3"
# Property-based testing for the reporting layer (HANDOFF-037 § A10).
# Approved 2026-08-02. Of 41 filed bugs, 18 live in claim/dispatch (11)
# and reporting (7) while exactly one is in the DAG — the reporting
# surfaces are where hand-picked examples keep missing cases, because the
# defects are arithmetic relationships between counts (`ready + blocked +
# settled == |documents|`) rather than behaviours of a particular input.
# Test-only; no runtime surface.
proptest = "1"
[lints.rust]
unsafe_code = "forbid"
rust_2018_idioms = { level = "warn", priority = -1 }
unreachable_pub = "warn"
[lints.clippy]
all = "warn"
[profile.release]
opt-level = 3
lto = "fat"
codegen-units = 1
strip = true