Hello Everyone,

We are close to the 2.3.0 release and we are starting to accumulate
changes that make the maintenance of Airflow 2.1 compatibility in
Providers more and more difficult. We implemented a lot of changes in
the Airflow core that we could take advantage of that we are not able
to now (common utils and functions) and we have a number of
deprecations we could remove if we get rid of 2.1 and 2.2
compatibility.

There is also a big change coming in Kubernetes Pod Operator (and
cncf.kubernetes) which will vastly improve and simplify the way it is
use and keeping 2.1 compatibility seems to be unnecessary and quite a
heavy burden (more about it here:
https://apache-airflow.slack.com/archives/CCPRP7943/p1640840944067500).

Also, we have a number of typing improvements in our "Bring back MyPY"
project https://github.com/apache/airflow/issues/19891 (which is
progressing well) and a number of benefits from applying those changes
across the board (one of the most important - Context being typing and
IDE friendly). Those will only show its true potential in Airflow
2.3+. Currently we have some workarounds related to that across pretty
much all providers (`if TYPE_CHECKING`) but they have some side
effects, and we could get rid of them and simplify provider's code if
we make our providers 2.3+ only.

I have a feeling that - similarly to what we 've done for Airflow 2.1
and @apply_defaults - it's about the time to make our Providers
"Airflow 2.3+ only" in one of the upcoming waves of providers.

This has also the nice benefit of incentivising our users to migrate
to 2.3+ if they need some features or bug-fixes only available in a
2.3+ provider. And this is a good thing IMHO.

What do you all think? Is it a good idea? Any strong opinions and
reasons why we should not do it?


J.

Reply via email to