Files
Sebastian Poxhofer 183ee9caac fix(manager/rust-toolchain): report skipReason instead of dropping deps (#45144)
The manager emitted `logger.warn` four times during extraction and
returned `null` for content that is valid but not updatable. A
`rust-toolchain.toml` using `path` instead of `channel` is a legitimate
file, yet it failed schema validation and produced a maintainer-facing
warning.

Per the logging guidance in `docs/development/best-practices.md`, WARN
is consumed by metrics and error catching services, so it should not
fire for user content Renovate simply cannot update. The manager guide
also asks for a `skipReason` rather than silently dropping a dependency.

The schema now accepts an optional `channel` and an optional `path`, and
extraction reports:

- `invalid-version` when a channel cannot be parsed
- `path-dependency` when the file points at a local toolchain
- `unspecified-version` when neither field is set

`channel` takes precedence when both are present, since rustup rejects
that combination and `channel` is the actionable field.

Files that are not toolchain files at all still return `null`: TOML that
does not parse, TOML without a `[toolchain]` table, and legacy plain
text files that are empty or hold more than one line. The file pattern
matches any file named `rust-toolchain`, so these are treated as false
matches. All remaining logs are DEBUG.
2026-08-10 07:52:31 +00:00
..

This manager can be used to update the Rust toolchain version in rust-toolchain.toml and rust-toolchain files.

It supports both the TOML format and the legacy plain-text format as specified in the Rust toolchain documentation.

Version pinning

If you'd like to pin your toolchain to a particular version, the following configuration can be applied:

{
  "packageRules": [
    {
      "matchManagers": ["rust-toolchain"],
      "matchDepTypes": ["toolchain"],
      "rangeStrategy": "pin"
    }
  ]
}

Supported renovations

  • 1.90.0 → 2.0.0 (major version updates)
  • 1.90.0 → 1.91.0 (minor version updates)
  • 1.90.0 → 1.90.1 (patch version updates)
  • 1.90 → 2.0 (major range updates)
  • 1.90 → 1.91 (minor range updates)
  • nightly-2025-10-10 → nightly-2025-10-11 (nightly version updates)

With rangeStrategy: pin:

  • 1.90 → 1.90.0 (range pinning)
  • stable → 1.90.0 (stable channel pinning)
  • nightly → nightly-2025-10-11 (nightly channel pinning)

Note: The version numbers shown above are just examples for illustration purposes.