The `rust` tool was resolved via the `github-tags` datasource on `rust-lang/rust` with the default (semver) versioning. That meant the release channel values rustup actually accepts were not understood. Switch all three managers to the `rust-version` datasource, which declares `rust-release-channel` as its `defaultVersioning`, matching the `rust-toolchain` manager and `lib/util/exec/containerbase.ts`. `packageName` becomes `rust` rather than the `rust-lang/rust` owner/repo slug, which is meaningless for this datasource. It is set rather than omitted because mise would otherwise fall back to the backend-prefixed depName, yielding `core:rust` / `asdf:rust` as the package name. No explicit `versioning` is set: the datasource default already applies, and the convention in these files is to set `versioning` only to override a datasource default. Behaviour change: `nightly-<date>` pins were previously skipped as `invalid-value` and now update. `stable`, `beta` and `nightly` are now recognised as ranges rather than flagged invalid, but still only resolve to a concrete version under `rangeStrategy: pin`.
2.3 KiB
Renovate can update tool versions in proto .prototools configuration files.
How it works
Proto uses .prototools files (TOML format) to pin tool versions at the directory level.
Tool versions are declared as top-level key-value pairs:
node = "22.14.0"
bun = "1.2.2"
go = "~1.22"
proto = "0.56.0"
Renovate extracts these version pins and updates them using the appropriate datasource for each tool.
Non-version sections ([settings], [plugins], [tools], [env], [shell], [backends]) are ignored.
Supported tools
Renovate's proto manager supports the following built-in proto tools:
| Tool | Datasource | Package |
|---|---|---|
bun |
github-releases |
oven-sh/bun |
deno |
github-releases |
denoland/deno |
go |
github-tags |
golang/go |
moon |
github-releases |
moonrepo/moon |
node |
node-version |
node |
npm |
npm |
npm |
pnpm |
npm |
pnpm |
yarn |
npm |
@yarnpkg/cli |
python |
github-tags |
python/cpython |
ruby |
ruby-version |
ruby-version |
rust |
rust-version |
rust |
proto |
github-releases |
moonrepo/proto |
gh |
github-releases |
cli/cli |
poetry |
github-releases |
python-poetry/poetry |
uv |
github-releases |
astral-sh/uv |
Limitations
-
Third-party plugins: Tools installed via
[plugins]URLs (custom WASM plugins) are reported asunsupported-datasourceand skipped. You can use Renovate'scustomManagerswith regex to handle these if needed. -
Version aliases: Values like
latest,stable,canary, ornightlyare skipped as they cannot be updated via semver. -
Version ranges: Proto supports partial versions (
22,~1.20,^3.1) which Renovate passes through as-is. The appropriate versioning strategy for each datasource handles these. -
asdf backend syntax: Proto supports
"asdf:tool" = "version"syntax for tools via the asdf backend. This is not currently supported by the manager.