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.
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 defaultdev: dependencies with:onlyoption 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. |
Recommended rangeStrategy for apps and libraries
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.