0
0
Fork 0
mirror of https://github.com/renovatebot/renovate.git synced 2025-01-11 05:39:10 +00:00
renovatebot_renovate/lib/modules/manager/mix
2025-01-09 14:54:48 +00:00
..
__fixtures__ feat(mix): add depType support (#33310) 2025-01-09 10:38:35 +00:00
__snapshots__ fix(mix): authenticate hex private repos configured in hostRules (#23901) 2023-08-17 21:13:03 +00:00
artifacts.spec.ts refactor(prettier): Force trailing commas (#25631) 2023-11-07 15:50:29 +00:00
artifacts.ts feat(config): support user configured env (#27028) 2024-02-22 05:05:05 +00:00
extract.spec.ts feat(mix): add depType support (#33310) 2025-01-09 10:38:35 +00:00
extract.ts feat(mix): add depType support (#33310) 2025-01-09 10:38:35 +00:00
index.ts feat(mix): implement getRangeStrategy (#33322) 2025-01-09 14:54:48 +00:00
range.spec.ts feat(mix): implement getRangeStrategy (#33322) 2025-01-09 14:54:48 +00:00
range.ts feat(mix): implement getRangeStrategy (#33322) 2025-01-09 14:54:48 +00:00
readme.md feat(mix): implement getRangeStrategy (#33322) 2025-01-09 14:54:48 +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

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.