Files
renovate/lib/modules/manager/proto/readme.md
Sebastian Poxhofer a2d1b8cf0a fix(manager/asdf,mise,proto): use rust-version datasource for rust (#45143)
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`.
2026-08-10 07:54:37 +00:00

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 as unsupported-datasource and skipped. You can use Renovate's customManagers with regex to handle these if needed.

  • Version aliases: Values like latest, stable, canary, or nightly are 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.