> We currently guarantee that the minimum Airflow version supported by a
provider is the release date of the next minor version, plus 12 months.
You’re asking if this should be adjusted for Airflow 3, correct?

Yes

> Are you asking for guarantees the other way around, so Airflow version ->
guaranteed provider package min version support?

Yes.

On Wed, Aug 14, 2024 at 12:04 PM Bas Harenslak <b...@astronomer.io.invalid>
wrote:

> Sorry I’m a bit lost in the long text. Is my understanding of the 2
> questions correct?
>
> We currently guarantee that the minimum Airflow version supported by a
> provider is the release date of the next minor version, plus 12 months.
> You’re asking if this should be adjusted for Airflow 3, correct?
> Are you asking for guarantees the other way around, so Airflow version ->
> guaranteed provider package min version support?
>
> Bas
>
> > On 14 Aug 2024, at 11:22, Jarek Potiuk <ja...@potiuk.com> wrote:
> >
> > Hello everyone,
> >
> > I have two important topics to discuss regarding Provider <> Airflow
> > version support rules.
> >
> > *1) What is the "min Airflow version" support while we are transitioning
> to
> > Airflow 3? *
> >
> > So far we had the [1] rule:
> >
> >> The default support timespan for the minimum version of Airflow (there
> > could be justified exceptions) is that we increase the minimum Airflow
> > version to the next MINOR release, when 12 months passed since the first
> > release for the MINOR version of Airflow.
> >
> >> For example this means that by default we upgrade the minimum version of
> > Airflow supported by providers to 2.8.0 in the first Provider's release
> > after 18th of December 2024. 18th of December 2023 is the date when the
> > first PATCHLEVEL of 2.8 (2.8.0) has been released.
> >
> > The next cutoff time (2.9.0 + 12 months) will be in April 2025, And the
> > next one - 2.10.0 - assuming we release 2.10.0 in August - for min
> airflow
> > version = 2.10.0 will be in August 2025. If we have "bridge" 2.11.0
> release
> > (very likely) - say in December, then min_version = 2.11.0 will be in
> > December 2025.
> >
> > Assuming that we release Airflow 3.0.0 in March 2025, if we follow this
> > rule, we will be able to drop Airflow 2 support in providers in March
> 2026
> > - so we give about a year to Airflow 2 users to migrate to Airflow 3  -
> if
> > they will want new features and bug-fixes from new providers. Also it
> means
> > that we have 1.5 year of supporting both Airflow 2 and Airflow 3 in
> > providers (that for example includes the old Templated Field
> > back-compatibility support assuming that we will want to go ahead with
> the
> > change)
> >
> > That provides (as was the original idea of this rolling min-version
> > support) additional incentive for users to migrate (want new features
> from
> > providers - migrate to latest Airflow). With Airflow 3 that will be a
> more
> > difficult decision to migrate, so I wonder if this rule should be
> somewhat
> > adapted.
> >
> > *2) Should we introduce a rule for a "rolling" min version Provider's
> > support in Airflow 3?*
> >
> > In Airflow 2 we never had a rule describing "how old" providers are still
> > supported in newer versions of Airflow. For example we never said you
> need
> > to have at least "2.10.0" version of a google provider. This was never a
> > huge problem, because vast majority of users were upgrading providers
> with
> > Airflow and only occasionally downgraded providers or kept them with old
> > versions because of some breaking changes.That had never caused a big
> > problem as far as I know and remember - and we can safely assume that
> > "really old" providers might  not work with "new" airflow even if we had
> no
> > formal rule for it.
> >
> > However that required some back-compatibility code sometimes - like this
> > code removal that started breaking our main after removing old "imports"
> > [2]. This means that some very old SB providers will not work with the
> new
> > common.sql provider when released (and they also will not work with
> Airflow
> > 3). I think it will never cause a "real" serious issue - but would be
> great
> > to formalize it to be able to set expectations of our users and have some
> > ways to respond to potential issues they might raise.
> >
> > Should we formalize it somehow? For example add a rule that providers
> will
> > be guaranteed to support Airflow versions released up to 12 months after
> > the provider was released? We could potentially add tests to check it in
> > the future (though it would be rather complex and time consuming). But I
> > think we should start with the rule first.
> >
> > Example to illustrate it (hypothetical):
> >
> > * Google provider 11.0.4 is released in December 2024 - just before
> > Airflow 2.11.0
> > * Airflow 3.0 - 3.4 are released between December 2024 and December 2025
> -
> > all of them support google provider 2.11.0 (and if not - this is a bug
> that
> > needs to be fixed)
> > * Airflow 3.5 is released in January 2026 - and if someone wants to
> install
> > Airflow 3.5 and use Google provider 11.0.4 or below - they might, or
> might
> > not work. But if they don't we do not treat it as a bug and we recommend
> > the users to upgrade to a newer Google provider version.
> >
> > I think we should not make "intentional" changes to break those
> providers,
> > unless we have good reasons, and it's mostly about some weird edge cases,
> > where people have new Airflow and old providers, but I think it's worth
> > introducing and documenting some rules about it.
> >
> >
> > Let me know what you think on both accounts.
> >
> > J.
> >
> > [1]
> >
> https://github.com/apache/airflow/blob/main/PROVIDERS.rst#upgrading-minimum-supported-version-of-airflow
> > [2] https://github.com/apache/airflow/pull/41461
>
>

Reply via email to