-
Notifications
You must be signed in to change notification settings - Fork 2.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(versioning): add devbox versioning module #31408
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So 1
and 1.2
are versions and not constraints?
If there are no constraints then isVersion()
and isValid()
should return same results for same inputs?
Yes isValid and isVersion return the same results for the same inputs, would you like me to update the tests to include all the same inputs? Devbox is fairly strict with it's versioning where it only supports "latest", "1", "1.2" and "1.2.3" formatted values, no ranges or constraints are allowed. I have made it so that "latest" does not show up as a valid version because I don't want renovate to modify that value. Should it still be valid though? |
I think it's a good idea. I would also like to see a test to make sure that
Ideally Renovate recognizes it as valid but never tries to update it. Are there lock files involved in devbox? |
Ok I'll add some additional tests then. Yeah devbox does have a lock file, so those "latest" dependencies will be updated when renovate runs devbox install, but I think that's expected behaviour. I'll add "latest" as a valid version. |
@rarkins So looking at updating the compare function now, when you said 1 and 1.2 are constraints did you mean that if 1 is set it should always find the largest version of 1 e.g. 1.2.3 and if it isn't a constraint then it should match only 1.0.0? Does that mean that |
If To use another angle, if your current value is |
Yeah ok I think I understand now, if the value is |
I have updated that now, let me know if the changes I have made are correct |
5a460d9
to
f11569c
Compare
In that case it sounds like you consider In case I have still managed to confused you, can you point me to an example package/datasource for devbox? I'd like to see if it returns results like |
Sure an example devbox.json is something like this https://github.com/jetify-com/devbox/blob/main/examples/development/nodejs/nodejs-typescript/devbox.json |
When I look at https://www.nixhub.io/packages/nodejs I don't see |
I have updated the PR to match that expectation, does this seem correct now? |
af86be4
to
2a88c83
Compare
The isVersion() and isValid() tests seems correct now, but the matches() ones now need updating too |
2a6da0b
to
3100bd8
Compare
e80f66f
to
f3d4a16
Compare
I have add the required urls export so the test will pass now @rarkins |
This is a very exciting feature! The PR seems to have stalled in review. Is there anything the community can do to help move it forward? |
Yes, you can help fix the tests |
Those coverage tests should be passing now @rarkins |
🎉 This PR is included in version 39.78.0 🎉 The release is available on: Your semantic-release bot 📦🚀 |
Changes
This PR adds devbox versioning, https://www.jetify.com/devbox. Devbox is a local development tool which creates local reproducible environments without docker containers.
Context
This PR is related to #30002
where I was asked to split that PR into one for the versioning, datasource and manager.
I am making these changes on behalf of Culture Amp as we are using renovate internally and have recently migrated to using devbox for our local developer environments.
This PR will ensure that all of our devbox.json files stay up to date with the rest of our repos.
#27543
Documentation (please check one with an [x])
How I've tested my work (please select one)
I have verified these changes via: