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.
