ashb commented on a change in pull request #21356: URL: https://github.com/apache/airflow/pull/21356#discussion_r806223009
########## File path: README.md ########## @@ -308,6 +309,54 @@ They are based on the official release schedule of Python and Kubernetes, nicely * Previous versions [require](https://github.com/apache/airflow/issues/8162) at least Python 3.5.3 when using Python 3. +## Approach to dependencies of Airflow + +Airflow has a lot of dependencies - direct and transitive, also Airflow is both - library and application, +therefore our policies to dependencies has to include both - stability of installation of application, +but also ability to install newer version of dependencies for those users who develop DAGs. We developed +the approach where `constraints` are used to make sure airflow can be installed in a repeatable way, while +we do not limit our users to upgrade most of the dependencies. As a result we decided not to upper-bound +version of Airflow dependencies by default, unless we have good reasons to believe upper-bounding them is +needed because of importance of the dependency as well as risk it involves to upgrade specific dependency. +We also upper-bound the dependencies that we know cause problems. + +The constraint mechanism of ours takes care about finding and upgrading all the non-upper bound dependencies +automatically (providing that all the tests pass). Our `main` build failures will indicate in case there +are versions of dependencies that break our tests - indicating that we should either upper-bind them or +that we should fix our code/tests to account for the upstream changes from those dependencies. + +Whenever we upper-bound such a dependency, we should always comment why we are doing it - i.e. we should have +a good reason why dependency is upper-bound. And we should also mention what is the condition to remove the +binding. + +### Approach for dependencies for Airflow Core + +Those `extras` and `providers` dependencies are maintained in `setup.cfg`. + +There are few dependencies that we decided are important enough to upper-bind them by default, as they are Review comment: ```suggestion There are few dependencies that we decided are important enough to upper-bound them by default, as they are ``` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: commits-unsubscr...@airflow.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org