Dev-iL opened a new pull request, #75218:
URL: https://github.com/apache/airflow/pull/75218

   related: #74555
   
   Switch the default async MySQL metadata database driver from `aiomysql` to 
`asyncmy`. When `[database] sql_alchemy_conn_async` is unset and asyncmy is 
installed, core now derives a `mysql+asyncmy://` URL. The MySQL provider 
installs `asyncmy>=0.2.16` by default.
   
   Follow the compatibility pattern from 
[#69469](https://github.com/apache/airflow/pull/69469) and 
[#69690](https://github.com/apache/airflow/pull/69690):
   
   - Core falls back to aiomysql when asyncmy is absent, so upgrading core with 
an older provider keeps working.
   - The provider retains aiomysql as a mandatory dependency because older 
supported cores always derive `mysql+aiomysql://` URLs. Removing that 
requirement depends on the provider's minimum supported core version advancing.
   - Explicit async URLs remain unchanged. The new `[aiomysql]` extra lets 
deployments explicitly declare the legacy driver.
   
   Update the database setup guide, provider documentation, newsfragment, and 
generated dependency metadata. Add coverage for driver selection, fallback, URL 
preservation, and asyncmy connection shutdown.
   
   Local validation:
   
   - Python 3.14.7 / MySQL 8.0.46: settings, Execution API lifecycle, and MySQL 
hook tests — **159 passed, 3 skipped** for other database backends.
   - Python 3.15.0 / MySQL 8.4.7: asyncmy source build and SQLAlchemy checks 
passed for Decimal, datetime, binary and Unicode values, rollback, 
cancellation, pool recovery, and disposal. This covers the driver, not the full 
Airflow suite. Python 3.15 currently requires a source build of asyncmy.
   - Regular static checks passed, including core mypy, Ruff, provider 
documentation generation, and lock consistency.
   
   Runtime and static-suite results are from validation before the rebase. The 
tested source files are unchanged by the rebase; `uv lock --check` and `git 
diff --check` pass on the rebased branch.
   
   ##### Was generative AI tooling used to co-author this PR?
   
   <!--
   If generative AI tooling has been used in the process of authoring this PR, 
please
   change below checkbox to `[X]` followed by the name of the tool, uncomment 
the "Generated-by".
   -->
   
   - [x] Yes (please specify the tool below)
   
   Generated-by: Codex (GPT-6) following [the 
guidelines](https://github.com/apache/airflow/blob/main/contributing-docs/05_pull_requests.rst#gen-ai-assisted-contributions)
   
   ---
   
   * Read the **[Pull Request 
Guidelines](https://github.com/apache/airflow/blob/main/contributing-docs/05_pull_requests.rst#pull-request-guidelines)**
 for more information. Note: commit author/co-author name and email in commits 
become permanently public when merged.
   * For fundamental code changes, an Airflow Improvement Proposal 
([AIP](https://cwiki.apache.org/confluence/display/AIRFLOW/Airflow+Improvement+Proposals))
 is needed.
   * When adding dependency, check compliance with the [ASF 3rd Party License 
Policy](https://www.apache.org/legal/resolved.html#category-x).
   * For significant user-facing changes create newsfragment: 
`{pr_number}.significant.rst`, in 
[airflow-core/newsfragments](https://github.com/apache/airflow/tree/main/airflow-core/newsfragments).
 You can add this file in a follow-up commit after the PR is created so you 
know the PR number.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to