> Not if you add install `airflow[contrib]` - then it won't break. Having to make a change to keep your system working throughout minor versions — to me that’s a breaking change.
So as much as we’d like to get rid of the contrib folder, we should really only change that throughout major versions. Bas > On 4 Aug 2022, at 12:46, Elad Kalif <elad...@apache.org> wrote: > > > Every time we release Amazon major version of provider, it might break if > you relied on it being backwards compatible. > > Why? The contrib just import the new file/class path. How can it be broken? > It has no functionality other than change the path > > On Thu, Aug 4, 2022 at 1:25 PM Jarek Potiuk <ja...@potiuk.com > <mailto:ja...@potiuk.com>> wrote: > And BTW. airflow/contrib/operators/ecs_operator.py is potentially already > broken multiple times - Every time we release Amazon major version of > provider, it might break if you relied on it being backwards compatible. > > On Thu, Aug 4, 2022 at 12:22 PM Jarek Potiuk <ja...@potiuk.com > <mailto:ja...@potiuk.com>> wrote: > Not if you add install `airflow[contrib]` - then it won't break. > > On Thu, Aug 4, 2022 at 12:21 PM Ash Berlin-Taylor <a...@apache.org > <mailto:a...@apache.org>> wrote: > 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 > <mailto: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 >> <mailto:ja...@potiuk.com>> wrote: >>> Hello everyone, >>> >>> Following the discussion in https://github.com/apache/airflow/pull/25413 >>> <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. >>> >>> >>> >>> >>> >>>