-
Notifications
You must be signed in to change notification settings - Fork 16.4k
Description
Body
Following example of #34293, we should have a test that should run all our tests with MINIMUM possible versions of all our 700 dependencies. This will protect us against the cases where we did not bump the min version where we needed to.
This should be quite possible, though figuring out the consistent, minimum version of dependencies will be rather complex piece of pip machinery. Currently pip does not have a good mechanism similar to eager upgrade strategy to help us to figure out what are the minimum versions of dependencies that are non-conflicting.
Having this tests however, would close the gap in our process where we do not realize that we are using newer features of a dependency or forget to update it as min-version when we do realise it. This is not a huge problem in many cases because of our constraints strategy, however there were quite a few issues in the past where users did not use constraints to upgrade Airflow and some old dependencies were not upgraded because min-version for those dependencies were not updated even if airflow implicitly depended on it.
Another benefit of bumping min-versions is that it decreases the time needed to resolve dependencies for Airflow by pip. Bumping (in justified cases) min-versions for dependencies will limit the space in which pip resolver looks for non-conflicting dependency set and makes it run faster and sometimes prevents it from failing when the space is too large (see #33649 ).
Committer
- I acknowledge that I am a maintainer/committer of the Apache Airflow project.