Use only-if-needed upgrade strategy to install deps for PRs #11363
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Currently, upgrading dependencies in setup.py still run with previous versions of the package for the PR which fails.
This PR will change it to only upgrade the package if a requirement is not satisfied (i.e. if we change the upper or lower bound of dependency in setup.py).
This will avoid the situation like #11020 and #11313 where we can't test upgrading the package in the PR itself. And we were "deadlocked" even after merging the PR as the constraints won't allow installing the new version of the package, I had to generate new constraints myself and push to constraints-master branch (e6e840f), this is not ideal and won't be possible for just contributors.
Using
only-if-neededupgrade strategy - packages are only upgraded if they are named in the pip command or a requirement file (i.e, they are direct requirements), or an upgraded parent needs a later version of the dependency than is currently installed.Example:
Using
only-if-needed:vs
Using
eager:^ Add meaningful description above
Read the Pull Request Guidelines for more information.
In case of fundamental code change, Airflow Improvement Proposal (AIP) is needed.
In case of a new dependency, check compliance with the ASF 3rd Party License Policy.
In case of backwards incompatible changes please leave a note in UPDATING.md.