As noted in #43761, we had recently set `CI=true` for the Renovate and Containerbase orgs on Mend-hosted apps due to a pnpm v11 requirement: ERR_PNPM_ABORTED_REMOVE_MODULES_DIR_NO_TTY Aborted removal of modules directory due to no TTY If you are running pnpm in CI, set the CI environment variable to "true", or set "confirmModulesPurge" to "false". Similarly in #43606, it was noted that we should do this for `mise lock` to mark the workspace as "trusted". Although we went with a different situation, there will be cases where this is useful for tools being executed, for instance when we invoke `yarn`. We also make sure to keep our documentation up-to-date as we add to the specific overrides. With help from Claude Sonnet and Opus to: - perform some of the mechanical updates as part of this change - ensure that the Docker sidecar always has `hardcodedProcessEnv` passed into it - catch a needed change to `exposeAllEnv` handling Co-authored-by: Claude Opus 5 <jamie.tanna+claude-code@mend.io> Co-authored-by: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
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.