Looking at the PR I see you are talking specifically about removing airflow/contrib/operators/ecs_operator.py.

I disagree with you that this doesn't count as a breaking change.

For example, if we remove that file:

I have a dag on Airflow 2.3. I upgrade to 2.4. My dag breaks.

That is 100% a breaking change to me.

-a

On Thu, Aug 4 2022 at 11:08:14 +01:00:00, Ash Berlin-Taylor <a...@apache.org> wrote:
One question: Are you talking about removing things from airflow.contrib, or things already with in airflow.providers.*?

-a

On Thu, Aug 4 2022 at 11:55:52 +02:00:00, Jarek Potiuk <ja...@potiuk.com> wrote:
Hello everyone,

Following the discussion in <https://github.com/apache/airflow/pull/25413> I have a proposal.

Why don't we remove all "contrib" and other Airflow 1.10 deprecated classes to a separate package and add dependency to that package as [contrib] or [deprecated] extra in Airflow - and release one of the next 2.* (2.4/2.5) airflow versions without those classes ?

This should be possible I think (We could do it for all "contrib" easily and for some other individual classes in "operators" and "hooks" that would likely require a little dynamic python magic to not override the folders).

There are a number of benefits:

0) lots of old, defunc mostly deprecation code can be removed from the main repo - including lots of tests that verify that.

1) new users would not even know about those classes/contrib - less confusion

2) many of those "contrib" classes are not backwards-compatible with old 1.10 classes already as we had many "major" releases in many providers - so this might be a little misleading for those who are still in 1.10 that they can easily "migrate" without making any changes

3) there are many users who even now use "contrib" and we could use the opportunity to "guide them" into migration. To make it smoother, we could likely implement dynamic attribute checking in packages and raise appropriate instructions to those who still use it and migrate to 2.5 or 2.6 (and they will still have the option to install the "contrib" package). The instructions could be the same as in deprecation messages today (but they would fail in case the "contrib" package is not installed)

4) We give a great tool for admins of Airflow installation. Currently the admins have no tools to force their users to switch-off from using contrib if they still do. But with this one they will simply be able to install airflow without the "contrib" package and the users will have to adapt. We can even provide those "Admins" instructions on how to build your own "contrib" package if you want to do it gradually and ask your users to remove class-by-class or whatever way you want.

Technically - we are not breaking SemVer compatibility - you can still get back to the contrib if you install the separate package. So we can do it without bumping Major version

WDYT?

J.







Reply via email to