mix version pinning format is inconsistent #39708
Unanswered
skyqrose
asked this question in
Request Help
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
How are you running Renovate?
A Mend.io-hosted app
Which platform you running Renovate on?
GitHub.com
Which version of Renovate are you using?
42.19.9
Please tell us more about your question or problem
TL;DR: One Renovate PR tried to pin my mix version requirements like
"2.0.0"and a different PR tried to pin them like"== 2.0.0".I have an elixir application (closed source, so I can't link it, sorry) using mix packages and
"rangeStrategy": "pin". I installed renovate on it relatively recently, so I'm still going through some of the setup and initial dependency updates on it.In mix, you can pin dependencies either as
"== 2.0.0"or"2.0.0", they mean the same thing.I had manually written all my version constraints as
"== 2.0.0". Renovate gave me, and I approved and merged, a PR titled "chore(deps): pin dependencies", which converted all the version constraints to"2.0.0"without the==. This PR was a little unnecessary, but if renovate has a preference, I'm happy to follow it, this is fine so far.But then an open PR, which was a bump from
"== 2.0.0"to"== 2.0.1", was updated to change to a bump from"2.0.0"to"== 2.0.1". It's trying to put the equals back. I worry that if I accept that PR, renovate will fight with itself, I'll get a PR afterwards trying to re-pin it.I would expect the mix manager to either have a single preferred way to write pinned versions and use that always, or for it to accept either format as pinned and make any updates consistent with what's there already.
(suggested labels:
manager:mix,datasource:hex)Logs (if relevant)
Log excerpt from before merging the pin dependencies PR
{ "currentValue": "== 1.8.1", "currentVersion": "1.8.1", "currentVersionAgeInDays": 95, "currentVersionTimestamp": "2025-08-29T02:06:56.448Z", "datasource": "hex", "depName": "phoenix", "depType": "prod", "fixedVersion": "1.8.1", "homepage": "https://hex.pm/packages/phoenix", "isSingleVersion": false, "lockedVersion": "1.8.1", "mostRecentTimestamp": "2025-11-26T18:35:41.021Z", "packageName": "phoenix", "registryUrl": "https://hex.pm", "sourceUrl": "https://github.com/phoenixframework/phoenix", "versioning": "hex", "warnings": [], "updates": [ { "updateType": "pin", "isPin": true, "newValue": "1.8.1", "newVersion": "1.8.1", "newMajor": 1, "branchName": "renovate/pin-dependencies" }, { "bucket": "non-major", "newVersion": "1.8.2", "newValue": "== 1.8.2", "releaseTimestamp": "2025-11-26T18:35:41.021Z", "newVersionAgeInDays": 5, "newMajor": 1, "newMinor": 8, "newPatch": 2, "updateType": "patch", "isBreaking": false, "isRange": true, "libYears": 0.24571678630771182, "branchName": "renovate/phoenix-1.x" } ] },Log excerpt of trying to add the == back
{ "depName": "phoenix", "depType": "prod", "currentValue": "1.8.1", "datasource": "hex", "packageName": "phoenix", "lockedVersion": "1.8.1", "updates": [ { "bucket": "non-major", "newVersion": "1.8.2", "newValue": "== 1.8.2", "releaseTimestamp": "2025-11-26T18:35:41.021Z", "newVersionAgeInDays": 5, "newMajor": 1, "newMinor": 8, "newPatch": 2, "updateType": "patch", "isBreaking": false, "isRange": true, "libYears": 0.24571678630771182, "branchName": "renovate/phoenix-1.x" } ], "versioning": "hex", "warnings": [], "sourceUrl": "https://github.com/phoenixframework/phoenix", "registryUrl": "https://hex.pm", "homepage": "https://hex.pm/packages/phoenix", "mostRecentTimestamp": "2025-11-26T18:35:41.021Z", "currentVersion": "1.8.1", "currentVersionTimestamp": "2025-08-29T02:06:56.448Z", "currentVersionAgeInDays": 95, "isSingleVersion": false, "fixedVersion": "1.8.1" },Beta Was this translation helpful? Give feedback.
All reactions