Files
Tobias Bieniek 40251b2462 feat(rust-toolchain): Add rust-toolchain manager (#38554)
* feat(rust-toolchain): Implement `rust-toolchain` manager

* feat(rust-toolchain): Add support for legacy filename

* feat(rust-toolchain): Add support for legacy file format

* refactor(rust-toolchain): Reject empty `channel` strings at parse stage

* tests(rust-toolchain): Cover valid TOML missing `[toolchain]` or `channel`

* refactor(rust-toolchain): Log legacy format fallback at `trace` level

* refactor(rust-toolchain): Reject empty and multi-line legacy files explicitly

* tests(rust-toolchain): Cover unparseable channel value

* tests(rust-toolchain): Use `codeBlock` for multi-line fixtures

* docs(rust-toolchain): Scope pin example to `rust-toolchain` manager

Co-authored-by: Sergei Zharinov <1239644+zharinov@users.noreply.github.com>

* tests(rust-toolchain): Use `codeBlock` for schema fixtures too

---------

Co-authored-by: Sergei Zharinov <1239644+zharinov@users.noreply.github.com>
2026-05-20 15:22:59 +00:00

37 lines
1.2 KiB
Markdown

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](https://rust-lang.github.io/rustup/overrides.html#the-toolchain-file).
### Version pinning
If you'd like to pin your toolchain to a particular version, the following configuration can be applied:
```json
{
"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._