0
0
Fork 0
mirror of https://github.com/renovatebot/renovate.git synced 2025-05-12 23:51:55 +00:00
renovatebot_renovate/lib/modules/manager/mix
2025-05-08 11:02:42 +00:00
..
__fixtures__ feat(mix): add depType support (#33310) 2025-01-09 10:38:35 +00:00
__snapshots__ feat(mix): implement lockFileMaintenance (#33326) 2025-03-26 09:00:27 +00:00
artifacts.spec.ts feat(mix): implement lockFileMaintenance (#33326) 2025-03-26 09:00:27 +00:00
artifacts.ts fix(mix): redirect archives cache (#35806) 2025-05-08 11:02:42 +00:00
extract.spec.ts test: cleanup (#34785) 2025-03-13 17:52:09 +00:00
extract.ts feat(mix): add depType support (#33310) 2025-01-09 10:38:35 +00:00
index.ts feat(config): managerFilePatterns (#34615) 2025-05-04 08:30:24 +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 lockFileMaintenance (#33326) 2025-03-26 09:00:27 +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.