Files
Sebastian Poxhofer bf5ff94d28 refactor(manager): build artifact results with the shared helpers (#46092)
Migrate apm, bun, cargo, cocoapods, composer, conan, copier, deno,
devbox, gomod, helmv3, jsonnet-bundler, kustomize, mix, nuget and vendir
onto `fileAddition()`, `artifactError()` and `artifactErrorResult()`.
copier's private `artifactError()` is replaced by the shared one.

Behaviour change: artifact error text now comes from
`artifactErrorMessageFromExecError` everywhere, i.e. a non-blank
`err.stderr`, else a non-blank `err.stdout`, else `err.message`.
Previously apm used `${err}` ("Error: " prefix), cocoapods used a
nullish coalesce that kept an empty stderr, nuget preferred stdout over
stderr, and jsonnet-bundler emitted an undefined stderr with no
fallback. The rest used `err.message` only and are unchanged for errors
without output.
2026-09-16 13:13:41 +00:00
..

The mix manager uses Renovate's implementation of Elixir SemVer to evaluate update ranges.

The mix package manager itself is used to keep the lock file up-to-date.

The following depTypes are currently supported by the mix manager :

  • prod: all dependencies by default
  • dev: dependencies with :only option not containing :prod

lockFileMaintenance

We recommend you use lockFileMaintenance for the mix manager.

lockFileMaintenance=true periodically refreshes your mix.lock files, ensuring all indirect dependencies are updated to their latest allowed versions.

This option will be skipped in umbrella projects, as they share a single mix.lock file for all applications mix.exs files.

Default rangeStrategy=auto behavior

Renovate's default rangeStrategy is "auto". Here's how "auto" works with the mix manager:

Version type New version Old range New range after update What Renovate does
Complex range 1.7.2 < 1.7.0 or ~> 1.7.1 < 1.7.0 or ~> 1.7.2 Widen range to include the new version.
Simple range 0.39.0 <= 0.38.0 <= 0.39.0 If update outside current range: widens range to include the new version.
Exact version constraint 0.13.0 == 0.12.0 == 0.13.0 Replace old version with new version.

For applications, we recommend using rangeStrategy=pin. This pins your dependencies to exact versions, which is generally considered best practice for apps.

For libraries, use rangeStrategy=widen with version ranges in your mix.exs. This allows for greater compatibility with other projects that may use your library as a dependency.