0
0
Fork 0
mirror of https://github.com/renovatebot/renovate.git synced 2025-02-28 10:34:06 +00:00
renovatebot_renovate/lib/modules/manager/mix
2025-02-26 15:45:17 +00:00
..
__fixtures__ feat(mix): add depType support (#33310) 2025-01-09 10:38:35 +00:00
__snapshots__ test: migrate to vitest (#34475) 2025-02-26 09:35:54 +00:00
artifacts.spec.ts test: migrate more to vitest (#34500) 2025-02-26 15:45:17 +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.