This is an automated email from the ASF dual-hosted git repository.
github-bot pushed a change to branch
dependabot/npm_and_yarn/airflow-core/src/airflow/ui/happy-dom-20.0.2
in repository https://gitbox.apache.org/repos/asf/airflow.git
omit 2637f446476 Bump happy-dom from 17.4.6 to 20.0.2 in
/airflow-core/src/airflow/ui
add d8f276d1afb Fix AsyncToSync and serialization error (#56363)
add 8eb5d8565f1 Fixing YAML block scalar when providing sshKey for
git-sync (#56716)
add 6dd5793f3d1 Use correct API_VERSION for task sdk integration tests
(#56715)
add 532069332c2 Fix corrupted bare Git repository recovery in DAG bundles
(#56206)
add 8e5755bd5b1 Fix Databricks provider import error without fab provider
(#56702)
add b55528a2209 Add Greek UI translation (#56229)
add aab7f16c389 Add resize function for Dag Documentation (#56344)
add 235d6f830c1 style: modify log highlight color (#56379)
add 3b22cdeaf77 Fix view for many DAG tags (#55604)
add 8ddadaf01a8 Remove mock_supervisor_comms in core connection tests
(#56714)
add d58da15d1c4 Update refresh token flow (#55506)
add 5ae3eaf85ca chore(module-loading): remove outdated TODO and clarify
import_string docstring (#56713)
add c0f9d11ddb7 Improve DAG and task missing error handling in callbacks
(#56725)
add 52e1b3ea3d9 Correct 'Dag' to 'DAG' for code snippets in provider docs
(#56727)
add 16e9b35f0e9 Fix task retries executing wrong method after deferred
state (#56731)
add c47b1ae38d6 Fix supported Python versions in README (#56734)
add 08150192d51 Fix execution failures with NULL dag_run.conf during
upgrades (#56729)
add 98eb4fbeca4 feat: adds support for OpenTelemetry standard environment
variables f… (#56634)
add 17037e6a2cf Lazy import PodGenerator for deserialization (#56733)
add 6afab7b3c84 AIP-67 - Multi-team: Verify dag/task executors are present
in team (#55973)
add 6901fe09546 Gate multi team executor loader changes with feature flag
(#56740)
add af8a4b5457a Free up disk space in k8s tests (#56746)
add 86b0e98a868 Migrate CreateAssetEventsBody to Pydantic v2 ConfigDict
(#56697)
add 0f5b91e5661 Bump upgrade check versions (#56743)
add 1338a59be2a Add better diagnostics for E2E tests (#56742)
add 1e0f2b00d77 Fix: Preserve key structure when adding plural forms in
add_keys (#56753)
add 51016db18d0 Fix formatting in production-guide.rst (#56754)
add 1ba8c1d098c feat: async slack notifier (#56685)
add 9cc63bf31ea Update docs for archive site modifications (#56764)
add d2713905407 Update example dms system tests for sqla 2 (#56744)
add f832735f37a Align HITL frontend and backend API filtering (#56759)
add 380fa70343b Add auto refresh to backfill banner (#56226)
add 3383e777e91 Fix Advanced Search button overlap in DAG List View
(#56588)
add 9ef4f12a5bc Fix DAG processor crash with pre-import module
optimization (#56773)
add d8b33009249 Azure IAM/Entra ID support for SnowflakeHook (#55874)
add 352392f41eb Clean prek cache before running static checks (#56788)
add b65ce68531d Updated codeowners for ci/dev tooling (#56798)
add a7f5337c2a1 Summarize warnings should run after all tests produced
warnings (#56797)
add c54c1a97220 Add comprehensive compatibility imports for Airflow 2 to 3
migration (#56790)
add 52250f64f5b Add retry for e2e test_remote_logging_s3 (#56811)
add 965c76df1d8 run fastapi app within the parent process in dev mode
(#56800)
add 0bbe92ff3fe Reorder fastapi app list checks (#56812)
add 6014289b1cb Update all hatch versions in all files (#56784)
add d4d8d2fbf0d Fix mypy type errors in apache-drill provider for
sqlalchemy 2 upgrade (#56795)
add e2b1c056e5f fix mypy type errors in test_pool.py (#56801)
add afc4924492c fix mypy type errors in test_mark_tasks.py (#56804)
add f5fd3100bf7 fix mypy type errors in test_hitl.py (#56805)
add 6d977a925e8 Ensure dag.test uses serialized dag for testing (#56660)
add 556d179d35b Restore prek cache in a more robust way (#56796)
add 1249af1dfad Simplify version-specific imports in the Google provider
(#56793)
add 95c7eaa69c4 i18n(Ko): add missing translations(Oct 19) (#56823)
add 8cd988dad76 Fix MyPy type errors in test_dags.py (#56735) (#56770)
add 8836376a778 Switch mypy prek hooks to be executed on pre-push, not on
pre-commit (#56829)
add c07eb2850c3 change from class method to instance method call on rtif
(#56645)
add da66c417269 Fix .airflowignore order precedence (#56509)
add b7cb84e65ff Fix get_ti_count and get_task_states access in
callbackrequests (#56822)
add a370e11a42a remove deprecation (#56835)
add 2eb48e23c93 Upgrade uv and remove accidental uv sync (#56834)
add a3175f8cedc When prek install-hooks fails, log is now shown in CI
(#56839)
add 325bd72d7df Fix MyPy type errors in dot_renderer.py (#56841)
add 3cb7fc0f46b fix mypy type errors in test_variable.py (#56802)
add 134af4f3820 Replace custom breeze upgrade check with uv tool upgrade
(#56844)
add c88f86a229d Add build-info to summarize-warnings prerequisites (#56850)
add c2bccf13b00 update serializer document to reflect the latest change in
codebase (#56269)
add 59089cda666 Synchronize and fix ARM CI workflows (#56856)
add 1887b041934 Add PL translations 2025.10.18 (#56825)
add 2e78e01248f Properly name the regular/remote leg tests (#56859)
add 2e1422be30e Add fail_on_file_not_exist to SFTPToGCSOperator (#56528)
add 788fdc41c32 update broken link (#56862)
add fa183444c38 Fix mypy type errors in Neo4j provider for SQLAlchemy 2
upgrade (#56785)
add 80911e83390 Implement integration test for airflowctl with 3.1 (#56124)
add 4011709c951 fix typos (#56864)
add 4626bc98bed Fix: Handle SQLAlchemy_URI for PrestoHook (#56298)
add bb8a7b97e8b feat: Add lazy filtering support for inlet events by time
range, ordering, and limit (#54891)
add 503358e8154 Handle get_queue_info todo in JenkinsJobTriggerOperator
(#54207)
add 310f268b290 Check for console in validate_cmd_result (#56876)
add 7d02211e140 Replace DeprecationWarning with DeprecatedImportWarning in
airflow-core (#56836)
add a2ee0d80d69 UI - Download Tasks Logs button (#56771)
add b606608ad3e Fix task_log_sources naming for test_remote_logging_s3
(#56869)
add dc4545ba39d Fix mypy type errors in Teradata provider for SQLAlchemy 2
upgrade (#56861)
add fc565171d2d fix mypy type errors in common/sql provider for sqlalchemy
2 upgrade (#56824)
add e00dece3bcb fix subject column for tagging in preparing providers
release (#56885)
add 0f4888f20c7 Make `AwaitMessageTrigger` inherit `BaseEventTrigger`
(#56741)
add 14d42eb063f Set static type as `datetime` in models when type is
`UtcDateTime` (#56780)
add f6ed4be72f4 fix mypy type errors in test_connection.py (#56803)
add 5f3ed2385d2 fix mypy type errors in opensearch provider for sqlalchemy
2 upgrade (#56819)
add ed3dec85e87 fix mypy type errors in elasticsearch provider for
sqlalchemy 2 upgrade (#56818)
add df65e63c688 Bump eslint from 9.37.0 to 9.38.0 in
/providers/fab/src/airflow/providers/fab/www in the fab-ui-package-updates
group across 1 directory (#56847)
add b1777899662 `shared/README.md`: fix typo `airlow` -> `airflow` (#56898)
add 2d1aa75a889 Replace --force flag with -f in prek install commands for
Breeze setup docs (#56888)
add f46326bd4ee Add airflowctl integration tests to CODEOWNERS (#56900)
add 9b02bafa0a6 Add SQLA's `mapped_column` to common-compat (#56880)
add d0e6222ef8c Handle invalid token in `JWTRefreshMiddleware` (#56904)
add 3eda4081921 fix mypy type errors in imap provider for sqlalchemy 2
upgrade (#56810)
add a2455c0ceda Dag task named 'root' causes blue screen on hover (#56902)
add 22e347d1479 Pass args/kwargs to super in local executor (#56786)
add 7c9ffa5bf6b feat: add async jira notifier (#56326)
add e24cfb0fae9 Common.Compat: Extract reusable compat utilities and
rename to sdk (#56884)
add 0cc7da3369f Align HITL frontend and backend API sorting parameters
(#56030)
add 8ffb7b17a33 fix(scheduler): load dag_run eagering for execution API
validation (#56916)
add d83e80ff615 FAB: reuse ORM type hints from common-compat (#56903)
add e8194f12e8e Introduce generic Callbacks to support running callbacks
on executors (#54796)
add 4791bbb5206 Fix DAG params API contract broken by #55111 (#56831)
add c99f814ddb2 use AIRFLOW__CELERY__POOL=solo when debugging
celery-worker (#56868)
add 6802605ee8d Fix mypy errors for sqla2 in aws hooks (#56751)
add f32fdf86622 Close Catalan gap (#56905)
add 8d4d4b164e2 Add support of deferable mode for
CloudDataTransferServiceRunJobOperator (#56711)
add 389a34bddd7 Move container-related functions from PodManager to a
separate file (#56700)
add e24d78c3ef2 Add security checkpoints to release processes. (#56927)
add d16a8207b71 Restore timtable active_runs_limit check (#56922)
add 04e59381ef5 Bump psutil from 7.1.0 to 7.1.1 in /dev/breeze (#56899)
add d9790957192 update celery broker_url config description (#56917)
add 4dec042ff31 Pass required remote_host arg to SSHHook (#55664)
add 02cea461679 let PubsubPullTrigger exceptions propagate to triggerer
framework (#56400)
add e33598939d9 Serialize pydantic models in json mode. This ensures the
dict is json serializable. (#56736) (#56878)
add 209fb2e923b Revert "fix(scheduler): load dag_run eagering for
execution API validation (#56916)" (#56943)
add 800f733c22f fix: enable api to clear ti instances by specifying map
indexes (#56346)
add a244a0166a1 Add Thai UI translation (#56353)
add 652dd855aa0 fix MyPy type errors in test_assets.py ,
test_mapped_task_upstream_dep.py and test_serialized_objects.py. for
SQLAlchemy 2 compatibility (#56806)
add a35602c691c Simplify version-specific imports in the Standard provider
(#56867)
add df0e1ae9286 SQLA2/FAB: fix some type hints (#56928)
add d7174df9b81 Fix refresh token middleware error handling (#56892)
add c26fc9334cd Bump vite (#56914)
add 871ff3a010c fix: Add ``max_retry_delay`` to ``MappedOperator`` model
(#56396)
add 0e3312d035e SQLA2: Fix assorted mypy issues in core (#56930)
add 82d2aff08f2 fix mypy type errors in dag_processing for sqlalchemy 2
upgrade (#56843)
add f3ad20aad80 fix: Fix MyPy type errors in CLI commands for SQLAlchemy 2
compatibility (#56907)
add 34ac24fa27b Deprecate old vertex ai generative operators and introduce
new gen ai (#56950)
add 4f7908cc883 docs: Enhance triggering_asset_event retrieval
documentation in DAGs (#52666) (#52674)
add 9b1beb4b51a Bump vite from 7.1.5 to 7.1.11 in
/airflow-core/src/airflow/ui (#56912)
add 4f557849c4d Bump happy-dom from 17.4.6 to 20.0.2 in
/airflow-core/src/airflow/ui
This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version. This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:
* -- * -- B -- O -- O -- O (2637f446476)
\
N -- N -- N
refs/heads/dependabot/npm_and_yarn/airflow-core/src/airflow/ui/happy-dom-20.0.2
(4f557849c4d)
You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.
Any revisions marked "omit" are not gone; other references still
refer to them. Any revisions marked "discard" are gone forever.
No new revisions were added by this update.
Summary of changes:
.dockerignore | 1 +
.github/CODEOWNERS | 44 +-
.github/actions/breeze/action.yml | 8 +
.github/actions/install-pre-commit/action.yml | 88 -
.github/actions/install-prek/action.yml | 37 +-
.github/boring-cyborg.yml | 6 +
.github/dependabot.yml | 5 +
.github/workflows/additional-prod-image-tests.yml | 33 +
.github/workflows/airflow-distributions-tests.yml | 2 +-
.github/workflows/airflow-e2e-tests.yml | 10 +-
.github/workflows/basic-tests.yml | 14 +-
.github/workflows/ci-amd.yml | 26 +-
.github/workflows/ci-arm.yml | 275 +-
.github/workflows/ci-image-checks.yml | 5 +-
.github/workflows/k8s-tests.yml | 3 +
.github/workflows/release_dockerhub_image.yml | 14 +-
.pre-commit-config.yaml | 22 +-
Dockerfile | 3 +-
Dockerfile.ci | 5 +-
README.md | 2 +-
.../logging-monitoring/metrics.rst | 11 +
.../logging-monitoring/traces.rst | 9 +
.../authoring-and-scheduling/asset-scheduling.rst | 88 +-
.../docs/authoring-and-scheduling/serializers.rst | 37 +-
airflow-core/docs/best-practices.rst | 2 +-
airflow-core/docs/img/airflow_erd.sha256 | 2 +-
airflow-core/docs/img/airflow_erd.svg | 4247 ++++++++++----------
airflow-core/docs/migrations-ref.rst | 4 +-
airflow-core/src/airflow/__init__.py | 4 +-
airflow-core/src/airflow/api_fastapi/app.py | 6 +-
.../api_fastapi/auth/managers/base_auth_manager.py | 11 +-
.../auth/managers/simple/ui/package-lock.json | 8 +-
.../auth/managers/simple/ui/package.json | 2 +-
.../auth/managers/simple/ui/pnpm-lock.yaml | 448 +--
.../auth/middlewares}/__init__.py | 0
.../api_fastapi/auth/middlewares/refresh_token.py | 75 +
.../src/airflow/api_fastapi/core_api/app.py | 6 +
.../api_fastapi/core_api/datamodels/assets.py | 7 +-
.../api_fastapi/core_api/datamodels/dags.py | 2 +-
.../core_api/datamodels/task_instances.py | 6 +-
.../api_fastapi/core_api/datamodels/tasks.py | 2 +-
.../core_api/openapi/v2-rest-api-generated.yaml | 42 +-
.../api_fastapi/core_api/routes/public/auth.py | 21 -
.../api_fastapi/core_api/routes/public/hitl.py | 1 +
.../core_api/routes/public/task_instances.py | 27 +-
.../execution_api/datamodels/taskinstance.py | 2 +-
.../execution_api/routes/asset_events.py | 36 +-
.../execution_api/routes/task_instances.py | 2 +-
.../api_fastapi/execution_api/versions/__init__.py | 7 +-
.../execution_api/versions/v2025_10_10.py | 15 +
.../src/airflow/cli/commands/api_server_command.py | 54 +-
.../src/airflow/cli/commands/dag_command.py | 16 +-
.../src/airflow/cli/commands/task_command.py | 8 +-
.../src/airflow/dag_processing/collection.py | 55 +-
airflow-core/src/airflow/dag_processing/dagbag.py | 34 +-
airflow-core/src/airflow/dag_processing/manager.py | 9 +-
.../src/airflow/dag_processing/processor.py | 84 +-
airflow-core/src/airflow/datasets/__init__.py | 4 +-
airflow-core/src/airflow/datasets/metadata.py | 3 +-
.../src/airflow/executors/executor_loader.py | 10 +-
.../src/airflow/executors/local_executor.py | 4 +-
airflow-core/src/airflow/executors/workloads.py | 71 +-
airflow-core/src/airflow/jobs/job.py | 30 +-
airflow-core/src/airflow/metrics/otel_logger.py | 17 +-
.../0091_3_2_0_restructure_callback_table.py | 101 +
airflow-core/src/airflow/models/__init__.py | 2 +
airflow-core/src/airflow/models/asset.py | 29 +-
airflow-core/src/airflow/models/backfill.py | 25 +-
airflow-core/src/airflow/models/callback.py | 208 +
airflow-core/src/airflow/models/dag.py | 16 +-
airflow-core/src/airflow/models/dag_version.py | 5 +-
airflow-core/src/airflow/models/dagbag.py | 4 +-
airflow-core/src/airflow/models/dagbundle.py | 4 +-
airflow-core/src/airflow/models/dagcode.py | 5 +-
airflow-core/src/airflow/models/dagrun.py | 22 +-
airflow-core/src/airflow/models/dagwarning.py | 3 +-
.../src/airflow/models/db_callback_request.py | 38 +-
airflow-core/src/airflow/models/deadline.py | 4 +-
airflow-core/src/airflow/models/errors.py | 4 +-
airflow-core/src/airflow/models/hitl.py | 5 +-
airflow-core/src/airflow/models/hitl_history.py | 39 +-
airflow-core/src/airflow/models/log.py | 5 +-
airflow-core/src/airflow/models/mappedoperator.py | 4 +
airflow-core/src/airflow/models/pool.py | 4 +-
.../src/airflow/models/renderedtifields.py | 2 +-
airflow-core/src/airflow/models/serialized_dag.py | 6 +-
airflow-core/src/airflow/models/taskinstance.py | 20 +-
.../src/airflow/models/taskinstancehistory.py | 11 +-
airflow-core/src/airflow/models/tasklog.py | 4 +-
airflow-core/src/airflow/models/taskreschedule.py | 6 +-
airflow-core/src/airflow/models/trigger.py | 4 +-
airflow-core/src/airflow/models/xcom.py | 3 +-
airflow-core/src/airflow/secrets/__init__.py | 4 +-
.../src/airflow/serialization/definitions/param.py | 8 +
.../airflow/serialization/serialized_objects.py | 23 +-
.../airflow/serialization/serializers/pydantic.py | 2 +-
airflow-core/src/airflow/timetables/datasets.py | 3 +-
airflow-core/src/airflow/traces/otel_tracer.py | 6 +-
.../src/airflow/ui/openapi-gen/queries/common.ts | 6 -
.../ui/openapi-gen/queries/ensureQueryData.ts | 13 +-
.../src/airflow/ui/openapi-gen/queries/prefetch.ts | 13 +-
.../src/airflow/ui/openapi-gen/queries/queries.ts | 13 +-
.../src/airflow/ui/openapi-gen/queries/suspense.ts | 13 +-
.../airflow/ui/openapi-gen/requests/schemas.gen.ts | 3 +-
.../ui/openapi-gen/requests/services.gen.ts | 26 +-
.../airflow/ui/openapi-gen/requests/types.gen.ts | 30 +-
airflow-core/src/airflow/ui/package.json | 4 +-
airflow-core/src/airflow/ui/pnpm-lock.yaml | 524 +--
.../ui/public/i18n/locales/ar/components.json | 5 +
.../airflow/ui/public/i18n/locales/ca/common.json | 9 +-
.../ui/public/i18n/locales/ca/components.json | 8 +
.../src/airflow/ui/public/i18n/locales/ca/dag.json | 2 +
.../airflow/ui/public/i18n/locales/ca/dags.json | 3 +-
.../airflow/ui/public/i18n/locales/ca/hitl.json | 3 +
.../ui/public/i18n/locales/de/components.json | 5 +
.../airflow/ui/public/i18n/locales/el/admin.json | 166 +
.../airflow/ui/public/i18n/locales/el/assets.json | 30 +
.../airflow/ui/public/i18n/locales/el/browse.json | 26 +
.../airflow/ui/public/i18n/locales/el/common.json | 319 ++
.../ui/public/i18n/locales/el/components.json | 134 +
.../src/airflow/ui/public/i18n/locales/el/dag.json | 154 +
.../airflow/ui/public/i18n/locales/el/dags.json | 96 +
.../ui/public/i18n/locales/el/dashboard.json | 45 +
.../airflow/ui/public/i18n/locales/el/hitl.json | 34 +
.../airflow/ui/public/i18n/locales/el/tasks.json | 10 +
.../airflow/ui/public/i18n/locales/en/common.json | 5 +
.../ui/public/i18n/locales/en/components.json | 8 +
.../airflow/ui/public/i18n/locales/en/hitl.json | 5 +
.../ui/public/i18n/locales/es/components.json | 5 +
.../ui/public/i18n/locales/fr/components.json | 5 +
.../ui/public/i18n/locales/he/components.json | 5 +
.../ui/public/i18n/locales/hi/components.json | 5 +
.../ui/public/i18n/locales/hu/components.json | 5 +
.../ui/public/i18n/locales/it/components.json | 5 +
.../airflow/ui/public/i18n/locales/ko/common.json | 2 +
.../ui/public/i18n/locales/ko/components.json | 8 +
.../src/airflow/ui/public/i18n/locales/ko/dag.json | 2 +
.../airflow/ui/public/i18n/locales/ko/dags.json | 3 +-
.../airflow/ui/public/i18n/locales/ko/hitl.json | 3 +
.../ui/public/i18n/locales/nl/components.json | 9 +-
.../ui/public/i18n/locales/pl/components.json | 12 +
.../airflow/ui/public/i18n/locales/pl/dags.json | 3 +-
.../airflow/ui/public/i18n/locales/pl/hitl.json | 3 +
.../ui/public/i18n/locales/pt/components.json | 5 +
.../airflow/ui/public/i18n/locales/th/admin.json | 166 +
.../airflow/ui/public/i18n/locales/th/assets.json | 30 +
.../airflow/ui/public/i18n/locales/th/browse.json | 26 +
.../airflow/ui/public/i18n/locales/th/common.json | 318 ++
.../ui/public/i18n/locales/th/components.json | 132 +
.../src/airflow/ui/public/i18n/locales/th/dag.json | 154 +
.../airflow/ui/public/i18n/locales/th/dags.json | 96 +
.../ui/public/i18n/locales/th/dashboard.json | 45 +
.../airflow/ui/public/i18n/locales/th/hitl.json | 34 +
.../airflow/ui/public/i18n/locales/th/tasks.json | 10 +
.../ui/public/i18n/locales/tr/components.json | 5 +
.../ui/public/i18n/locales/zh-CN/components.json | 5 +
.../ui/public/i18n/locales/zh-TW/components.json | 5 +
.../airflow/ui/public/i18n/locales/zh-TW/hitl.json | 5 +
.../ui/src/components/Banner/BackfillBanner.tsx | 22 +-
.../ui/src/components/DisplayMarkdownButton.tsx | 21 +-
.../airflow/ui/src/components/LimitedItemsList.tsx | 70 +-
.../src/airflow/ui/src/components/SearchBar.tsx | 2 +-
.../ui/src/components/renderStructuredLog.tsx | 129 +-
.../ui/src/components/ui/ResizableWrapper.tsx | 79 +
.../src/airflow/ui/src/constants/filterConfigs.tsx | 27 +
.../src/airflow/ui/src/constants/searchParams.ts | 5 +
airflow-core/src/airflow/ui/src/i18n/config.ts | 2 +
.../airflow/ui/src/layouts/Details/Grid/GridTI.tsx | 4 +-
.../ui/src/layouts/Details/Grid/TaskNames.tsx | 4 +-
.../src/airflow/ui/src/pages/Dag/Code/Code.tsx | 2 +-
.../ui/src/pages/Dag/Overview/TaskLogPreview.tsx | 6 +-
.../ui/src/pages/HITLTaskInstances/HITLFilters.tsx | 25 +-
.../pages/HITLTaskInstances/HITLTaskInstances.tsx | 65 +-
.../ui/src/pages/TaskInstance/Logs/Logs.tsx | 68 +-
.../src/pages/TaskInstance/Logs/TaskLogContent.tsx | 5 +
.../src/pages/TaskInstance/Logs/TaskLogHeader.tsx | 17 +
.../src/airflow/ui/src/queries/useLogs.tsx | 3 +-
.../src/airflow/ui/src/utils/useFiltersHandler.ts | 5 +
.../usePersistentResizableState.ts} | 26 +-
.../src/airflow/utils/dag_parsing_context.py | 3 +-
airflow-core/src/airflow/utils/db.py | 2 +-
airflow-core/src/airflow/utils/dot_renderer.py | 4 +-
airflow-core/src/airflow/utils/file.py | 23 +-
airflow-core/tests/unit/always/test_connection.py | 12 +-
.../tests/unit/always/test_project_structure.py | 6 +
.../tests/unit/always/test_providers_manager.py | 16 +-
.../tests/unit/api/common/test_mark_tasks.py | 2 +
.../auth/managers/test_base_auth_manager.py | 3 +
.../unit/api_fastapi/auth/middlewares}/__init__.py | 0
.../auth/middlewares/test_refresh_token.py | 132 +
.../core_api/routes/public/test_assets.py | 4 +-
.../core_api/routes/public/test_auth.py | 56 -
.../core_api/routes/public/test_dags.py | 4 +-
.../core_api/routes/public/test_hitl.py | 2 +
.../core_api/routes/public/test_plugins.py | 57 +-
.../core_api/routes/public/test_task_instances.py | 141 +-
.../core_api/routes/public/test_tasks.py | 10 +-
.../api_fastapi/core_api/routes/test_routes.py | 1 -
.../api_fastapi/core_api/routes/ui/test_dags.py | 6 +-
.../versions/head/test_asset_events.py | 326 +-
.../versions/head/test_task_instances.py | 71 +
.../versions/v2025_09_23/test_task_instances.py | 57 +
.../unit/cli/commands/test_api_server_command.py | 48 +-
.../tests/unit/core/test_airflow_module.py | 4 +-
.../tests/unit/dag_processing/test_dagbag.py | 99 +
.../tests/unit/dag_processing/test_processor.py | 257 +-
airflow-core/tests/unit/dags/.airflowignore_glob | 7 +-
...gate_ignore.py => test_explicit_dont_ignore.py} | 5 +-
.../dags/subdir2/subdir3/should_ignore_this.py} | 0
.../dags/subdir2/subdir3/test_explicit_ignore.py} | 0
airflow-core/tests/unit/datasets/test_dataset.py | 4 +-
.../tests/unit/executors/test_executor_loader.py | 17 +-
airflow-core/tests/unit/models/test_callback.py | 139 +
airflow-core/tests/unit/models/test_connection.py | 3 +-
airflow-core/tests/unit/models/test_dag.py | 25 +
.../tests/unit/models/test_mappedoperator.py | 178 +
airflow-core/tests/unit/models/test_pool.py | 7 +-
airflow-core/tests/unit/models/test_variable.py | 3 +-
.../unit/serialization/test_dag_serialization.py | 11 +-
.../unit/serialization/test_serialized_objects.py | 2 +-
.../ti_deps/deps/test_mapped_task_upstream_dep.py | 2 +-
airflow-core/tests/unit/utils/test_file.py | 35 +-
.../pyproject.toml | 7 +-
.../tests/airflowctl_tests}/__init__.py | 0
.../tests/airflowctl_tests/conftest.py | 253 ++
.../tests/airflowctl_tests}/constants.py | 6 +
.../airflowctl_tests/test_airflowctl_commands.py | 73 +
airflow-ctl/docs/cli-and-env-variables-ref.rst | 7 +
airflow-ctl/src/airflowctl/api/client.py | 25 +-
.../src/airflowctl/api/datamodels/generated.py | 8 +-
airflow-ctl/src/airflowctl/ctl/cli_config.py | 9 +-
.../airflow_ctl/ctl/commands/test_auth_command.py | 6 +-
airflow-e2e-tests/pyproject.toml | 1 -
.../tests/airflow_e2e_tests/conftest.py | 35 +-
.../remote_log_tests/test_remote_logging.py | 41 +-
chart/docs/production-guide.rst | 2 +-
chart/values.yaml | 2 +-
.../03a_contributors_quick_start_beginners.rst | 3 +
contributing-docs/08_static_code_checks.rst | 39 +-
dev/README_RELEASE_AIRFLOW.md | 9 +
dev/README_RELEASE_HELM_CHART.md | 9 +
dev/README_RELEASE_PROVIDERS.md | 9 +
dev/README_RELEASE_PYTHON_CLIENT.md | 13 +-
dev/breeze/README.md | 9 -
dev/breeze/doc/05_test_commands.rst | 21 +-
dev/breeze/doc/ci/02_images.md | 4 +-
.../output_setup_check-all-params-in-groups.svg | 34 +-
.../output_setup_check-all-params-in-groups.txt | 2 +-
.../output_setup_regenerate-command-images.svg | 24 +-
.../output_setup_regenerate-command-images.txt | 2 +-
dev/breeze/doc/images/output_testing.svg | 30 +-
dev/breeze/doc/images/output_testing.txt | 2 +-
...utput_testing_airflow-ctl-integration-tests.svg | 144 +
...utput_testing_airflow-ctl-integration-tests.txt | 1 +
dev/breeze/pyproject.toml | 4 +-
.../commands/release_management_commands.py | 6 +-
.../src/airflow_breeze/commands/setup_commands.py | 4 -
.../airflow_breeze/commands/testing_commands.py | 56 +
.../commands/testing_commands_config.py | 15 +-
dev/breeze/src/airflow_breeze/global_constants.py | 4 +-
.../prepare_providers/provider_documentation.py | 7 +-
dev/breeze/src/airflow_breeze/utils/path_utils.py | 75 +-
dev/breeze/src/airflow_breeze/utils/reinstall.py | 9 +-
dev/breeze/src/airflow_breeze/utils/run_tests.py | 5 +
.../src/airflow_breeze/utils/selective_checks.py | 17 -
dev/breeze/tests/test_provider_documentation.py | 6 +-
dev/breeze/tests/test_selective_checks.py | 58 +-
dev/breeze/uv.lock | 1481 ++++---
dev/i18n/check_translations_completeness.py | 34 +-
devel-common/pyproject.toml | 3 +-
docker-tests/pyproject.toml | 1 -
docs/README.md | 28 +-
docs/images/build-docs.png | Bin 0 -> 293775 bytes
docs/images/sync_github_to_s3.png | Bin 146423 -> 374702
bytes
generated/PYPI_README.md | 2 +-
.../tests/chart_utils/helm_template_generator.py | 49 +-
kubernetes-tests/pyproject.toml | 1 -
.../notifications/chime_notifier_howto_guide.rst | 4 +-
providers/amazon/docs/notifications/sns.rst | 4 +-
providers/amazon/docs/notifications/sqs.rst | 4 +-
.../providers/amazon/aws/hooks/athena_sql.py | 20 +-
.../providers/amazon/aws/hooks/redshift_sql.py | 28 +-
.../amazon/tests/system/amazon/aws/example_dms.py | 4 +-
.../system/amazon/aws/example_dms_serverless.py | 4 +-
.../airflow/providers/apache/drill/hooks/drill.py | 3 +-
.../apache/kafka/triggers/await_message.py | 10 +-
.../notifications/apprise_notifier_howto_guide.rst | 4 +-
.../notifications/jira-notifier-howto-guide.rst | 4 +-
providers/atlassian/jira/pyproject.toml | 2 +
.../airflow/providers/atlassian/jira/hooks/jira.py | 107 +-
.../providers/atlassian/jira/notifications/jira.py | 55 +-
.../tests/unit/atlassian/jira/hooks/test_jira.py | 120 +-
.../unit/atlassian/jira/notifications/test_jira.py | 36 +-
providers/celery/provider.yaml | 4 +-
.../airflow/providers/celery/cli/celery_command.py | 2 +-
.../celery/executors/celery_executor_utils.py | 13 +-
.../airflow/providers/celery/get_provider_info.py | 2 +-
.../cncf/kubernetes/docs/kubernetes_executor.rst | 4 +-
.../providers/cncf/kubernetes/hooks/kubernetes.py | 35 +-
.../providers/cncf/kubernetes/operators/pod.py | 8 +-
.../providers/cncf/kubernetes/utils/container.py | 118 +
.../providers/cncf/kubernetes/utils/pod_manager.py | 137 +-
.../unit/cncf/kubernetes/utils/test_container.py | 172 +
.../unit/cncf/kubernetes/utils/test_pod_manager.py | 147 -
providers/common/compat/pyproject.toml | 1 -
.../providers/common/compat/_compat_utils.py | 105 +
.../src/airflow/providers/common/compat/sdk.py | 212 +
.../common/compat/sqlalchemy}/__init__.py | 0
.../providers/common/compat/sqlalchemy/orm.py | 9 +-
.../providers/common/compat/standard/operators.py | 41 +-
.../providers/common/compat/standard/triggers.py | 15 +-
.../providers/common/compat/standard/utils.py | 22 +-
.../unit/common/compat/sqlalchemy}/__init__.py | 0
.../unit/common/compat/sqlalchemy/test_orm.py | 145 +
.../tests/unit/common/compat/test__compat_utils.py | 215 +
.../compat/tests/unit/common/compat/test_sdk.py | 54 +
.../providers/common/sql/dialects/dialect.py | 27 +-
.../src/airflow/providers/common/sql/hooks/sql.py | 2 +-
.../tests/unit/common/sql/dialects/test_dialect.py | 1 -
providers/databricks/pyproject.toml | 2 +-
.../databricks/plugins/databricks_workflow.py | 192 +-
providers/edge3/docs/edge_executor.rst | 4 +-
.../providers/edge3/example_dags/win_test.py | 2 +-
.../providers/edge3/openapi/v2-edge-generated.yaml | 6 +-
.../providers/edge3/plugins/www/dist/main.umd.cjs | 38 +-
.../www/openapi-gen/requests/schemas.gen.ts | 8 +-
.../plugins/www/openapi-gen/requests/types.gen.ts | 2 +-
providers/edge3/www-hash.txt | 2 +-
.../providers/elasticsearch/log/es_task_handler.py | 14 +-
providers/fab/pyproject.toml | 2 +-
.../providers/fab/auth_manager/models/__init__.py | 17 +-
.../airflow/providers/fab/www/package-lock.json | 43 +-
.../fab/src/airflow/providers/fab/www/package.json | 2 +-
.../tests/unit/fab/auth_manager/test_security.py | 14 +-
providers/fab/www-hash.txt | 2 +-
.../git/src/airflow/providers/git/bundles/git.py | 79 +-
providers/git/tests/unit/git/bundles/test_git.py | 66 +-
providers/google/docs/operators/cloud/gen_ai.rst | 112 +
.../google/docs/operators/cloud/vertex_ai.rst | 68 +-
providers/google/provider.yaml | 11 +
providers/google/pyproject.toml | 2 +-
.../src/airflow/providers/google/ads/hooks/ads.py | 2 +-
.../src/airflow/providers/google/assets/gcs.py | 12 +-
.../providers/google/cloud/hooks/bigquery.py | 42 +-
.../providers/google/cloud/hooks/cloud_sql.py | 2 +-
.../cloud/hooks/cloud_storage_transfer_service.py | 16 +
.../providers/google/cloud/hooks/dataflow.py | 2 +-
.../providers/google/cloud/hooks/dataprep.py | 2 +-
.../airflow/providers/google/cloud/hooks/gen_ai.py | 196 +
.../airflow/providers/google/cloud/hooks/looker.py | 2 +-
.../cloud/hooks/vertex_ai/generative_model.py | 30 +
.../airflow/providers/google/cloud/links/base.py | 13 +-
.../providers/google/cloud/links/dataproc.py | 12 +-
.../providers/google/cloud/operators/cloud_run.py | 3 +-
.../providers/google/cloud/operators/cloud_sql.py | 2 +-
.../operators/cloud_storage_transfer_service.py | 31 +
.../providers/google/cloud/operators/gen_ai.py | 389 ++
.../cloud/operators/vertex_ai/generative_model.py | 30 +
.../providers/google/cloud/sensors/bigquery.py | 2 +-
.../providers/google/cloud/sensors/bigquery_dts.py | 7 +-
.../providers/google/cloud/sensors/bigtable.py | 7 +-
.../google/cloud/sensors/cloud_composer.py | 7 +-
.../sensors/cloud_storage_transfer_service.py | 7 +-
.../providers/google/cloud/sensors/dataflow.py | 2 +-
.../providers/google/cloud/sensors/dataform.py | 7 +-
.../providers/google/cloud/sensors/datafusion.py | 7 +-
.../providers/google/cloud/sensors/dataplex.py | 7 +-
.../providers/google/cloud/sensors/dataprep.py | 7 +-
.../providers/google/cloud/sensors/dataproc.py | 7 +-
.../google/cloud/sensors/dataproc_metastore.py | 7 +-
.../airflow/providers/google/cloud/sensors/gcs.py | 8 +-
.../providers/google/cloud/sensors/looker.py | 7 +-
.../providers/google/cloud/sensors/pubsub.py | 7 +-
.../providers/google/cloud/sensors/tasks.py | 7 +-
.../cloud/sensors/vertex_ai/feature_store.py | 7 +-
.../providers/google/cloud/sensors/workflows.py | 7 +-
.../google/cloud/transfers/sftp_to_gcs.py | 13 +-
.../providers/google/cloud/triggers/bigquery.py | 18 +-
.../providers/google/cloud/triggers/cloud_run.py | 2 +-
.../triggers/cloud_storage_transfer_service.py | 90 +
.../providers/google/cloud/triggers/pubsub.py | 32 +-
.../providers/google/common/hooks/base_google.py | 2 +-
.../airflow/providers/google/get_provider_info.py | 14 +
.../providers/google/leveldb/hooks/leveldb.py | 2 +-
.../marketing_platform/links/analytics_admin.py | 10 +-
.../marketing_platform/sensors/campaign_manager.py | 7 +-
.../marketing_platform/sensors/display_video.py | 7 +-
.../providers/google/suite/sensors/drive.py | 7 +-
.../src/airflow/providers/google/version_compat.py | 20 -
.../tests/system/google/cloud/gen_ai}/__init__.py | 0
.../example_gen_ai_generative_model.py} | 138 +-
.../example_gen_ai_generative_model_tuning.py} | 38 +-
.../google/cloud/gen_ai/resources}/__init__.py | 0
.../resources/video_tuning_dataset.jsonl | 0
.../test_cloud_storage_transfer_service_async.py | 18 +
.../tests/unit/google/cloud/hooks/test_gen_ai.py | 193 +
.../cloud/hooks/vertex_ai/test_generative_model.py | 92 +-
.../google/cloud/operators/gen_ai}/__init__.py | 0
.../unit/google/cloud/operators/test_cloud_run.py | 5 +-
.../unit/google/cloud/operators/test_gen_ai.py | 250 ++
.../operators/vertex_ai/test_generative_model.py | 134 +-
.../google/cloud/transfers/test_sftp_to_gcs.py | 24 +
.../unit/google/cloud/triggers/test_cloud_run.py | 2 +-
.../test_cloud_storage_transfer_service.py | 93 +
.../unit/google/cloud/triggers/test_pubsub.py | 42 +
.../imap/src/airflow/providers/imap/hooks/imap.py | 9 +-
.../jenkins/operators/jenkins_job_trigger.py | 59 +-
.../jenkins/operators/test_jenkins_job_trigger.py | 77 +-
.../keycloak/auth_manager/keycloak_auth_manager.py | 28 +-
.../keycloak/auth_manager/routes/test_login.py | 77 +-
.../auth_manager/test_keycloak_auth_manager.py | 39 +
.../azure/tests/unit/microsoft/azure/test_utils.py | 2 +
.../src/airflow/providers/neo4j/hooks/neo4j.py | 5 +-
.../neo4j/tests/unit/neo4j/operators/test_neo4j.py | 2 +-
providers/openlineage/docs/guides/user.rst | 2 +-
.../providers/opensearch/log/os_task_handler.py | 14 +-
.../pagerduty_notifier_howto_guide.rst | 4 +-
.../providers/postgres/dialects/postgres.py | 79 +-
.../src/airflow/providers/presto/hooks/presto.py | 37 +-
.../tests/unit/presto/hooks/test_presto_sql.py | 364 ++
.../src/airflow/providers/sftp/operators/sftp.py | 19 +-
.../notifications/slack_notifier_howto_guide.rst | 4 +-
.../slackwebhook_notifier_howto_guide.rst | 4 +-
providers/slack/pyproject.toml | 1 +
.../src/airflow/providers/slack/hooks/slack.py | 43 +-
.../airflow/providers/slack/hooks/slack_webhook.py | 11 +-
.../airflow/providers/slack/notifications/slack.py | 22 +-
.../src/airflow/providers/slack/utils/__init__.py | 15 +
.../src/airflow/providers/slack/version_compat.py | 5 +-
.../slack/tests/unit/slack/hooks/test_slack.py | 57 +-
.../tests/unit/slack/hooks/test_slack_webhook.py | 2 +-
.../tests/unit/slack/notifications/test_slack.py | 28 +
.../slack/tests/unit/slack/utils/test_utils.py | 43 +-
providers/smtp/docs/connections/smtp.rst | 4 +-
.../notifications/smtp_notifier_howto_guide.rst | 4 +-
.../docs/configurations-ref.rst | 0
providers/snowflake/docs/connections/snowflake.rst | 1 +
providers/snowflake/docs/index.rst | 16 +-
providers/snowflake/provider.yaml | 13 +
providers/snowflake/pyproject.toml | 4 +
.../providers/snowflake/get_provider_info.py | 14 +
.../airflow/providers/snowflake/hooks/snowflake.py | 60 +-
.../tests/unit/snowflake/hooks/test_snowflake.py | 79 +
.../ssh/src/airflow/providers/ssh/operators/ssh.py | 14 +-
providers/ssh/tests/unit/ssh/operators/test_ssh.py | 10 +
providers/standard/docs/operators/bash.rst | 2 +-
providers/standard/pyproject.toml | 2 +
.../airflow/providers/standard/decorators/bash.py | 20 +-
.../standard/decorators/branch_external_python.py | 10 +-
.../providers/standard/decorators/branch_python.py | 9 +-
.../standard/decorators/branch_virtualenv.py | 9 +-
.../standard/decorators/external_python.py | 9 +-
.../providers/standard/decorators/python.py | 9 +-
.../standard/decorators/python_virtualenv.py | 11 +-
.../providers/standard/decorators/sensor.py | 11 +-
.../providers/standard/decorators/short_circuit.py | 10 +-
.../airflow/providers/standard/decorators/stub.py | 18 +-
.../example_dags/example_bash_decorator.py | 7 +-
.../example_dags/example_branch_operator.py | 7 +-
.../example_branch_operator_decorator.py | 7 +-
.../example_external_task_parent_deferrable.py | 8 +-
.../standard/example_dags/example_hitl_operator.py | 2 +-
.../standard/example_dags/example_sensors.py | 7 +-
.../example_short_circuit_decorator.py | 7 +-
.../example_dags/example_short_circuit_operator.py | 7 +-
.../airflow/providers/standard/hooks/filesystem.py | 2 +-
.../providers/standard/hooks/package_index.py | 2 +-
.../airflow/providers/standard/hooks/subprocess.py | 2 +-
.../airflow/providers/standard/operators/bash.py | 15 +-
.../airflow/providers/standard/operators/branch.py | 2 +-
.../providers/standard/operators/datetime.py | 8 +-
.../airflow/providers/standard/operators/empty.py | 2 +-
.../airflow/providers/standard/operators/hitl.py | 2 +-
.../providers/standard/operators/latest_only.py | 7 +-
.../airflow/providers/standard/operators/python.py | 9 +-
.../airflow/providers/standard/operators/smooth.py | 2 +-
.../providers/standard/operators/trigger_dagrun.py | 20 +-
.../providers/standard/operators/weekday.py | 8 +-
.../src/airflow/providers/standard/sensors/bash.py | 8 +-
.../providers/standard/sensors/date_time.py | 8 +-
.../providers/standard/sensors/external_task.py | 9 +-
.../providers/standard/sensors/filesystem.py | 2 +-
.../airflow/providers/standard/sensors/python.py | 8 +-
.../src/airflow/providers/standard/sensors/time.py | 7 +-
.../providers/standard/sensors/time_delta.py | 10 +-
.../airflow/providers/standard/sensors/weekday.py | 9 +-
.../providers/standard/triggers/temporal.py | 6 +-
.../airflow/providers/standard/utils/skipmixin.py | 8 +-
.../airflow/providers/standard/version_compat.py | 24 +-
.../airflow/providers/teradata/hooks/teradata.py | 20 +-
pyproject.toml | 6 +-
scripts/ci/install_breeze.sh | 2 -
.../ci/prek/check_common_compat_lazy_imports.py | 183 +
scripts/ci/prek/check_imports_in_providers.py | 2 +-
scripts/ci/prek/check_license.py | 2 -
scripts/ci/prek/common_prek_utils.py | 32 +-
scripts/ci/prek/ruff_format.py | 2 +-
scripts/ci/prek/update_breeze_config_hash.py | 69 -
scripts/ci/prek/upgrade_important_versions.py | 17 +-
scripts/cov/core_coverage.py | 1 +
.../docker/install_airflow_when_building_images.sh | 1 +
scripts/in_container/bin/run_tmux | 4 +
scripts/tools/setup_breeze | 2 +-
shared/README.md | 2 +-
.../src/airflow_shared/logging/structlog.py | 14 +-
task-sdk-tests/pyproject.toml | 1 -
task-sdk-tests/tests/task_sdk_tests/conftest.py | 8 +
task-sdk-tests/tests/task_sdk_tests/constants.py | 20 -
.../tests/task_sdk_tests/test_task_sdk_health.py | 7 +-
task-sdk/src/airflow/sdk/api/client.py | 25 +-
task-sdk/src/airflow/sdk/definitions/dag.py | 39 +-
task-sdk/src/airflow/sdk/execution_time/comms.py | 8 +
task-sdk/src/airflow/sdk/execution_time/context.py | 140 +-
.../src/airflow/sdk/execution_time/supervisor.py | 17 +-
task-sdk/src/airflow/sdk/module_loading.py | 3 +-
task-sdk/tests/task_sdk/definitions/test_dag.py | 15 +
.../tests/task_sdk/execution_time/test_context.py | 100 +-
.../task_sdk/execution_time/test_supervisor.py | 206 +-
.../task_sdk/execution_time/test_task_runner.py | 12 +-
519 files changed, 15667 insertions(+), 6310 deletions(-)
delete mode 100644 .github/actions/install-pre-commit/action.yml
copy airflow-core/src/airflow/{api/common =>
api_fastapi/auth/middlewares}/__init__.py (100%)
create mode 100644
airflow-core/src/airflow/api_fastapi/auth/middlewares/refresh_token.py
create mode 100644
airflow-core/src/airflow/migrations/versions/0091_3_2_0_restructure_callback_table.py
create mode 100644 airflow-core/src/airflow/models/callback.py
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/el/admin.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/el/assets.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/el/browse.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/el/common.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/el/components.json
create mode 100644 airflow-core/src/airflow/ui/public/i18n/locales/el/dag.json
create mode 100644 airflow-core/src/airflow/ui/public/i18n/locales/el/dags.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/el/dashboard.json
create mode 100644 airflow-core/src/airflow/ui/public/i18n/locales/el/hitl.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/el/tasks.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/th/admin.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/th/assets.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/th/browse.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/th/common.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/th/components.json
create mode 100644 airflow-core/src/airflow/ui/public/i18n/locales/th/dag.json
create mode 100644 airflow-core/src/airflow/ui/public/i18n/locales/th/dags.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/th/dashboard.json
create mode 100644 airflow-core/src/airflow/ui/public/i18n/locales/th/hitl.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/th/tasks.json
create mode 100644
airflow-core/src/airflow/ui/src/components/ui/ResizableWrapper.tsx
copy airflow-core/src/airflow/ui/src/{context/timezone/TimezoneProvider.tsx =>
utils/usePersistentResizableState.ts} (55%)
copy airflow-core/{src/airflow/api/common =>
tests/unit/api_fastapi/auth/middlewares}/__init__.py (100%)
create mode 100644
airflow-core/tests/unit/api_fastapi/auth/middlewares/test_refresh_token.py
copy airflow-core/tests/unit/dags/subdir1/{test_negate_ignore.py =>
test_explicit_dont_ignore.py} (89%)
copy airflow-core/{src/airflow/api/common/__init__.py =>
tests/unit/dags/subdir2/subdir3/should_ignore_this.py} (100%)
copy airflow-core/{src/airflow/_shared/__init__.py =>
tests/unit/dags/subdir2/subdir3/test_explicit_ignore.py} (100%)
create mode 100644 airflow-core/tests/unit/models/test_callback.py
copy {task-sdk-tests => airflow-ctl-tests}/pyproject.toml (92%)
copy {task-sdk-tests/tests/task_sdk_tests =>
airflow-ctl-tests/tests/airflowctl_tests}/__init__.py (100%)
create mode 100644 airflow-ctl-tests/tests/airflowctl_tests/conftest.py
copy {docker-tests/tests/docker_tests =>
airflow-ctl-tests/tests/airflowctl_tests}/constants.py (84%)
create mode 100644
airflow-ctl-tests/tests/airflowctl_tests/test_airflowctl_commands.py
create mode 100644
dev/breeze/doc/images/output_testing_airflow-ctl-integration-tests.svg
create mode 100644
dev/breeze/doc/images/output_testing_airflow-ctl-integration-tests.txt
create mode 100644 docs/images/build-docs.png
create mode 100644
providers/cncf/kubernetes/src/airflow/providers/cncf/kubernetes/utils/container.py
create mode 100644
providers/cncf/kubernetes/tests/unit/cncf/kubernetes/utils/test_container.py
create mode 100644
providers/common/compat/src/airflow/providers/common/compat/_compat_utils.py
create mode 100644
providers/common/compat/src/airflow/providers/common/compat/sdk.py
copy {airflow-core/src/airflow/_shared =>
providers/common/compat/src/airflow/providers/common/compat/sqlalchemy}/__init__.py
(100%)
copy dev/breeze/src/airflow_breeze/utils/click_utils.py =>
providers/common/compat/src/airflow/providers/common/compat/sqlalchemy/orm.py
(80%)
copy {airflow-core/src/airflow/_shared =>
providers/common/compat/tests/unit/common/compat/sqlalchemy}/__init__.py (100%)
create mode 100644
providers/common/compat/tests/unit/common/compat/sqlalchemy/test_orm.py
create mode 100644
providers/common/compat/tests/unit/common/compat/test__compat_utils.py
create mode 100644 providers/common/compat/tests/unit/common/compat/test_sdk.py
create mode 100644 providers/google/docs/operators/cloud/gen_ai.rst
create mode 100644
providers/google/src/airflow/providers/google/cloud/hooks/gen_ai.py
create mode 100644
providers/google/src/airflow/providers/google/cloud/operators/gen_ai.py
copy {airflow-core/src/airflow/_shared =>
providers/google/tests/system/google/cloud/gen_ai}/__init__.py (100%)
rename
providers/google/tests/system/google/cloud/{vertex_ai/example_vertex_ai_generative_model.py
=> gen_ai/example_gen_ai_generative_model.py} (80%)
rename
providers/google/tests/system/google/cloud/{vertex_ai/example_vertex_ai_generative_model_tuning.py
=> gen_ai/example_gen_ai_generative_model_tuning.py} (82%)
copy {airflow-core/src/airflow/_shared =>
providers/google/tests/system/google/cloud/gen_ai/resources}/__init__.py (100%)
copy providers/google/tests/system/google/cloud/{vertex_ai =>
gen_ai}/resources/video_tuning_dataset.jsonl (100%)
create mode 100644
providers/google/tests/unit/google/cloud/hooks/test_gen_ai.py
copy {airflow-core/src/airflow/_shared =>
providers/google/tests/unit/google/cloud/operators/gen_ai}/__init__.py (100%)
create mode 100644
providers/google/tests/unit/google/cloud/operators/test_gen_ai.py
create mode 100644 providers/presto/tests/unit/presto/hooks/test_presto_sql.py
copy providers/{amazon => snowflake}/docs/configurations-ref.rst (100%)
create mode 100755 scripts/ci/prek/check_common_compat_lazy_imports.py
delete mode 100755 scripts/ci/prek/update_breeze_config_hash.py