Verified the docs related changes, looking good :)

Thanks Jarek, great work.

Pavan

On Thu, Jul 17, 2025 at 1:26 PM Jarek Potiuk <ja...@potiuk.com> wrote:

> All right .. I addressed the next round of feedback and some investigations
> where things were questioned led to interesting findings :)
>
> * interesting finding about having to flush() before you query.delete ->
> that was accidentally revealed by removing fab plugins initialization in
> Python 3.13 ->
> https://github.com/apache/airflow/pull/46891#discussion_r2209325342
> * Likely root cause (long standing Python bug with mmap that was fixed in
> Python 3.13) for "too many open files" occasional issue people reported
> recently with our supervisor/task creation ->
> https://github.com/apache/airflow/pull/46891#discussion_r2209326571
>
> Both are pretty cool findings and the second might even lead to some
> workarounds to improve number of opened file descriptors causing for
> example this one: https://github.com/apache/airflow/issues/51512
>
> Thanks Vincent, Pavan, Amogh, Aritra, Jens for the reviews and some
> "Hawk-eye" findings :) ... Really cool
>
> The PR is now heading to be green back after some experiments with fixing
> things 'better" - and I plan to merge it before the dev call today - the
> "weaviate" implementation can be likely more thoroughly tested with the
> next provider's wave when we have an RC for weaviate provider - that will
> be easier to test I guess (and it anyhow impacts really only Python 3.13
> installation of Weaviate provider).
>
> If anyone would like to make another pass - let me know and I will hold-on
> with merging.
>
> J.
>
>
> On Thu, Jul 17, 2025 at 12:03 AM Jarek Potiuk <ja...@potiuk.com> wrote:
>
> > Cool. I have been spending more time with my family visiting me, so did
> > not look yet at the comments - but I will - shortly - and will be happy
> to
> > merge it soon :D
> >
> > On Wed, Jul 16, 2025 at 9:51 AM Aritra Basu <aritrabasu1...@gmail.com>
> > wrote:
> >
> >> Great job on the PR Jarek! Looked through the broad strokes of the PR
> and
> >> all looked good to me.
> >> --
> >> Regards,
> >> Aritra Basu
> >>
> >> On Wed, 16 Jul 2025, 11:38 am Amogh Desai, <amoghdesai....@gmail.com>
> >> wrote:
> >>
> >> > Hi Jarek,
> >> >
> >> > That was quite a long PR to review. I focused most of my review time
> on
> >> the
> >> > areas
> >> > I’m more familiar with — (1) and (4). But I ended up going through the
> >> rest
> >> > as well 🙂
> >> >
> >> > Great job getting that PR green! I really appreciate the inline
> comments
> >> > with active TODOS,
> >> > they are helpful and make it easier to follow the context.
> >> >
> >> > Thanks & Regards,
> >> > Amogh Desai
> >> >
> >> >
> >> > On Wed, Jul 16, 2025 at 1:47 AM Jens Scheffler
> >> <j_scheff...@gmx.de.invalid
> >> > >
> >> > wrote:
> >> >
> >> > > Hi Jarek,
> >> > >
> >> > > cool! Thanks for all the efforts and the breath in preparing this!
> >> Added
> >> > > some comments in PR gut greatly appreciate (1) that notes describe
> the
> >> > > upper bindings and (2) that the reference image default stays with
> >> 3.12
> >> > > as 3.13 lags critical providers being ready.
> >> > >
> >> > > Jens
> >> > >
> >> > > On 15.07.25 19:52, Jarek Potiuk wrote:
> >> > > > *TL;DR; Python 3.13 is ... ALMOST here... All you need is final
> >> reviews
> >> > > and
> >> > > > merge !!!! *
> >> > > >
> >> > > > The PR is finally about to get green - after about 100 or so
> >> iterations
> >> > > (or
> >> > > > so it seems - I opened it on Feb 19th (!) - so it's 5 months in
> the
> >> > > > making). https://github.com/apache/airflow/pull/46891. I would
> >> really
> >> > > > appreciate some final reviews and approvals.
> >> > > >
> >> > > > Jens and Pavan had already made a number of comments over the
> >> loooong
> >> > > > course of this one and I **think** I addressed all of them. I am
> >> happy
> >> > to
> >> > > > get more comments - maybe some of the choices I made are outdated
> or
> >> > can
> >> > > be
> >> > > > improved - but now having the PR green it will be way easier to
> >> iterate
> >> > > on
> >> > > > it
> >> > > >
> >> > > > It took a really long time and a number of iterations and some
> >> > > opinionated
> >> > > > choices. Mostly because FAB cannot be installed yet with Python
> >> 3.13  -
> >> > > but
> >> > > > it also gave me an opportunity to move out or run conditionally
> >> tests -
> >> > > for
> >> > > > all cases where FAB was still not completely removed from the
> core.
> >> One
> >> > > of
> >> > > > our tests (lowest-deps core Python 3.13) runs the complete suite
> of
> >> > tests
> >> > > > for core where `fab-provider` and `flask-app-builder` are
> completely
> >> > > > missing from the CI environment (BTW. `uv sync` is an awesome
> >> feature
> >> > of
> >> > > > `uv` and it made it possible). And a number of changes from other
> >> > people
> >> > > > (Jens,  Pavan, LIU ZHE YOU, Wei Lee, Vincent, Elad and many others
> >> had
> >> > to
> >> > > > be merged before we could get this one green).
> >> > > >
> >> > > > So I have a kind request - for those who know the codebase well -
> >> > please
> >> > > > take a look and let me know if you have any comments. Yes, it's a
> >> > > monstrous
> >> > > > PR and - unfortunately - it's not easily breakable into smaller
> >> ones,
> >> > > but I
> >> > > > tried to make it as easy to review as possible. I split it into 4
> >> > > > independent commits (which will still have to be squashed and
> merged
> >> > > > together):
> >> > > >
> >> > > > 1) Breeze changes for Python 3.13 - changes in breeze code that
> >> enable
> >> > > > Python 3.13
> >> > > > 2) Pyproject.toml changes in Providers for Python 3.13 (including
> >> > > > dependencies and python_requires) - big number of files
> >> > > > 3) README.rst changes for Providers for Python 3.13 (big number of
> >> > files)
> >> > > > 4) Actual changes that were necessary to get the PR green for
> Python
> >> > 3.13
> >> > > > (smaller number, but more substantial changes in airflow-core and
> >> > > provider
> >> > > > code that makes Python 3.13 work)
> >> > > >
> >> > > > Currently excluded providers for Python 3.13:
> >> > > > ** apache.beam*
> >> > > > ** apache.kafka*
> >> > > > ** fab*
> >> > > > ** **yandex*
> >> > > > ** ydb*
> >> > > >
> >> > > > They are excluded for various reasons - TODO:s left explaining the
> >> > > reasons
> >> > > > and we can gradually bring them in as blockers are removed).
> >> Detailed
> >> > > > summary of changes in the PR and copied below.
> >> > > >
> >> > > > When you review the code, you can focus on the part that you are
> >> > > interested
> >> > > > in (1) - if you want to look at breeze and (4) if you want to look
> >> at
> >> > > code
> >> > > > changes, and skip rather easily absolutely necessary dependency
> >> > > requirement
> >> > > > changes in (2) and mostly-automated changes from (3).
> >> > > >
> >> > > > Yep I am asking for a lot, sorry, but I can't see how I could
> break
> >> > that
> >> > > > one down into separate PRs easily.
> >> > > >
> >> > > > I have two kind requests to take a closer look specifically:
> >> > > >
> >> > > > a) for *Pavan* -> if you could check the aws-wrangler removal
> >> replacing
> >> > > it
> >> > > > with botocore - for docs publishing. I am not 100% sure if I got
> it
> >> > > right,
> >> > > > I did test it but a second pair of hands would be great to test it
> >> > > >
> >> > > > b) for *Wei Lee, Kevin Yang, and Rahul* *Vats* (since you were the
> >> ones
> >> > > > working on Waeviate in the past) -> I would really appreciate it
> if
> >> you
> >> > > > could test the Weaviate changes I made. Weaviate was one of the
> >> > > problematic
> >> > > > changes because dependency update for 3.13 "freed" upgrade to a
> >> newer
> >> > > > version of Waeviate client (>=4.10.0) that used a httpx rather
> than
> >> > > > requests - and we had some low-level mock tests for retry
> scenarios
> >> > (429,
> >> > > > 500, ConnectErrors). And in order to fix it, I had to not only
> have
> >> > code
> >> > > in
> >> > > > tests for mocking either httpx or requests, but I also had to
> change
> >> > the
> >> > > > retriable error detection in Weaviate provider. I **think** I made
> >> > proper
> >> > > > changes there, but I have no experience/no Weaviate instance so I
> >> had
> >> > not
> >> > > > tested it with the "real" weaviate - I updated the tests and
> mocked
> >> > httpx
> >> > > > in the way I **think** it will work, but I am not 100% sure if I
> >> got it
> >> > > > right. Actual tests with weaviate would be great (and you had done
> >> such
> >> > > > tests before so it might be way easier for you).
> >> > > >
> >> > > > J.
> >> > > >
> >> > > > -------------
> >> > > >
> >> > > > This is the summary of the changes made. Beware  .... it's .....
> >> > > > LOOOONG.....
> >> > > >
> >> > > >      Add Python 3.13 support for Airflow.
> >> > > >
> >> > > >      Added Python 3.13 support across the codebase, including:
> >> > > >      * CI/CD workflow updates to handle Python 3.13.
> >> > > >      * Dockerfile and environment variable adjustments for
> >> > compatibility.
> >> > > >      * Documentation updates to list Python 3.13 as supported.
> >> > > >      * Dependency and code changes for compatibility with
> >> new/changed
> >> > > >        libraries (e.g., numpy 2.x, greenlet, pendulum).
> >> > > >      * Test and plugin manager adjustments for Python
> 3.13-specific
> >> > > > behaviors.
> >> > > >      * Removal or skipping of tests and features not compatible
> with
> >> > > Python
> >> > > > 3.13.
> >> > > >      * Improved error handling and logging for unsupported
> >> > > plugins/providers
> >> > > >        on Python 3.13.
> >> > > >      * Updated all provider README.rst files to:
> >> > > >        * List Python 3.13 as a supported version.
> >> > > >        * Adjust dependency requirements for Python 3.13 (e.g.,
> >> pandas,
> >> > > >          pyarrow, ray, etc.).
> >> > > >        * Add or update notes about excluded or conditionally
> >> supported
> >> > > >          dependencies for Python 3.13.
> >> > > >        * Document any known incompatibilities or workarounds for
> >> > specific
> >> > > >          providers.
> >> > > >      * Updated all provider pyproject.toml files and automation
> to:
> >> > > >        * Add Python 3.13 to the supported classifiers.
> >> > > >        * Adjust requires-python and dependency constraints for
> >> Python
> >> > > 3.13.
> >> > > >        * Exclude Python 3.13 for providers that are not yet
> >> compatible
> >> > > (e.g.,
> >> > > >          those depending on Flask AppBuilder).
> >> > > >        * Add conditional dependencies for new versions of
> libraries
> >> > > required
> >> > > >          by Python 3.13.
> >> > > >      * Updated Breeze and related scripts to:
> >> > > >       * Build and test with Python 3.13.
> >> > > >       * Update documentation and release scripts to include Python
> >> > 3.13.
> >> > > >       * Ensure all dev tooling and test environments work with
> >> Python
> >> > > 3.13.
> >> > > >      * Removed remaining FAB related code from core and removed
> >> tests
> >> > for
> >> > > >        older FAB provider versions (<1.3.0)
> >> > > >      * some of the tests in core still depend on FAB - but we make
> >> them
> >> > > >        optional - both for parsing (we need to skip some imports)
> >> and
> >> > > >        execution - because they test a legacy behaviour of
> embedding
> >> > > >        Flask plugins that is still supported in core.
> >> > > >      * k8s tests now run also with SimpleAuthManager and
> >> > > SimpleAuthManager
> >> > > >        is used automatically when running tests in Python 3.13
> >> > > >      * migration tests had to be excluded for Python 3.13 because
> we
> >> > > cannot
> >> > > >        migrate down on Python 3.13 without FAB tables created. The
> >> > tests
> >> > > >        will be brought back when FAB is supported or when we
> release
> >> > 3.1
> >> > > >        and start working on 3.2, we should be able to migrate down
> >> to
> >> > 3.1
> >> > > >      * Weaviate tests have been updated to handle case where
> >> > > weaviate-client
> >> > > >        is > 2.10.0 - because it started to use httpx instead of
> >> > requests,
> >> > > >        and Python 3.13 actually unblocks using older version of
> >> > weaviate
> >> > > >        (it was previously blocked indirectly via Flask
> dependencies
> >> and
> >> > > >        grpcio).
> >> > > >      * Added doc change in our rules on what is the "default"
> Python
> >> > > version
> >> > > >        for airflow images - handling the case where we cannot use
> >> > > "newest"
> >> > > >        Python version as default where not all "regular" image
> >> > providers
> >> > > are
> >> > > >        supported in the latest version
> >> > > >
> >> > > > J.
> >> > > >
> >> > > > On Mon, Jun 23, 2025 at 8:00 AM Jarek Potiuk <ja...@potiuk.com>
> >> wrote:
> >> > > >
> >> > > >> I also started to do more preparation and extracting things that
> we
> >> > will
> >> > > >> need to merge first and release providers with some limits
> lifted.
> >> We
> >> > > need
> >> > > >> to make our providers released in PyPI prepared upfront because
> >> > > currently
> >> > > >> we are not able to generate PyPI constraints for Python 3.13 - I
> >> > already
> >> > > >> have one of those merged -
> >> > https://github.com/apache/airflow/pull/51994
> >> > > >> where we have to exclude `ray` from Python 3.13 and release
> >> provider
> >> > > before
> >> > > >> we get the PR "green" - similarly I have just created
> >> > > >> https://github.com/apache/airflow/pull/52060 to all providers
> that
> >> > are
> >> > > >> currently limiting pandas (unnecessary it seems from my tests in
> >> 3.13
> >> > > PR).
> >> > > >>
> >> > > >> J.
> >> > > >>
> >> > > >>
> >> > > >> On Mon, Jun 23, 2025 at 7:46 AM Amogh Desai <
> >> amoghdesai....@gmail.com
> >> > >
> >> > > >> wrote:
> >> > > >>
> >> > > >>> Thanks for taking this on Jarek.
> >> > > >>>
> >> > > >>> These are not easy tasks to work on and I cannot think of a
> better
> >> > > person
> >> > > >>> to do it than you!
> >> > > >>>
> >> > > >>> I will review it shortly this week.
> >> > > >>>
> >> > > >>> I think it is a good thing to introduce in Airflow 3.1 and I
> would
> >> > not
> >> > > be
> >> > > >>> too much in favour
> >> > > >>> to cherry pick it to the 3.x series, just for convenience sake.
> >> > > >>>
> >> > > >>> Thanks & Regards,
> >> > > >>> Amogh Desai
> >> > > >>>
> >> > > >>>
> >> > > >>> On Fri, Jun 20, 2025 at 2:47 PM Jarek Potiuk <ja...@potiuk.com>
> >> > wrote:
> >> > > >>>
> >> > > >>>> Hey here,
> >> > > >>>>
> >> > > >>>> Over the last few days and weeks I made significant progress
> with
> >> > > Python
> >> > > >>>> 3.13 support and while the PR is not yet fully green - we are
> >> > getting
> >> > > >>>> close. I undrafted my PR recently:
> >> > > >>>>
> >> > > >>>> https://github.com/apache/airflow/pull/46891
> >> > > >>>>
> >> > > >>>> I have a kind request for others to start reviewing it, I will
> be
> >> > > happy
> >> > > >>> to
> >> > > >>>> respond to questions and I am also happy to accept some fixups
> to
> >> > > solve
> >> > > >>>> things in a better way if possible, I did a few hacks and left
> >> some
> >> > > >>> TODOs
> >> > > >>>> that might need some creative ideas to be solved in a better,
> >> > simpler
> >> > > >>> way.
> >> > > >>>> I split the PR into several commits - and keep it continuously
> >> > rebased
> >> > > >>> on
> >> > > >>>> top of the latest main. I had to remove some providers
> (including
> >> > FAB
> >> > > -
> >> > > >>>> which is actually cool, because we can finally see that airflow
> >> > > >>> codebase is
> >> > > >>>> finally working even without FAB being around) - some of them
> are
> >> > yet
> >> > > to
> >> > > >>>> implement Python 3.13 (for example Apache Beam is working on
> it)
> >> so
> >> > we
> >> > > >>>> might add them back soon.
> >> > > >>>>
> >> > > >>>> Note - Python 3.13 was a WAY more difficult migration than
> Python
> >> > > 3.12 -
> >> > > >>>> there were a number of things removed/changed and small
> >> behavioral
> >> > > >>> changes
> >> > > >>>> that we relied on, also the dependencies are catching up way
> >> later,
> >> > > and
> >> > > >>>> there are some tricky dependencies of ours that make things
> more
> >> > > complex
> >> > > >>>> when it comes to selecting "min" versions of those. But we are
> >> > finally
> >> > > >>>> getting there.
> >> > > >>>>
> >> > > >>>> Looks like we will be on-time to have 3.13 support for Airflow
> >> 3.1.
> >> > We
> >> > > >>>> might also attempt to cherry-pick it for 3.0, but it might be
> too
> >> > much
> >> > > >>> of a
> >> > > >>>> hassle, so we can decide after we merge this one to main.
> >> > > >>>>
> >> > > >>>> J.
> >> > > >>>>
> >> > >
> >> > >
> ---------------------------------------------------------------------
> >> > > To unsubscribe, e-mail: dev-unsubscr...@airflow.apache.org
> >> > > For additional commands, e-mail: dev-h...@airflow.apache.org
> >> > >
> >> > >
> >> >
> >>
> >
>

Reply via email to