You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/config.md
+11Lines changed: 11 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -58,6 +58,7 @@ targets = [
58
58
msrv = true# Compute MSRV from dependencies
59
59
prune_dead_features = true# Remove unused features
60
60
detect_unused = true# Find unused dependencies
61
+
compiler_diag_cache = true# Reuse rustc diagnostics across runs
61
62
remove_unused = true# Auto-remove them
62
63
63
64
[release]
@@ -107,6 +108,7 @@ Controls workspace dependency unification behavior. All options are optional wit
107
108
|`enforce_msrv_inheritance`|`bool`|`false`| Ensure every workspace member inherits MSRV by setting `[package].rust-version = { workspace = true }` in each member's `Cargo.toml`. This makes `[workspace.package].rust-version` actually apply across the workspace. |
108
109
|`msrv_source`|`enum`|`"max"`| How to compute the final MSRV:<br>• `"deps"` - Use maximum from dependencies only (original behavior)<br>• `"workspace"` - Preserve existing rust-version, warn if deps need higher<br>• `"max"` - Take max(workspace, deps) - your explicit setting wins if higher |
109
110
|`detect_unused`|`bool`|`true`| Detect unused dependencies using two signals: (1) declared deps absent from the resolved cargo graph, and (2) rustc `unused_crate_dependencies` diagnostics for deps that resolve but are never referenced in source. Optional deps and deps behind unconfigured target constraints are conservatively skipped. |
111
+
|`compiler_diag_cache`|`bool`|`true`| Cache target-aware rustc `unused_crate_dependencies` diagnostics in `target/cargo-rail/cache/compiler-diags-v1.json` and reuse them across runs. Disable to force fresh compiler checks each run. |
|`prune_dead_features`|`bool`|`true`| Remove features that are never enabled in the resolved dependency graph across all targets. Only prunes empty no-ops (`feature = []`). Features with actual dependencies are preserved. |
112
114
|`preserve_features`|`string[]`|`[]`| Features to preserve from dead feature pruning. Supports glob patterns (e.g., `"unstable-*"`, `"bench*"`). Use this to keep features intended for future use or external consumers. |
@@ -123,6 +125,7 @@ msrv = true
123
125
msrv_source = "max"# "deps" | "workspace" | "max"
124
126
enforce_msrv_inheritance = false
125
127
detect_unused = true
128
+
compiler_diag_cache = true
126
129
remove_unused = true
127
130
prune_dead_features = true
128
131
preserve_features = ["future-api", "unstable-*"] # Keep these from pruning
@@ -202,6 +205,7 @@ msrv = true
202
205
msrv_source = "max"# "deps" | "workspace" | "max"
203
206
enforce_msrv_inheritance = false
204
207
detect_unused = true
208
+
compiler_diag_cache = true
205
209
remove_unused = true
206
210
prune_dead_features = true
207
211
preserve_features = [] # Glob patterns to preserve from pruning
@@ -260,6 +264,7 @@ sign_tags = true
260
264
|`changelog_relative_to`|`enum`|`"crate"`| What changelog paths are relative to:<br>• `"crate"` - Relative to each crate's directory<br>• `"workspace"` - Relative to workspace root |
261
265
|`skip_changelog_for`|`string[]`|`[]`| Crate names that should not generate changelog entries. |
262
266
|`require_changelog_entries`|`bool`|`false`| If `true`, error when there are no changelog entries for a crate being released. |
267
+
|`require_release_notes`|`bool`|`true`| If `true`, preflight fails release apply when the target version has no release notes (`## [<version>]`) and changelog generation produces no entries. Set to `false` to allow note-less releases. |
0 commit comments