lading looks for lading.toml in the workspace root. The file must be a TOML
table at the top level. Unknown keys are rejected with a configuration error.
All paths and globs are interpreted relative to the workspace root.
Complete example
[bump]
exclude = ["some-private-crate"]
lockfile_manifests = ["crates/nested/Cargo.toml"]
rebuild_lockfiles = true
[bump.documentation]
globs = ["README.md", "docs/**/*.md"]
[publish]
exclude = ["some-internal-tooling-crate"]
order = ["core", "utils", "app"]
strip_patches = "per-crate" # "all" | "per-crate" | false
[preflight]
test_exclude = ["slow-integration-suite"]
unit_tests_only = false
aux_build = [["cargo", "+nightly", "test", "-p", "lint", "--no-run"]]
compiletest_extern = {
ui_test_helpers = "target/debug/deps/libui_test_helpers.so"
}
env = { DYLINT_LOCALE = "en_GB" }
stderr_tail_lines = 40
`[bump]`
exclude: array of strings, default[]. Crate names to exclude from manifest updates.lockfile_manifests: array of strings, default[]. AdditionalCargo.tomlmanifests whose adjacentCargo.lockfiles should be regenerated afterlading bump. The workspace rootCargo.tomlis always included and should not be listed.rebuild_lockfiles: boolean, defaulttrue. Controls whetherlading bumpregenerates the workspace lockfile and configured nested lockfiles after manifest updates. Pass--no-rebuild-lockfilesto skip regeneration for a single run, or--rebuild-lockfilesto force regeneration whenrebuild_lockfilesis configured asfalse.
Lockfile regeneration runs
cargo update --workspace --manifest-path <manifest> for the workspace root
and each configured nested manifest. This updates workspace package entries
while avoiding a full transitive dependency refresh. If Cargo fails, manifest
changes have already been written. Fix the underlying Cargo error and rerun
lading bump, use --no-rebuild-lockfiles and regenerate lockfiles manually,
or run the relevant Cargo command yourself before committing the bump.
`[bump.documentation]`
globs: array of strings, default[]. Glob patterns for Markdown files whose TOML code fences should be updated.
`[publish]`
exclude: array of strings, default[]. Crate names to exclude from publication.order: array of strings, default[]. Explicit publish order; overrides dependency-derived ordering when present.strip_patches: one of"all","per-crate", orfalse; default"per-crate". Controls how[patch.crates-io]is edited in the staged workspace before packaging.
Observability
When lading runs, a structured JSON summary may appear in the log output at
INFO level just before the process exits. The flush is process-wide — any
command can emit it — and reports whichever metrics that run recorded. For
example, a publish run that downgraded an index-lookup failure emits:
lading metrics summary: [{"metric": "publish.index_lookup_downgrade", "labels": {"missing_crate": "...", "subcommand": "..."}, "value": 1}]
Each entry records a counter name, the label values that identify it, and the accumulated count for the current invocation. The summary line is omitted entirely when no metrics were recorded (quiet runs stay quiet).
publish.index_lookup_downgrade
Incremented on each downgrade event when a crates.io index-lookup failure for a
sibling workspace dependency is downgraded to a warning because
allow_unpublished_workspace_deps is enabled. Labels:
subcommand— the Cargo subcommand that failed (packageorpublish).missing_crate— the name of the workspace dependency absent from the index.
`[preflight]`
test_exclude: array of strings, default[]. Crate names to exclude fromcargo testby passing--exclude.unit_tests_only: boolean, defaultfalse. Append--lib --binsto the pre-flightcargo testinvocation.aux_build: nested array of strings, default[]. Extra tokenized commands to run before cargo pre-flight checks.compiletest_extern: table of string keys and values, default{}. Extra--externentries to append toRUSTFLAGSfor compiletest-style suites.env: table of string keys and values, default{}. Environment overrides applied to git/cargo invocations run bypublish.stderr_tail_lines: integer greater than or equal to zero, default40. Number of lines to tail from referenced*.stderrfiles when tests fail.