-
Notifications
You must be signed in to change notification settings - Fork 4k
Use constraint files to install dependencies on PRs #6396
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
Use constraint files to install dependencies on PRs #6396
Conversation
f7c88d0 to
2ff1b2a
Compare
2ff1b2a to
0ca812a
Compare
fdecf44 to
24f6435
Compare
bd4ca34 to
47f5fe4
Compare
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.
This LGTM + I'd be in favor of making this change!
I think we'll also want to get some other opinions from the team, though, because I could see an argument for never using constraint files when running CI to ensure that we maximize the probability that a breaking dependency is caught as quickly as possible, even if it does result in more pain for us (one could imagine a situation where we miss a breaking dependency for a full day or so because it's a slow day and no merges into develop occur).
In this case, I think that this change strikes the right balance between us being able to keep PRs moving in case a dependency does break and still being able to catch issues as they arise, but it'd be worth seeing what others think.
|
@vdonato scheduled builds never use constraints files, so we have at least 1 build every day that uses the latest dependencies. With this change, I would like to solve the problem that broken dependencies that have not been modified in any way hinder the work on independent changes. I will ask other people what they think about this change. |
📚 Context
This change introduces two changes:
Canary build
Canary build is a new concept, but these are PR builds that aim to quickly spot dependency issues or incompatibilities between different versions of Python.
A build is canary if one of the following conditions is met.
develop) is checked.All other build is non-canary build.
Constraints files
For pull requests or for local installation, constraint files will now be used by default. This will improve stability as we will be using dependencies that have already been proven to work. Canary build will always install the latest dependencies.
To force install the latest dependencies:
dev:upgrade-dependencieslabel.USE_CONSTRAINT_FILE=false.Contribution License Agreement
By submitting this pull request you agree that all contributions to this project are made under the Apache 2.0 license.