
Co-authored-by: Rhys Arkins <rhys@arkins.net> Co-authored-by: Michael Kriese <michael.kriese@gmx.de>
2.4 KiB
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: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. |
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.