Configuration reference (`lading.toml`)

Version 0.2.0 Updated Jun 21, 2026

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 []. Additional Cargo.toml manifests whose adjacent Cargo.lock files should be regenerated after lading bump. The workspace root Cargo.toml is always included and should not be listed.
  • rebuild_lockfiles: boolean, default true. Controls whether lading bump regenerates the workspace lockfile and configured nested lockfiles after manifest updates. Pass --no-rebuild-lockfiles to skip regeneration for a single run, or --rebuild-lockfiles to force regeneration when rebuild_lockfiles is configured as false.

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", or false; 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 (package or publish).
  • missing_crate — the name of the workspace dependency absent from the index.

`[preflight]`

  • test_exclude: array of strings, default []. Crate names to exclude from cargo test by passing --exclude.
  • unit_tests_only: boolean, default false. Append --lib --bins to the pre-flight cargo test invocation.
  • 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 --extern entries to append to RUSTFLAGS for compiletest-style suites.
  • env: table of string keys and values, default {}. Environment overrides applied to git/cargo invocations run by publish.
  • stderr_tail_lines: integer greater than or equal to zero, default 40. Number of lines to tail from referenced *.stderr files when tests fail.