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


Reply via email to