-
Notifications
You must be signed in to change notification settings - Fork 22
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
Create Downgrade-CI and bump lower compat bounds #391
base: master
Are you sure you want to change the base?
Conversation
Following the general suggestion [here](https://discourse.julialang.org/t/psa-add-downgrade-ci-to-better-check-version-compatability/110063). I'm trying the workflow file from [here](https://gist.github.com/aplavin/ec1024d00db6ebe8a7fa0a38aa8cca6c) to speed up finding bad lower bounds.
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #391 +/- ##
=======================================
Coverage 96.95% 96.95%
=======================================
Files 12 12
Lines 394 394
=======================================
Hits 382 382
Misses 12 12 ☔ View full report in Codecov by Sentry. |
I guess this means some of the lower bounds are outdated/no longer working. |
Ok, these are the highest lower bounds that work. |
So now that we found good lower bounds, I will condition this O(number of compat entries) CI on a tag, and only use the downgrade action (which downgrades all packages at once) by default. So if the O(1) pipeline fails, one can put the tag on to trigger the O(n) pipeline that allows to find the minimal set of compats that needs bumping. |
I think I went about it the wrong way. I bumped the lower bounds before the pipeline was doing the correct thing. I should maybe start from scratch. |
Ok I think now we have it. Switching to the low-cost action now. |
I think the action that pins all dependencies at their minima is too restrictive. I will disable both by default and let them be enabled by the |
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.
I don't think I fully understand the action? Is the idea to see which is the lowest compatible version of our dependencies?
I am asking this because it looks like the result is much more restrictive than before |
The action fixes each dependency separately to its lowest version that still resolves, and runs tests there. In response, I bumped the lower bound to the lowest possible version where the test passes. Sure, it is more restrictive, but the looser bounds from before are broken. |
In contrast, the test-simple job would pin all dependencies to their lower bounds simultaneously and then runs tests there. I figured that this is too strict a requirement. |
Following the general suggestion here. I'm trying the workflow file from here to speed up finding bad lower bounds.
The PR raises lower bounds such that if any single one of the dependencies is pinned at the lower bounds
While this does not guarantee passing tests if multiple dependencies are held back at once, in my view it is an improvement over the status quo.