But... Removing it from all the operators and switching to common.compat is
probably worth it - we have almost the same version_compat.py repeated in
all providers, and I guess pretty much providers use common compat as
dependency (pretty much as I expected) so we could likely deduplicate a lot
of code that is now spread-out across repo, regardless if someone would
like to use helper or constant - that would be definitely worthy change :)

On Thu, May 14, 2026 at 6:23 PM Ferruzzi, Dennis <[email protected]>
wrote:

> Thanks for the context.  I figured there was likely a reason.
> ________________________________
> From: Jarek Potiuk <[email protected]>
> Sent: Wednesday, May 13, 2026 3:36 PM
> To: [email protected] <[email protected]>
> Subject: RE: [EXT] A new approach for version_compat.py?
>
> CAUTION: This email originated from outside of the organization. Do not
> click links or open attachments unless you can confirm the sender and know
> the content is safe.
>
>
>
> AVERTISSEMENT: Ce courrier électronique provient d’un expéditeur externe.
> Ne cliquez sur aucun lien et n’ouvrez aucune pièce jointe si vous ne pouvez
> pas confirmer l’identité de l’expéditeur et si vous n’êtes pas certain que
> le contenu ne présente aucun risque.
>
>
>
> Hi Dennis,
>
> The constants do not grow infinitely; they roll. When we bump the
> min_version, we remove the lowest constants to force the removal of all
> obsolete compatibility code. This approach ensures no "harness" is left
> behind, preventing us from forgetting to delete code for unsupported
> versions.
>
> This standard was established after extensive discussion in December 2024 (
> https://lists.apache.org/thread/px36w3ph2mf0pmv377dtfc2nhpq8dqw1) and is
> documented here:
>
> https://github.com/apache/airflow/blob/main/contributing-docs/testing/unit_tests.rst#implementing-compatibility-for-provider-tests-for-older-airflow-versions
>
> The main drawback of using helpers is losing the compilation errors that
> mandate removing old compatibility logic when constants are deleted.
>
>
>
> Best,
> Jarek
>
> On Wed, May 13, 2026 at 10:03 PM Ferruzzi, Dennis <[email protected]>
> wrote:
>
> > RE:
> >
> https://github.com/apache/airflow/blob/main/providers/common/compat/src/airflow/providers/common/compat/version_compat.py
> >
> >
> > Curious if there is a reason we went with the constants like this?
> > There's likely a reason, but if not, we are now adding a constant for 3.3
> > and that will continue to grow.  I'm wondering if there is a reason not
> to
> > replace those constants with a helper like
> >
> > def airflow_version_at_least(major: int, minor:int,  patch:int = 0) ->
> > bool:
> >      return get_base_airflow_version_tuple() >= (major, minor, patch)
> >
> >
> > Then in code instead of importing the constant it would be `if
> > airflow_version_at_least(3, 3):` which seems just as clear and easy.
> >
> > - ferruzzi
> >
>

Reply via email to