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/vite-5.4.18
in repository https://gitbox.apache.org/repos/asf/airflow.git
discard d827e196ebe Bump vite from 5.4.17 to 5.4.18 in
/airflow-core/src/airflow/ui
add 4fa0eec9d47 Help pip to find appropriate boto for aiobotocore (#49166)
add 0ecc99f8510 Add `jason810496` in codeowners (#49174)
add 9dcce2f71b8 Fixing DatabricksNotebookOperator invalid dependency graph
issue (#48492)
add eecbd216ab0 Move celery integration tests to celery provider. (#49178)
add 0c883c5be7c Remove dag_version as a create_dagrun argument (#49148)
add 1781dc9d5fc AWS Batch Operators/Sensors inherit AWS Base classes
(#49172)
add 9b130c6f718 Fix generation of local provider documentation index
(#49183)
add 4743694b16f Added step to install docker compose in MacOs (#47979)
add 0ca0f17996c Remove unused db method in k8s provider (#49186)
add 4add064816b Implement `Variable.delete` method in task SDK (#49141)
add fdf7f77224f Fix broken link in development index (#49192)
add 9f5e76f053d Add inventory of providers using DB (#49189)
add baa1cc2d3f6 chore: use object type hint for __eq__ method (#48900)
add 9c11f39e990 chore: make the __enter__ method return Self instead of
the class type (#48902)
add 4c8966ef8ac Silence non-user-actionable warning about forks+threads in
macOS & Py 3.12+ (#49185)
add efdca941103 Use BaseXCom serialize_value when objectstorage_threshold
is less than given input (#49173)
add cb79c51303e mark sendgrid provider as not ready (#49203)
add e9c46a3a6fe Add link to precommit tool install guide (#49200)
add 000366dcdd8 Fix finding assets in serialized mapped operator (#49210)
add 2a7dea10f2b Fix PostgresHook Json serialization (#49120)
add 4cdc7be004f update md5 type hints to respect PEP570 (#49195)
add 4ab223db3cd Logging the loaded secrets backends in worker (#49205)
add bc45acf4ccb Move SQS message queue code example from core to provider
docs (#49208)
add 76a96086b6b Fix get_confluent_token callback for Managed Kafka service
(#48926)
add 23793983669 Deprecate start_sql_job in DataflowHook (#48663)
add e2a466dd151 Update providers metadata 2025-04-14 (#49207)
add e519ca76ddd Fix default value wait_for_operation_result (#49121)
add 0f0662cc326 remove Literal[local] type hint as it is included in str
(#49194)
add b835641f746 Collapse Cadwyn migrations (#49116)
add 959135f8a9f Mark mssql and samba tests as db-tests (#49213)
add fd241fceeac fix(AssetSchedule): fix how asset_expression is accessed
(#49214)
add d61fe47bf63 Improve example docs around SQLExecuteQueryOperator in
Druid/Hive/Impala/Kylin/Pinot (#48856)
add c48744891dc Fix some mistakes in AirbyteJobSensor docs. (#49196)
add cb295c351a0 remove superfluous else block (#49199)
add 80232bd35f5 Update taskflow.rst (#47984)
add 571fce66188 fix(AssetSchedule): use asset.name if exists (#49225)
add c447ad303b9 gate import behind Airflow 2 path (#49209)
add dc5d007fe57 feat: overwrite `get_uri` for `JDBC` (#48915)
add 36deade3fc8 Rename directory for dag processor child process logs
(#49227)
add f89dac92025 Improve logging of abnormal exit codes for supervised
sub-processes. (#49217)
add 9534c0690a9 Update Object Storage tutorial to match learning path tone
(#49170)
add 23965c4aa5c Nuke orm_deserialize_value refs in docs and docstring
(#49220)
add c6beaf0e304 batch processing for updating TI UUIDs (#49015)
add 8615a1fc32b Bump min version of pre-installed providers to latest
(#49222)
add 727ab2dfffd Add note in update_airflow_pyproject_toml.py (#49230)
add 45be7f823f3 feat(dag_dependency): add unresolved asset ref node
(#49231)
add 4919400862c Add cross dependencies between airflow-core and task-sdk
(#49221)
add 20f8af546e6 Fix `EksClusterStateSensor`. Save `region` as attribute
(#49138)
add 2a0009dddfd Unpause DAG in AWS MWAA system test (#49145)
add 2450c6a63f4 add callout for using multiple outputs in step 2 example
(#49169)
add f8c3bbcfa67 Re-add section on getting Context in Taskflow API (#49240)
add 261d569d9ec Properly allow variable delete from models (#49234)
add 3dafd330591 Instantiate logger while logging loaded secrets backend
(#49235)
add 647de21d4cb Remove `STATE_COLORS` from Airflow Local Setting (#49228)
add 58c5b820e7d Initialize Providers configuration is now session-scoped
(#49245)
add 2b8eebd0692 Rename edge provider to edgeexecutor provider. (#49184)
add 344f75b6087 Fix deprecation warning for Variable utility imports from
models (#49242)
add bd8941dee9d Bump Serialized DAG to v2 and handle conversion from v1
(#49020)
add 8fd9a8167bf Wrap dictionary iteration with list to prevent dictionary
being changed during iteration. (#49241)
add ae89d60a005 Cleanup AUTH_TYPE import comments in
default_webserver_config.py (#49248)
add 18c99df9541 Add ORC support to GCSToBigQueryOperator and test for
external tables (#49188)
add 405ca32ff2a Add `common-messaging` in the prod image (#49249)
add 479e513d864 Remove duplicate Trove classifier (#49258)
add 19d52ce5ea1 Add ref default default node (#49233)
add 88f9218eaf1 fix(serialized_dag): return original DagDependency if
Asset Alias has not yet been resolved into asset (#49204)
add c6f51c2643e Elasticsearch : Ignore cursor specific parameters when
instantiating the connection (#48865)
add 9c95c3c08f1 docs: update connections how-to with 3.0 screenshots
(#49264)
add 8365295f4d8 docs: add light mode screenshots for overview, move dark
mode to folder (#49263)
add fe099c41dc4 Properly handle build of PRD image when constraint build
failed (#49259)
add 2520faa7884 docs: update email-config.rst how-to with 3.0 screenshots
(#49269)
add dbfb2a65ae6 docs: update setup/teardown how-to with 3.0 screenshots
(#49268)
add 12682b27246 docs: update and clean up "add tags to dags" how-to
(#49266)
add c8f365435bf simplify isinstance conditions for otel in trigger_tasks
method (#49253)
add 1355b8e192c Load TI related objects when purging TIs without heartbeat
(#49246)
add 8d9afc239bc Update stable rest API docs ref (#49279)
add da399c4951f Use ``default`` in variable.get for task SDK variables
(#49278)
add 6b7c0f7d211 Update airflow config lint to show breaking config changes
by default (#49223)
add 4ebddc945d0 Show pending states in historic metrics (#49267)
add 8dc0e55234d Make sure provider's manager is not left in a clean state
(#49283)
add 85f3cffa794 docs: update variables how-to with Airflow 3.0 screenshots
(#49265)
add f53002d8e8c Move function to methods on models.TaskInstance (#49257)
add b1033fc8437 docs: remove DAG owner links how-to since no feature
parity (#49262)
add ad2604461cf Ensure scheduler uses best available serdag for dag run
(#49097)
add 09854ff3069 AIP-38: remove `default_ui_timezone` (#49176)
add 9b61af17835 Removing init_dagbag from fastapi app (#49285)
add 0d6a6a260f7 Improvements to rendered API docs (#49287)
add 6ced7b86d43 Document upgrading to Airflow 3 (#49271)
add b9052eed423 Include subdir in Gitbundle view url (#49239)
add 4da93d0b60a fix(serialized_objects): handle both inlet and outlet in
v1 to v2 convert (#49286)
add 3512e8cbe82 Fix fab auth manager login (#49292)
add 90dbd241f0e Make sure all openapi schemes have distinct names (#49290)
add 2cceb602519 Bump vite from 5.4.17 to 5.4.18 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 (d827e196ebe)
\
N -- N -- N
refs/heads/dependabot/npm_and_yarn/airflow-core/src/airflow/ui/vite-5.4.18
(2cceb602519)
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:
.github/CODEOWNERS | 10 +-
.../airflow_providers_bug_report.yml | 2 +-
.github/boring-cyborg.yml | 4 +-
.github/workflows/generate-constraints.yml | 5 +
.pre-commit-config.yaml | 8 +-
.rat-excludes | 2 +-
Dockerfile | 11 +-
Dockerfile.ci | 9 +-
.../docs/authoring-and-scheduling/assets.rst | 2 +-
.../docs/authoring-and-scheduling/datasets.rst | 4 +-
.../authoring-and-scheduling/event-scheduling.rst | 35 +-
.../docs/authoring-and-scheduling/index.rst | 7 +-
.../docs/authoring-and-scheduling/timezone.rst | 4 +-
airflow-core/docs/best-practices.rst | 8 +-
airflow-core/docs/cli-and-env-variables-ref.rst | 2 +-
airflow-core/docs/conf.py | 6 +-
airflow-core/docs/core-concepts/executor/index.rst | 2 +-
airflow-core/docs/core-concepts/taskflow.rst | 2 +-
airflow-core/docs/core-concepts/variables.rst | 4 +-
airflow-core/docs/core-concepts/xcoms.rst | 2 -
airflow-core/docs/extra-packages-ref.rst | 6 +-
airflow-core/docs/howto/add-dag-tags.rst | 2 +-
airflow-core/docs/howto/add-owner-links.rst | 50 -
airflow-core/docs/howto/connection.rst | 6 +-
airflow-core/docs/howto/customize-ui.rst | 59 -
airflow-core/docs/howto/email-config.rst | 2 +-
airflow-core/docs/howto/index.rst | 1 -
airflow-core/docs/howto/setup-and-teardown.rst | 14 +-
airflow-core/docs/howto/variable.rst | 2 +-
airflow-core/docs/img/add-dag-tags.png | Bin 54332 -> 0 bytes
airflow-core/docs/img/airflow_erd.sha256 | 2 +-
airflow-core/docs/img/airflow_erd.svg | 3757 ++++++++++----------
airflow-core/docs/img/connection_create.png | Bin 52889 -> 0 bytes
airflow-core/docs/img/connection_edit.png | Bin 31186 -> 0 bytes
.../img/demo_dag_overview_with_failed_tasks.png | Bin 292803 -> 0 bytes
airflow-core/docs/img/demo_graph_and_code_view.png | Bin 172027 -> 0 bytes
.../docs/img/demo_grid_view_with_task_logs.png | Bin 194258 -> 0 bytes
airflow-core/docs/img/email_connection.png | Bin 59515 -> 0 bytes
airflow-core/docs/img/setup-teardown-complex.png | Bin 114476 -> 0 bytes
airflow-core/docs/img/setup-teardown-group.png | Bin 48789 -> 0 bytes
airflow-core/docs/img/setup-teardown-nesting.png | Bin 83934 -> 0 bytes
airflow-core/docs/img/setup-teardown-parallel.png | Bin 43571 -> 0 bytes
airflow-core/docs/img/setup-teardown-scope.png | Bin 62951 -> 0 bytes
.../docs/img/setup-teardown-setup-group.png | Bin 76759 -> 0 bytes
airflow-core/docs/img/setup-teardown-simple.png | Bin 29606 -> 0 bytes
airflow-core/docs/img/ui-dark/add-dag-tags.png | Bin 0 -> 87307 bytes
.../docs/img/ui-dark/connection_create.png | Bin 0 -> 56075 bytes
airflow-core/docs/img/ui-dark/connection_edit.png | Bin 0 -> 42107 bytes
.../demo_dag_overview_with_failed_tasks.png | Bin 0 -> 285470 bytes
.../docs/img/ui-dark/demo_graph_and_code_view.png | Bin 0 -> 171844 bytes
.../img/ui-dark/demo_grid_view_with_task_logs.png | Bin 0 -> 220959 bytes
airflow-core/docs/img/ui-dark/email_connection.png | Bin 0 -> 56930 bytes
.../docs/img/ui-dark/setup-teardown-complex.png | Bin 0 -> 63390 bytes
.../docs/img/ui-dark/setup-teardown-group.png | Bin 0 -> 33595 bytes
.../docs/img/ui-dark/setup-teardown-nesting.png | Bin 0 -> 39867 bytes
.../docs/img/ui-dark/setup-teardown-parallel.png | Bin 0 -> 25371 bytes
.../docs/img/ui-dark/setup-teardown-scope.png | Bin 0 -> 32771 bytes
.../img/ui-dark/setup-teardown-setup-group.png | Bin 0 -> 40659 bytes
.../docs/img/ui-dark/setup-teardown-simple.png | Bin 0 -> 24861 bytes
airflow-core/docs/img/ui-dark/variable_hidden.png | Bin 0 -> 76058 bytes
airflow-core/docs/img/ui-light/add_dag_tags.png | Bin 0 -> 85527 bytes
.../docs/img/ui-light/connection_create.png | Bin 0 -> 59177 bytes
airflow-core/docs/img/ui-light/connection_edit.png | Bin 0 -> 51498 bytes
.../demo_dag_overview_with_failed_tasks.png | Bin 0 -> 286606 bytes
.../docs/img/ui-light/demo_graph_and_code_view.png | Bin 0 -> 165225 bytes
.../img/ui-light/demo_grid_view_with_task_logs.png | Bin 0 -> 222704 bytes
.../docs/img/ui-light/email_connection.png | Bin 0 -> 59168 bytes
.../docs/img/ui-light/setup-teardown-complex.png | Bin 0 -> 63929 bytes
.../docs/img/ui-light/setup-teardown-group.png | Bin 0 -> 33507 bytes
.../docs/img/ui-light/setup-teardown-nesting.png | Bin 0 -> 39474 bytes
.../docs/img/ui-light/setup-teardown-parallel.png | Bin 0 -> 25106 bytes
.../docs/img/ui-light/setup-teardown-scope.png | Bin 0 -> 32664 bytes
.../img/ui-light/setup-teardown-setup-group.png | Bin 0 -> 40084 bytes
.../docs/img/ui-light/setup-teardown-simple.png | Bin 0 -> 24939 bytes
airflow-core/docs/img/ui-light/variable_hidden.png | Bin 0 -> 79071 bytes
airflow-core/docs/img/variable_hidden.png | Bin 55331 -> 0 bytes
airflow-core/docs/index.rst | 6 +-
airflow-core/docs/installation/index.rst | 1 +
.../docs/installation/upgrading_to_airflow3.rst | 158 +
airflow-core/docs/stable-rest-api-ref.rst | 2 +-
airflow-core/docs/troubleshooting.rst | 6 +-
airflow-core/docs/tutorial/fundamentals.rst | 4 +-
airflow-core/docs/tutorial/objectstorage.rst | 160 +-
airflow-core/docs/tutorial/taskflow.rst | 735 ++--
airflow-core/docs/ui.rst | 2 +-
airflow-core/newsfragments/47070.significant.rst | 6 +-
airflow-core/newsfragments/47761.significant.rst | 10 +-
airflow-core/newsfragments/48579.significant.rst | 4 +-
airflow-core/newsfragments/49223.significant.rst | 36 +
airflow-core/newsfragments/aip-66.significant.rst | 9 +
airflow-core/pyproject.toml | 11 +-
airflow-core/src/airflow/__init__.py | 2 +-
airflow-core/src/airflow/api/common/trigger_dag.py | 3 -
airflow-core/src/airflow/api_fastapi/app.py | 1 +
....yaml => v1-simple-auth-manager-generated.yaml} | 0
.../auth/managers/simple/ui/package.json | 2 +-
.../src/airflow/api_fastapi/auth/tokens.py | 10 +-
.../src/airflow/api_fastapi/common/parameters.py | 3 +-
.../core_api/datamodels/dag_versions.py | 6 +-
.../api_fastapi/core_api/datamodels/dags.py | 2 +-
.../api_fastapi/core_api/datamodels/ui/config.py | 2 -
.../airflow/api_fastapi/core_api/init_dagbag.py | 9 -
...1-generated.yaml => v1-rest-api-generated.yaml} | 15 +-
.../api_fastapi/core_api/routes/public/assets.py | 2 -
.../api_fastapi/core_api/routes/public/dag_run.py | 19 +-
.../api_fastapi/core_api/routes/public/log.py | 25 +-
.../api_fastapi/core_api/routes/ui/config.py | 4 +-
.../airflow/api_fastapi/core_api/routes/ui/grid.py | 12 +-
.../core_api/services/public/connections.py | 6 +-
.../api_fastapi/core_api/services/public/pools.py | 6 +-
.../core_api/services/public/variables.py | 6 +-
.../api_fastapi/core_api/services/ui/grid.py | 18 +-
.../execution_api/datamodels/taskinstance.py | 15 +-
.../execution_api/routes/task_instances.py | 33 +-
.../api_fastapi/execution_api/routes/variables.py | 18 +-
.../api_fastapi/execution_api/versions/__init__.py | 10 +-
.../execution_api/versions/v2025_03_26.py | 41 -
.../execution_api/versions/v2025_04_10.py | 34 -
airflow-core/src/airflow/cli/cli_config.py | 15 +-
.../src/airflow/cli/commands/api_server_command.py | 4 +-
.../src/airflow/cli/commands/config_command.py | 152 +-
.../src/airflow/cli/commands/dag_command.py | 7 +-
.../src/airflow/cli/commands/info_command.py | 12 +-
.../src/airflow/cli/commands/task_command.py | 8 +-
.../config_templates/airflow_local_settings.py | 2 -
.../src/airflow/config_templates/config.yml | 34 +-
.../config_templates/default_webserver_config.py | 8 +-
airflow-core/src/airflow/configuration.py | 16 +-
.../src/airflow/dag_processing/bundles/base.py | 7 +-
airflow-core/src/airflow/dag_processing/manager.py | 4 +-
.../src/airflow/dag_processing/processor.py | 12 +-
.../airflow/example_dags/example_bash_decorator.py | 3 +-
.../example_branch_python_dop_operator_3.py | 3 +-
airflow-core/src/airflow/exceptions.py | 4 +-
.../src/airflow/executors/base_executor.py | 4 +-
.../src/airflow/executors/executor_loader.py | 14 +-
.../src/airflow/executors/executor_utils.py | 3 +-
airflow-core/src/airflow/jobs/job.py | 9 +-
.../src/airflow/jobs/scheduler_job_runner.py | 108 +-
.../src/airflow/metrics/base_stats_logger.py | 6 +-
airflow-core/src/airflow/metrics/datadog_logger.py | 4 +-
airflow-core/src/airflow/metrics/otel_logger.py | 4 +-
airflow-core/src/airflow/metrics/protocols.py | 13 +-
airflow-core/src/airflow/metrics/statsd_logger.py | 7 +-
airflow-core/src/airflow/metrics/validators.py | 6 +-
airflow-core/src/airflow/migrations/env.py | 3 +-
...3_0_0_add_uuid_primary_key_to_task_instance_.py | 32 +-
.../versions/0047_3_0_0_add_dag_versioning.py | 10 +
.../0068_3_0_0_ti_table_id_unique_per_try.py | 3 +-
airflow-core/src/airflow/models/asset.py | 24 +-
airflow-core/src/airflow/models/backfill.py | 50 +-
airflow-core/src/airflow/models/base.py | 29 +-
airflow-core/src/airflow/models/baseoperator.py | 3 +-
airflow-core/src/airflow/models/connection.py | 6 +-
airflow-core/src/airflow/models/dag.py | 17 +-
airflow-core/src/airflow/models/dag_version.py | 14 +-
airflow-core/src/airflow/models/dagbag.py | 2 +-
airflow-core/src/airflow/models/dagcode.py | 3 +-
airflow-core/src/airflow/models/dagrun.py | 27 +-
.../src/airflow/models/renderedtifields.py | 3 +-
airflow-core/src/airflow/models/serialized_dag.py | 37 +-
airflow-core/src/airflow/models/taskinstance.py | 1611 ++++-----
airflow-core/src/airflow/models/variable.py | 74 +-
airflow-core/src/airflow/providers_manager.py | 3 +-
airflow-core/src/airflow/secrets/base_secrets.py | 6 +-
.../src/airflow/serialization/dag_dependency.py | 80 +-
airflow-core/src/airflow/serialization/helpers.py | 29 +-
airflow-core/src/airflow/serialization/serde.py | 3 +-
.../airflow/serialization/serialized_objects.py | 164 +-
.../airflow/serialization/serializers/timezone.py | 4 +-
airflow-core/src/airflow/settings.py | 22 +-
.../src/airflow/ti_deps/deps/base_ti_dep.py | 4 +-
.../airflow/ti_deps/deps/task_not_running_dep.py | 2 +-
.../src/airflow/ti_deps/deps/valid_state_dep.py | 6 +-
airflow-core/src/airflow/timetables/_cron.py | 4 +-
airflow-core/src/airflow/timetables/events.py | 7 +-
airflow-core/src/airflow/timetables/interval.py | 2 +-
airflow-core/src/airflow/timetables/simple.py | 2 +-
airflow-core/src/airflow/timetables/trigger.py | 3 +-
airflow-core/src/airflow/traces/otel_tracer.py | 10 +-
airflow-core/src/airflow/traces/tracer.py | 5 +-
.../ui/openapi-gen/requests/core/OpenAPI.ts | 2 +-
.../airflow/ui/openapi-gen/requests/schemas.gen.ts | 20 +-
.../airflow/ui/openapi-gen/requests/types.gen.ts | 6 +-
airflow-core/src/airflow/ui/package.json | 2 +-
.../Graph/{JoinNode.tsx => DefaultNode.tsx} | 21 +-
.../types.ts => Graph/graphTypes.ts} | 40 +-
.../ui/src/context/timezone/TimezoneProvider.tsx | 9 +-
.../airflow/ui/src/layouts/Details/Graph/Graph.tsx | 18 +-
.../src/airflow/ui/src/mocks/handlers/config.ts | 15 -
.../src/airflow/ui/src/pages/Asset/AssetGraph.tsx | 12 +-
.../ui/src/pages/DagsList/AssetSchedule.tsx | 6 +-
.../Dashboard/HistoricalMetrics/DagRunMetrics.tsx | 15 +-
.../HistoricalMetrics/HistoricalMetrics.tsx | 9 +-
.../Dashboard/HistoricalMetrics/MetricSection.tsx | 10 +-
.../HistoricalMetrics/TaskInstanceMetrics.tsx | 15 +-
airflow-core/src/airflow/utils/dag_cycle_tester.py | 2 +-
airflow-core/src/airflow/utils/db.py | 4 +-
airflow-core/src/airflow/utils/decorators.py | 4 +-
airflow-core/src/airflow/utils/email.py | 26 +-
airflow-core/src/airflow/utils/file.py | 11 +-
airflow-core/src/airflow/utils/hashlib_wrapper.py | 6 +-
airflow-core/src/airflow/utils/helpers.py | 34 +-
.../src/airflow/utils/log/file_task_handler.py | 3 +-
.../src/airflow/utils/operator_resources.py | 4 +-
airflow-core/src/airflow/utils/retries.py | 3 +-
airflow-core/src/airflow/utils/session.py | 5 +-
airflow-core/src/airflow/utils/sqlalchemy.py | 31 +-
airflow-core/src/airflow/utils/timezone.py | 5 +-
.../dags/otel_test_dag_with_pause_between_tasks.py | 7 +-
.../otel/dags/otel_test_dag_with_pause_in_task.py | 7 +-
airflow-core/tests/integration/otel/test_otel.py | 20 +-
.../tests/unit/always/test_project_structure.py | 20 +-
.../tests/unit/always/test_providers_manager.py | 7 +-
.../auth/managers/test_base_auth_manager.py | 3 +-
.../unit/api_fastapi/common/test_exceptions.py | 6 +-
airflow-core/tests/unit/api_fastapi/conftest.py | 2 -
.../api_fastapi/core_api/routes/ui/test_config.py | 35 +-
.../unit/api_fastapi/execution_api/test_app.py | 2 +-
.../execution_api/versions/head/test_variables.py | 29 +
.../versions/v2025_03_19/test_task_instances.py | 74 -
.../versions/v2025_03_26/test_task_instances.py | 99 -
airflow-core/tests/unit/assets/test_evaluation.py | 2 +-
.../tests/unit/cli/commands/test_config_command.py | 139 +-
.../tests/unit/cli/commands/test_task_command.py | 3 -
airflow-core/tests/unit/core/test_configuration.py | 6 +
.../tests/unit/dag_processing/test_processor.py | 35 +
airflow-core/tests/unit/jobs/test_scheduler_job.py | 247 +-
airflow-core/tests/unit/models/test_backfill.py | 5 +-
airflow-core/tests/unit/models/test_dag.py | 3 -
airflow-core/tests/unit/models/test_dagrun.py | 2 -
.../tests/unit/models/test_mappedoperator.py | 19 +-
.../tests/unit/models/test_serialized_dag.py | 66 +-
.../tests/unit/models/test_taskinstance.py | 24 +-
.../unit/serialization/test_dag_serialization.py | 267 +-
.../unit/serialization/test_serialized_objects.py | 18 +
.../ti_deps/deps/test_mapped_task_upstream_dep.py | 2 +-
airflow-core/tests/unit/utils/test_task_group.py | 10 +-
airflow-ctl/src/airflowctl/api/client.py | 3 +-
airflow-ctl/src/airflowctl/api/operations.py | 3 +-
contributing-docs/03_contributors_quick_start.rst | 9 +-
contributing-docs/04_how_to_contribute.rst | 2 +-
contributing-docs/09_testing.rst | 2 +-
contributing-docs/16_adding_api_endpoints.rst | 2 +-
dev/airflow-github | 9 +-
dev/airflow_perf/scheduler_dag_execution_timing.py | 1 -
dev/breeze/doc/03_developer_tasks.rst | 4 +
dev/breeze/doc/images/output_build-docs.svg | 14 +-
dev/breeze/doc/images/output_build-docs.txt | 2 +-
dev/breeze/doc/images/output_prod-image_build.svg | 2 +-
dev/breeze/doc/images/output_prod-image_build.txt | 2 +-
...tput_release-management_add-back-references.svg | 14 +-
...tput_release-management_add-back-references.txt | 2 +-
...management_generate-issue-content-providers.svg | 10 +-
...management_generate-issue-content-providers.txt | 2 +-
...e-management_prepare-provider-distributions.svg | 10 +-
...e-management_prepare-provider-distributions.txt | 2 +-
...e-management_prepare-provider-documentation.svg | 10 +-
...e-management_prepare-provider-documentation.txt | 2 +-
.../output_release-management_publish-docs.svg | 14 +-
.../output_release-management_publish-docs.txt | 2 +-
...output_sbom_generate-providers-requirements.svg | 4 +-
...output_sbom_generate-providers-requirements.txt | 2 +-
.../output_testing_core-integration-tests.svg | 4 +-
.../output_testing_core-integration-tests.txt | 2 +-
.../output_testing_providers-integration-tests.svg | 4 +-
.../output_testing_providers-integration-tests.txt | 2 +-
.../airflow_breeze/commands/ci_image_commands.py | 45 +-
.../airflow_breeze/commands/developer_commands.py | 8 +-
.../airflow_breeze/commands/kubernetes_commands.py | 14 +-
.../commands/release_management_commands.py | 23 +-
.../src/airflow_breeze/commands/sbom_commands.py | 8 +-
.../src/airflow_breeze/commands/setup_commands.py | 5 +-
dev/breeze/src/airflow_breeze/global_constants.py | 16 +-
.../src/airflow_breeze/params/build_prod_params.py | 3 +-
.../airflow_breeze/params/common_build_params.py | 3 +-
.../src/airflow_breeze/params/shell_params.py | 21 +-
.../prepare_providers/provider_distributions.py | 2 +-
.../prepare_providers/provider_documentation.py | 9 +-
dev/breeze/src/airflow_breeze/utils/cache.py | 3 +-
dev/breeze/src/airflow_breeze/utils/cdxgen.py | 3 +-
dev/breeze/src/airflow_breeze/utils/coertions.py | 5 +-
dev/breeze/src/airflow_breeze/utils/confirm.py | 12 +-
.../airflow_breeze/utils/docker_command_utils.py | 11 +-
.../src/airflow_breeze/utils/docs_publisher.py | 6 +-
dev/breeze/src/airflow_breeze/utils/image.py | 12 +-
.../src/airflow_breeze/utils/kubernetes_utils.py | 18 +-
.../src/airflow_breeze/utils/md5_build_check.py | 13 +-
dev/breeze/src/airflow_breeze/utils/packages.py | 17 +-
dev/breeze/src/airflow_breeze/utils/parallel.py | 3 +-
dev/breeze/src/airflow_breeze/utils/run_tests.py | 3 +-
dev/breeze/src/airflow_breeze/utils/run_utils.py | 52 +-
.../src/airflow_breeze/utils/selective_checks.py | 67 +-
.../src/airflow_breeze/utils/version_utils.py | 9 +-
.../tests/test_pytest_args_for_test_types.py | 1 +
dev/breeze/tests/test_selective_checks.py | 6 +-
dev/provider_db_inventory.py | 105 +
dev/stats/get_important_pr_candidates.py | 16 +-
devel-common/src/docs/provider_conf.py | 6 +-
.../sphinx_exts/docs_build/dev_index_generator.py | 8 +-
.../docs_build/dev_index_template.html.jinja2 | 2 +-
.../src/sphinx_exts/docs_build/docs_builder.py | 19 +-
.../src/sphinx_exts/operators_and_hooks_ref.py | 12 +-
.../src/sphinx_exts/removemarktransform.py | 2 +-
.../tests_common/_internals/capture_warnings.py | 4 +-
devel-common/src/tests_common/pytest_plugin.py | 54 +-
devel-common/src/tests_common/test_utils/compat.py | 5 +-
devel-common/src/tests_common/test_utils/db.py | 3 +
.../test_utils/logging_command_executor.py | 68 +-
.../src/tests_common/test_utils/system_tests.py | 5 +-
docker-stack-docs/build-arg-ref.rst | 1 +
docker-tests/tests/docker_tests/command_utils.py | 16 +-
docs/spelling_wordlist.txt | 2 +
generated/provider_metadata.json | 72 +
providers-summary-docs/pyproject.toml | 1 -
.../src/airflow/providers/airbyte/hooks/airbyte.py | 8 +-
.../airflow/providers/airbyte/sensors/airbyte.py | 9 +-
.../alibaba/cloud/log/oss_task_handler.py | 3 +-
.../tests/unit/alibaba/cloud/utils/test_utils.py | 3 +-
providers/amazon/docs/operators/batch.rst | 5 +
providers/amazon/pyproject.toml | 7 +-
.../amazon/aws/auth_manager/cli/avp_commands.py | 33 +-
.../aws/executors/ecs/ecs_executor_config.py | 2 +-
.../providers/amazon/aws/executors/ecs/utils.py | 2 +-
.../airflow/providers/amazon/aws/hooks/athena.py | 2 +-
.../airflow/providers/amazon/aws/hooks/base_aws.py | 27 +-
.../providers/amazon/aws/hooks/batch_client.py | 11 +
.../providers/amazon/aws/hooks/cloud_formation.py | 3 +-
.../airflow/providers/amazon/aws/hooks/datasync.py | 4 +-
.../src/airflow/providers/amazon/aws/hooks/dms.py | 5 +-
.../airflow/providers/amazon/aws/hooks/dynamodb.py | 3 +-
.../src/airflow/providers/amazon/aws/hooks/emr.py | 31 +-
.../src/airflow/providers/amazon/aws/hooks/glue.py | 22 +-
.../src/airflow/providers/amazon/aws/hooks/mwaa.py | 13 +-
.../providers/amazon/aws/hooks/redshift_data.py | 2 +-
.../providers/amazon/aws/hooks/redshift_sql.py | 11 +-
.../src/airflow/providers/amazon/aws/hooks/s3.py | 9 +-
.../providers/amazon/aws/hooks/sagemaker.py | 15 +-
.../amazon/aws/hooks/sagemaker_unified_studio.py | 11 +-
.../airflow/providers/amazon/aws/links/base_aws.py | 4 +-
.../src/airflow/providers/amazon/aws/links/emr.py | 6 +-
.../amazon/aws/log/cloudwatch_task_handler.py | 3 +-
.../providers/amazon/aws/log/s3_task_handler.py | 3 +-
.../providers/amazon/aws/operators/athena.py | 2 +-
.../providers/amazon/aws/operators/batch.py | 79 +-
.../airflow/providers/amazon/aws/operators/ecs.py | 10 +-
.../airflow/providers/amazon/aws/operators/eks.py | 67 +-
.../airflow/providers/amazon/aws/operators/emr.py | 9 +-
.../providers/amazon/aws/operators/neptune.py | 4 +-
.../amazon/aws/operators/redshift_data.py | 3 +-
.../airflow/providers/amazon/aws/operators/s3.py | 22 +-
.../providers/amazon/aws/operators/sagemaker.py | 30 +-
.../amazon/aws/secrets/secrets_manager.py | 3 +-
.../airflow/providers/amazon/aws/sensors/batch.py | 88 +-
.../airflow/providers/amazon/aws/sensors/eks.py | 32 +-
.../providers/amazon/aws/sensors/glacier.py | 9 +-
.../airflow/providers/amazon/aws/sensors/glue.py | 15 +-
.../providers/amazon/aws/sensors/glue_crawler.py | 6 +-
.../amazon/aws/sensors/redshift_cluster.py | 2 +-
.../src/airflow/providers/amazon/aws/sensors/s3.py | 3 +-
.../amazon/aws/sensors/sagemaker_unified_studio.py | 9 +-
.../airflow/providers/amazon/aws/sensors/sqs.py | 3 +-
.../amazon/aws/utils/connection_wrapper.py | 2 +-
.../src/airflow/providers/amazon/aws/utils/sqs.py | 3 +-
.../src/airflow/providers/amazon/aws/utils/tags.py | 5 +-
.../amazon/tests/system/amazon/aws/example_mwaa.py | 57 +-
.../tests/unit/amazon/aws/hooks/test_base_aws.py | 3 +-
.../tests/unit/amazon/aws/operators/test_batch.py | 40 +-
.../providers/apache/beam/operators/beam.py | 39 +-
.../providers/apache/cassandra/hooks/cassandra.py | 3 +-
providers/apache/druid/docs/operators.rst | 94 +-
.../airflow/providers/apache/druid/hooks/druid.py | 6 +-
.../tests/system/apache/druid/example_druid.py | 75 +
.../apache/flink/sensors/flink_kubernetes.py | 7 +-
.../airflow/providers/apache/hdfs/hooks/webhdfs.py | 3 +-
providers/apache/hive/docs/operators.rst | 66 +-
.../airflow/providers/apache/hive/hooks/hive.py | 8 +-
.../airflow/providers/apache/hive/macros/hive.py | 14 +-
.../apache/hive/sensors/named_hive_partition.py | 3 +-
.../providers/apache/hive/transfers/s3_to_hive.py | 13 +-
.../hive/tests/system/apache/hive/example_hive.py} | 55 +-
providers/apache/impala/docs/index.rst | 9 +
providers/apache/impala/docs/operators.rst | 74 +
.../apache/impala/tests/system/apache}/__init__.py | 0
.../impala/tests/system/apache/impala}/__init__.py | 0
.../tests/system/apache/impala/example_impala.py} | 61 +-
.../apache/kafka/hooks/test_producer.py | 7 +-
.../apache/kafka/example_dag_event_listener.py | 9 +-
providers/apache/kylin/docs/index.rst | 1 +
providers/apache/kylin/docs/operators.rst | 75 +
.../tests/system/apache/kylin/example_kylin.py | 91 +
.../tests/unit/apache/kylin/hooks/test_kylin.py | 3 +-
.../airflow/providers/apache/livy/hooks/livy.py | 5 +-
.../apache/pinot/docs/{operators.rst => hooks.rst} | 0
providers/apache/pinot/docs/index.rst | 1 +
providers/apache/pinot/docs/operators.rst | 134 +-
.../tests/system/apache/pinot/example_pinot.py} | 51 +-
.../providers/apache/spark/hooks/spark_submit.py | 7 +-
.../airflow/providers/arangodb/hooks/arangodb.py | 27 +-
.../tests/integration}/__init__.py | 0
.../celery/tests/integration/celery}/__init__.py | 0
.../integration/celery}/test_celery_executor.py | 0
.../backcompat/backwards_compat_converters.py | 13 +-
.../kubernetes/executors/kubernetes_executor.py | 2 +-
.../executors/kubernetes_executor_utils.py | 9 +-
.../providers/cncf/kubernetes/hooks/kubernetes.py | 12 +-
.../cncf/kubernetes/kubernetes_helper_functions.py | 3 +-
.../providers/cncf/kubernetes/operators/job.py | 2 +-
.../providers/cncf/kubernetes/operators/kueue.py | 2 +-
.../providers/cncf/kubernetes/operators/pod.py | 4 +-
.../cncf/kubernetes/operators/resource.py | 3 +-
.../cncf/kubernetes/operators/spark_kubernetes.py | 2 +-
.../providers/cncf/kubernetes/pod_generator.py | 11 +-
.../kubernetes/resource_convert/env_variable.py | 2 +-
.../cncf/kubernetes/sensors/spark_kubernetes.py | 7 +-
.../cncf/kubernetes/template_rendering.py | 17 -
.../providers/cncf/kubernetes/triggers/pod.py | 5 +-
.../providers/cncf/kubernetes/utils/pod_manager.py | 17 +-
.../tests/unit/cncf/kubernetes/conftest.py | 2 +-
.../cncf/kubernetes/test_template_rendering.py | 32 +-
.../airflow/providers/common/io/xcom/backend.py | 25 +-
.../io/tests/unit/common/io/xcom/test_backend.py | 28 +
providers/common/messaging/docs/triggers.rst | 18 +-
.../messaging/example_message_queue_trigger.py | 16 +-
.../airflow/providers/common/sql/hooks/handlers.py | 6 +-
.../src/airflow/providers/common/sql/hooks/sql.py | 5 +-
.../airflow/providers/common/sql/operators/sql.py | 14 +-
.../airflow/providers/common/sql/sensors/sql.py | 8 +-
.../providers/databricks/hooks/databricks.py | 9 +-
.../providers/databricks/hooks/databricks_base.py | 29 +-
.../providers/databricks/hooks/databricks_sql.py | 8 +-
.../providers/databricks/operators/databricks.py | 33 +-
.../databricks/operators/databricks_workflow.py | 18 +-
.../databricks/sensors/databricks_partition.py | 5 +-
.../providers/databricks/utils/databricks.py | 13 +-
.../tests/unit/databricks/hooks/test_databricks.py | 9 +-
.../unit/databricks/operators/test_databricks.py | 9 +-
.../operators/test_databricks_workflow.py | 8 +-
.../airflow/providers/dbt/cloud/operators/dbt.py | 49 +-
.../airflow/providers/docker/operators/docker.py | 10 +-
.../providers/docker/operators/docker_swarm.py | 5 +-
providers/edge/src/airflow/__init__.py | 17 -
providers/edge/src/airflow/providers/__init__.py | 17 -
.../src/airflow/providers/edge/cli/__init__.py | 16 -
.../providers/edge/example_dags/__init__.py | 16 -
.../src/airflow/providers/edge/models/__init__.py | 16 -
.../src/airflow/providers/edge/plugins/__init__.py | 16 -
.../providers/edge/worker_api/routes/__init__.py | 16 -
providers/edge/tests/unit/__init__.py | 17 -
providers/edge/tests/unit/edge/__init__.py | 16 -
providers/edge/tests/unit/edge/cli/__init__.py | 17 -
.../edge/tests/unit/edge/executors/__init__.py | 16 -
providers/edge/tests/unit/edge/models/__init__.py | 17 -
providers/edge/tests/unit/edge/plugins/__init__.py | 17 -
.../edge/tests/unit/edge/worker_api/__init__.py | 17 -
.../tests/unit/edge/worker_api/routes/__init__.py | 17 -
providers/{edge => edgeexecutor}/README.rst | 14 +-
.../{edge => edgeexecutor}/docs/changelog.rst | 2 +-
providers/{edge => edgeexecutor}/docs/cli-ref.rst | 2 +-
providers/{edge => edgeexecutor}/docs/commits.rst | 2 +-
providers/{edge => edgeexecutor}/docs/conf.py | 2 +-
.../docs/configurations-ref.rst | 0
.../{edge => edgeexecutor}/docs/edge_executor.rst | 2 +-
.../docs/img/worker_hosts.png | Bin
.../docs/img/worker_maintenance.png | Bin
providers/{edge => edgeexecutor}/docs/index.rst | 20 +-
.../docs/install_on_windows.rst | 6 +-
.../docs/installing-providers-from-sources.rst | 0
providers/{edge => edgeexecutor}/docs/security.rst | 0
providers/{edge => edgeexecutor}/provider.yaml | 6 +-
providers/{edge => edgeexecutor}/pyproject.toml | 16 +-
.../edgeexecutor/src/airflow}/__init__.py | 0
.../src/airflow/providers}/__init__.py | 0
.../src/airflow/providers/edgeexecutor}/LICENSE | 0
.../airflow/providers/edgeexecutor}/__init__.py | 2 +-
.../providers/edgeexecutor/cli}/__init__.py | 0
.../providers/edgeexecutor}/cli/api_client.py | 10 +-
.../providers/edgeexecutor}/cli/dataclasses.py | 4 +-
.../providers/edgeexecutor}/cli/edge_command.py | 37 +-
.../edgeexecutor/example_dags}/__init__.py | 0
.../edgeexecutor}/example_dags/integration_test.py | 0
.../edgeexecutor}/example_dags/win_notepad.py | 2 +-
.../edgeexecutor}/example_dags/win_test.py | 2 +-
.../providers/edgeexecutor}/executors/__init__.py | 2 +-
.../edgeexecutor}/executors/edge_executor.py | 12 +-
.../providers/edgeexecutor}/get_provider_info.py | 6 +-
.../providers/edgeexecutor/models}/__init__.py | 0
.../providers/edgeexecutor}/models/edge_job.py | 0
.../providers/edgeexecutor}/models/edge_logs.py | 0
.../providers/edgeexecutor}/models/edge_worker.py | 0
.../providers/edgeexecutor}/openapi/__init__.py | 0
.../edgeexecutor}/openapi/edge_worker_api_v1.yaml | 16 +-
.../providers/edgeexecutor/plugins}/__init__.py | 0
.../edgeexecutor}/plugins/edge_executor_plugin.py | 22 +-
.../plugins/templates/edge_worker_hosts.html | 0
.../plugins/templates/edge_worker_jobs.html | 0
.../providers/edgeexecutor}/version_compat.py | 0
.../providers/edgeexecutor}/worker_api/__init__.py | 0
.../providers/edgeexecutor}/worker_api/app.py | 8 +-
.../providers/edgeexecutor}/worker_api/auth.py | 6 +-
.../edgeexecutor}/worker_api/datamodels.py | 4 +-
.../edgeexecutor/worker_api/routes}/__init__.py | 0
.../edgeexecutor}/worker_api/routes/_v2_compat.py | 2 +-
.../edgeexecutor}/worker_api/routes/_v2_routes.py | 15 +-
.../edgeexecutor}/worker_api/routes/health.py | 2 +-
.../edgeexecutor}/worker_api/routes/jobs.py | 8 +-
.../edgeexecutor}/worker_api/routes/logs.py | 8 +-
.../edgeexecutor}/worker_api/routes/worker.py | 10 +-
providers/{edge => edgeexecutor}/tests/conftest.py | 0
.../edgeexecutor/tests/unit}/__init__.py | 0
.../tests/unit/edgeexecutor}/__init__.py | 0
.../tests/unit/edgeexecutor/cli}/__init__.py | 0
.../unit/edgeexecutor}/cli/test_api_client.py | 2 +-
.../unit/edgeexecutor}/cli/test_dataclasses.py | 4 +-
.../unit/edgeexecutor}/cli/test_edge_command.py | 44 +-
.../tests/unit/edgeexecutor/executors}/__init__.py | 0
.../edgeexecutor}/executors/test_edge_executor.py | 12 +-
.../tests/unit/edgeexecutor/models}/__init__.py | 0
.../tests/unit/edgeexecutor/plugins}/__init__.py | 0
.../plugins/test_edge_executor_plugin.py | 8 +-
.../unit/edgeexecutor/worker_api}/__init__.py | 0
.../edgeexecutor/worker_api/routes}/__init__.py | 0
.../edgeexecutor}/worker_api/routes/test_health.py | 2 +-
.../edgeexecutor}/worker_api/routes/test_jobs.py | 4 +-
.../edgeexecutor}/worker_api/routes/test_logs.py | 6 +-
.../edgeexecutor}/worker_api/routes/test_worker.py | 14 +-
.../providers/elasticsearch/hooks/elasticsearch.py | 9 +-
.../providers/elasticsearch/log/es_task_handler.py | 6 +-
.../unit/elasticsearch/hooks/test_elasticsearch.py | 8 +
.../log/elasticmock/fake_elasticsearch.py | 3 +-
.../log/elasticmock/utilities/__init__.py | 2 +-
.../src/airflow/providers/exasol/hooks/exasol.py | 3 +-
.../auth_manager/api/auth/backend/basic_auth.py | 3 +-
.../auth_manager/api/auth/backend/kerberos_auth.py | 4 +-
...ted.yaml => v1-fab-auth-manager-generated.yaml} | 0
.../fab/auth_manager/api_fastapi/services/login.py | 3 +-
.../providers/fab/auth_manager/fab_auth_manager.py | 35 +-
.../openapi/{v1.yaml => v1-flask-api.yaml} | 0
.../fab/auth_manager/security_manager/override.py | 37 +-
.../fab/src/airflow/providers/fab/www/auth.py | 14 +-
.../fab/www/extensions/init_appbuilder.py | 3 +-
.../fab/www/extensions/init_jinja_globals.py | 11 -
.../providers/fab/www/extensions/init_views.py | 6 +-
.../providers/fab/www/templates/airflow/main.html | 14 -
.../fab/src/airflow/providers/fab/www/views.py | 5 +-
providers/fab/tests/unit/fab/decorators.py | 3 +-
providers/fab/tests/unit/fab/utils.py | 2 -
.../airflow/providers/facebook/ads/hooks/ads.py | 15 +-
.../git/src/airflow/providers/git/bundles/git.py | 2 +
providers/git/tests/unit/git/bundles/test_git.py | 87 +
.../providers/google/cloud/hooks/bigquery.py | 6 +-
.../providers/google/cloud/hooks/cloud_batch.py | 7 +-
.../providers/google/cloud/hooks/cloud_sql.py | 75 +-
.../cloud/hooks/cloud_storage_transfer_service.py | 2 +-
.../providers/google/cloud/hooks/compute_ssh.py | 5 +-
.../providers/google/cloud/hooks/dataflow.py | 17 +-
.../providers/google/cloud/hooks/datafusion.py | 7 +-
.../airflow/providers/google/cloud/hooks/dlp.py | 2 +-
.../airflow/providers/google/cloud/hooks/gcs.py | 11 +-
.../google/cloud/hooks/kubernetes_engine.py | 3 +-
.../providers/google/cloud/hooks/managed_kafka.py | 2 +-
.../providers/google/cloud/hooks/mlengine.py | 10 +-
.../providers/google/cloud/hooks/stackdriver.py | 10 +-
.../airflow/providers/google/cloud/hooks/vision.py | 3 +-
.../providers/google/cloud/openlineage/mixins.py | 5 +-
.../providers/google/cloud/operators/alloy_db.py | 3 +-
.../providers/google/cloud/operators/automl.py | 10 +-
.../providers/google/cloud/operators/bigquery.py | 50 +-
.../google/cloud/operators/cloud_batch.py | 28 +-
.../google/cloud/operators/cloud_build.py | 3 +-
.../google/cloud/operators/cloud_composer.py | 52 +-
.../providers/google/cloud/operators/cloud_run.py | 25 +-
.../providers/google/cloud/operators/cloud_sql.py | 91 +-
.../providers/google/cloud/operators/compute.py | 19 +-
.../providers/google/cloud/operators/dataproc.py | 49 +-
.../providers/google/cloud/operators/functions.py | 12 +-
.../google/cloud/operators/kubernetes_engine.py | 3 +-
.../providers/google/cloud/operators/spanner.py | 62 +-
.../google/cloud/sensors/cloud_composer.py | 8 +-
.../providers/google/cloud/sensors/dataflow.py | 2 +-
.../providers/google/cloud/sensors/dataproc.py | 10 +-
.../airflow/providers/google/cloud/sensors/gcs.py | 31 +-
.../providers/google/cloud/sensors/looker.py | 6 +-
.../providers/google/cloud/sensors/pubsub.py | 27 +-
.../google/cloud/transfers/bigquery_to_gcs.py | 15 +-
.../google/cloud/transfers/cassandra_to_gcs.py | 36 +-
.../google/cloud/transfers/facebook_ads_to_gcs.py | 3 +-
.../google/cloud/transfers/gcs_to_bigquery.py | 30 +-
.../google/cloud/transfers/postgres_to_gcs.py | 5 +-
.../providers/google/cloud/utils/bigquery.py | 12 +-
.../providers/google/cloud/utils/dataform.py | 2 +-
.../google/common/hooks/operation_helpers.py | 3 +-
.../google/common/utils/id_token_credentials.py | 2 +-
.../providers/google/leveldb/hooks/leveldb.py | 9 +-
.../cloud_build/example_cloud_build_trigger.py | 3 +-
.../cloud/cloud_sql/example_cloud_sql_query.py | 21 +-
.../cloud/cloud_sql/example_cloud_sql_query_iam.py | 23 +-
.../cloud/cloud_sql/example_cloud_sql_query_ssl.py | 23 +-
.../example_managed_kafka_consumer_group.py | 6 +-
.../tests/unit/google/cloud/hooks/test_dataflow.py | 38 +-
.../cloud/transfers/test_bigquery_to_bigquery.py | 4 +-
.../google/cloud/transfers/test_gcs_to_bigquery.py | 44 +
.../hashicorp/_internal_client/vault_client.py | 6 +-
.../airflow/providers/hashicorp/secrets/vault.py | 3 +-
.../http/src/airflow/providers/http/hooks/http.py | 2 +-
.../src/airflow/providers/http/operators/http.py | 3 +-
.../src/airflow/providers/http/sensors/http.py | 2 +-
.../jdbc/src/airflow/providers/jdbc/hooks/jdbc.py | 36 +
providers/jdbc/tests/unit/jdbc/hooks/test_jdbc.py | 67 +
.../jenkins/operators/jenkins_job_trigger.py | 5 +-
.../airflow/providers/jenkins/sensors/jenkins.py | 11 +-
.../providers/microsoft/azure/hooks/batch.py | 9 +-
.../providers/microsoft/azure/hooks/data_lake.py | 3 +-
.../providers/microsoft/azure/hooks/fileshare.py | 47 +-
.../providers/microsoft/azure/hooks/msgraph.py | 2 +-
.../providers/microsoft/azure/hooks/synapse.py | 3 +-
.../providers/microsoft/azure/hooks/wasb.py | 3 +-
.../providers/microsoft/azure/operators/adx.py | 3 +-
.../azure/operators/container_instances.py | 3 +-
.../providers/microsoft/azure/operators/msgraph.py | 6 +-
.../microsoft/azure/transfers/s3_to_wasb.py | 5 +-
.../src/airflow/providers/microsoft/azure/utils.py | 3 +-
.../tests/unit/microsoft/mssql/hooks/test_mssql.py | 31 +-
.../src/airflow/providers/mongo/hooks/mongo.py | 3 +-
.../src/airflow/providers/mysql/hooks/mysql.py | 3 +-
.../odbc/src/airflow/providers/odbc/hooks/odbc.py | 5 +-
.../src/airflow/providers/openai/hooks/openai.py | 4 +-
.../airflow/providers/openfaas/hooks/openfaas.py | 11 +-
.../providers/openlineage/extractors/manager.py | 7 +-
.../providers/openlineage/plugins/adapter.py | 3 +-
.../airflow/providers/openlineage/utils/spark.py | 2 +-
.../airflow/providers/openlineage/utils/utils.py | 58 +-
.../tests/system/openlineage/operator.py | 4 +-
.../providers/opensearch/hooks/opensearch.py | 2 +-
.../providers/opensearch/log/os_task_handler.py | 3 +-
.../providers/papermill/operators/papermill.py | 3 +-
.../airflow/providers/postgres/hooks/postgres.py | 17 +-
.../tests/unit/postgres/hooks/test_postgres.py | 19 +
.../src/airflow/providers/presto/hooks/presto.py | 4 +-
.../samba/tests/unit/samba/hooks/test_samba.py | 27 +-
providers/sendgrid/provider.yaml | 2 +-
providers/sendgrid/pyproject.toml | 2 +-
.../sftp/src/airflow/providers/sftp/hooks/sftp.py | 17 +-
providers/sftp/tests/unit/sftp/hooks/test_sftp.py | 13 +-
.../providers/slack/transfers/sql_to_slack.py | 4 +-
.../src/airflow/providers/slack/utils/__init__.py | 30 +-
.../smtp/src/airflow/providers/smtp/hooks/smtp.py | 5 +-
.../airflow/providers/snowflake/hooks/snowflake.py | 5 +-
.../providers/snowflake/hooks/snowflake_sql_api.py | 9 +-
.../providers/snowflake/operators/snowflake.py | 4 +-
.../airflow/providers/snowflake/utils/snowpark.py | 3 +-
.../airflow/providers/standard/operators/bash.py | 2 +-
.../providers/standard/operators/latest_only.py | 5 +-
.../airflow/providers/standard/operators/python.py | 11 +-
.../providers/standard/operators/trigger_dagrun.py | 7 +-
.../src/airflow/providers/standard/sensors/bash.py | 10 +-
.../providers/standard/sensors/external_task.py | 59 +-
.../airflow/providers/standard/sensors/python.py | 3 +-
.../airflow/providers/standard/sensors/weekday.py | 3 +-
.../providers/standard/triggers/external_task.py | 3 +-
.../providers/standard/triggers/temporal.py | 5 +-
.../providers/standard/utils/python_virtualenv.py | 2 +-
.../standard/decorators/test_external_python.py | 3 +-
.../standard/decorators/test_python_virtualenv.py | 3 +-
.../tests/unit/standard/operators/test_python.py | 6 +-
.../standard/sensors/test_external_task_sensor.py | 1 -
.../teradata/operators/teradata_compute_cluster.py | 32 +-
.../src/airflow/providers/trino/hooks/trino.py | 6 +-
.../airflow/providers/weaviate/hooks/weaviate.py | 5 +-
pyproject.toml | 32 +-
scripts/ci/docker-compose/remove-sources.yml | 2 +-
scripts/ci/docker-compose/tests-sources.yml | 4 +-
scripts/ci/pre_commit/check_deprecations.py | 7 +-
scripts/ci/pre_commit/check_integrations_list.py | 5 +-
scripts/ci/pre_commit/checkout_no_credentials.py | 14 +-
scripts/ci/pre_commit/generate_pypi_readme.py | 3 +-
.../ci/pre_commit/update_airflow_pyproject_toml.py | 36 +-
scripts/ci/pre_commit/update_example_dags_paths.py | 9 +-
.../pre_commit/update_installers_and_pre_commit.py | 4 +-
scripts/ci/testing/summarize_captured_warnings.py | 2 +-
.../docker/install_airflow_when_building_images.sh | 9 +-
scripts/in_container/bin/run_tmux | 2 +-
.../in_container/install_airflow_and_providers.py | 2 +-
scripts/in_container/run_generate_constraints.py | 18 +-
.../in_container/run_update_fastapi_api_spec.py | 11 +-
scripts/in_container/verify_providers.py | 3 +-
task-sdk/pyproject.toml | 3 +-
task-sdk/src/airflow/sdk/__init__.py | 2 +-
task-sdk/src/airflow/sdk/api/client.py | 14 +-
.../src/airflow/sdk/api/datamodels/_generated.py | 2 +-
task-sdk/src/airflow/sdk/bases/decorator.py | 6 +-
task-sdk/src/airflow/sdk/bases/operator.py | 19 +-
task-sdk/src/airflow/sdk/bases/sensor.py | 10 +-
task-sdk/src/airflow/sdk/bases/xcom.py | 9 +-
.../src/airflow/sdk/definitions/_internal/node.py | 8 +-
.../airflow/sdk/definitions/_internal/templater.py | 8 +-
.../src/airflow/sdk/definitions/asset/__init__.py | 2 +-
task-sdk/src/airflow/sdk/definitions/dag.py | 24 +-
.../src/airflow/sdk/definitions/mappedoperator.py | 2 +
task-sdk/src/airflow/sdk/definitions/taskgroup.py | 4 +-
task-sdk/src/airflow/sdk/definitions/variable.py | 10 +
task-sdk/src/airflow/sdk/definitions/xcom_arg.py | 2 +-
task-sdk/src/airflow/sdk/execution_time/comms.py | 6 +
task-sdk/src/airflow/sdk/execution_time/context.py | 24 +-
.../airflow/sdk/execution_time/lazy_sequence.py | 9 +-
.../airflow/sdk/execution_time/secrets_masker.py | 20 +-
.../src/airflow/sdk/execution_time/supervisor.py | 102 +-
.../src/airflow/sdk/execution_time/task_runner.py | 4 +-
task-sdk/src/airflow/sdk/io/path.py | 12 +-
task-sdk/src/airflow/sdk/io/store.py | 20 +-
task-sdk/src/airflow/sdk/log.py | 109 +-
task-sdk/tests/task_sdk/api/test_client.py | 17 +-
.../definitions/decorators/test_setup_teardown.py | 17 +-
task-sdk/tests/task_sdk/definitions/test_asset.py | 2 +-
.../task_sdk/definitions/test_mappedoperator.py | 2 +-
task-sdk/tests/task_sdk/definitions/test_mixins.py | 17 +-
.../task_sdk/execution_time/test_supervisor.py | 176 +-
.../task_sdk/execution_time/test_task_runner.py | 6 +-
task-sdk/tests/task_sdk/io/test_path.py | 2 +-
719 files changed, 8210 insertions(+), 7983 deletions(-)
delete mode 100644 airflow-core/docs/howto/add-owner-links.rst
delete mode 100644 airflow-core/docs/img/add-dag-tags.png
delete mode 100644 airflow-core/docs/img/connection_create.png
delete mode 100644 airflow-core/docs/img/connection_edit.png
delete mode 100644
airflow-core/docs/img/demo_dag_overview_with_failed_tasks.png
delete mode 100644 airflow-core/docs/img/demo_graph_and_code_view.png
delete mode 100644 airflow-core/docs/img/demo_grid_view_with_task_logs.png
delete mode 100644 airflow-core/docs/img/email_connection.png
delete mode 100644 airflow-core/docs/img/setup-teardown-complex.png
delete mode 100644 airflow-core/docs/img/setup-teardown-group.png
delete mode 100644 airflow-core/docs/img/setup-teardown-nesting.png
delete mode 100644 airflow-core/docs/img/setup-teardown-parallel.png
delete mode 100644 airflow-core/docs/img/setup-teardown-scope.png
delete mode 100644 airflow-core/docs/img/setup-teardown-setup-group.png
delete mode 100644 airflow-core/docs/img/setup-teardown-simple.png
create mode 100644 airflow-core/docs/img/ui-dark/add-dag-tags.png
create mode 100644 airflow-core/docs/img/ui-dark/connection_create.png
create mode 100644 airflow-core/docs/img/ui-dark/connection_edit.png
create mode 100644
airflow-core/docs/img/ui-dark/demo_dag_overview_with_failed_tasks.png
create mode 100644 airflow-core/docs/img/ui-dark/demo_graph_and_code_view.png
create mode 100644
airflow-core/docs/img/ui-dark/demo_grid_view_with_task_logs.png
create mode 100644 airflow-core/docs/img/ui-dark/email_connection.png
create mode 100644 airflow-core/docs/img/ui-dark/setup-teardown-complex.png
create mode 100644 airflow-core/docs/img/ui-dark/setup-teardown-group.png
create mode 100644 airflow-core/docs/img/ui-dark/setup-teardown-nesting.png
create mode 100644 airflow-core/docs/img/ui-dark/setup-teardown-parallel.png
create mode 100644 airflow-core/docs/img/ui-dark/setup-teardown-scope.png
create mode 100644 airflow-core/docs/img/ui-dark/setup-teardown-setup-group.png
create mode 100644 airflow-core/docs/img/ui-dark/setup-teardown-simple.png
create mode 100644 airflow-core/docs/img/ui-dark/variable_hidden.png
create mode 100644 airflow-core/docs/img/ui-light/add_dag_tags.png
create mode 100644 airflow-core/docs/img/ui-light/connection_create.png
create mode 100644 airflow-core/docs/img/ui-light/connection_edit.png
create mode 100644
airflow-core/docs/img/ui-light/demo_dag_overview_with_failed_tasks.png
create mode 100644 airflow-core/docs/img/ui-light/demo_graph_and_code_view.png
create mode 100644
airflow-core/docs/img/ui-light/demo_grid_view_with_task_logs.png
create mode 100644 airflow-core/docs/img/ui-light/email_connection.png
create mode 100644 airflow-core/docs/img/ui-light/setup-teardown-complex.png
create mode 100644 airflow-core/docs/img/ui-light/setup-teardown-group.png
create mode 100644 airflow-core/docs/img/ui-light/setup-teardown-nesting.png
create mode 100644 airflow-core/docs/img/ui-light/setup-teardown-parallel.png
create mode 100644 airflow-core/docs/img/ui-light/setup-teardown-scope.png
create mode 100644
airflow-core/docs/img/ui-light/setup-teardown-setup-group.png
create mode 100644 airflow-core/docs/img/ui-light/setup-teardown-simple.png
create mode 100644 airflow-core/docs/img/ui-light/variable_hidden.png
delete mode 100644 airflow-core/docs/img/variable_hidden.png
create mode 100644 airflow-core/docs/installation/upgrading_to_airflow3.rst
create mode 100644 airflow-core/newsfragments/49223.significant.rst
rename
airflow-core/src/airflow/api_fastapi/auth/managers/simple/openapi/{v1-generated.yaml
=> v1-simple-auth-manager-generated.yaml} (100%)
rename
airflow-core/src/airflow/api_fastapi/core_api/openapi/{v1-generated.yaml =>
v1-rest-api-generated.yaml} (99%)
delete mode 100644
airflow-core/src/airflow/api_fastapi/execution_api/versions/v2025_03_26.py
delete mode 100644
airflow-core/src/airflow/api_fastapi/execution_api/versions/v2025_04_10.py
copy airflow-core/src/airflow/ui/src/components/Graph/{JoinNode.tsx =>
DefaultNode.tsx} (73%)
copy airflow-core/src/airflow/ui/src/components/{AssetExpression/types.ts =>
Graph/graphTypes.ts} (57%)
delete mode 100644
airflow-core/tests/unit/api_fastapi/execution_api/versions/v2025_03_19/test_task_instances.py
delete mode 100644
airflow-core/tests/unit/api_fastapi/execution_api/versions/v2025_03_26/test_task_instances.py
create mode 100755 dev/provider_db_inventory.py
create mode 100644
providers/apache/druid/tests/system/apache/druid/example_druid.py
copy providers/{presto/tests/system/presto/example_presto.py =>
apache/hive/tests/system/apache/hive/example_hive.py} (55%)
create mode 100644 providers/apache/impala/docs/operators.rst
copy {airflow-core/tests/integration =>
providers/apache/impala/tests/system/apache}/__init__.py (100%)
rename {airflow-core/tests/unit/api_fastapi/execution_api/versions/v2025_03_19
=> providers/apache/impala/tests/system/apache/impala}/__init__.py (100%)
copy providers/{presto/tests/system/presto/example_presto.py =>
apache/impala/tests/system/apache/impala/example_impala.py} (52%)
create mode 100644 providers/apache/kylin/docs/operators.rst
create mode 100644
providers/apache/kylin/tests/system/apache/kylin/example_kylin.py
copy providers/apache/pinot/docs/{operators.rst => hooks.rst} (100%)
copy providers/{presto/tests/system/presto/example_presto.py =>
apache/pinot/tests/system/apache/pinot/example_pinot.py} (54%)
copy providers/{git/src/airflow => celery/tests/integration}/__init__.py (100%)
rename {airflow-core/tests/unit/api_fastapi/execution_api/versions/v2025_03_26
=> providers/celery/tests/integration/celery}/__init__.py (100%)
rename {airflow-core/tests/integration/executors =>
providers/celery/tests/integration/celery}/test_celery_executor.py (100%)
delete mode 100644 providers/edge/src/airflow/__init__.py
delete mode 100644 providers/edge/src/airflow/providers/__init__.py
delete mode 100644 providers/edge/src/airflow/providers/edge/cli/__init__.py
delete mode 100644
providers/edge/src/airflow/providers/edge/example_dags/__init__.py
delete mode 100644 providers/edge/src/airflow/providers/edge/models/__init__.py
delete mode 100644
providers/edge/src/airflow/providers/edge/plugins/__init__.py
delete mode 100644
providers/edge/src/airflow/providers/edge/worker_api/routes/__init__.py
delete mode 100644 providers/edge/tests/unit/__init__.py
delete mode 100644 providers/edge/tests/unit/edge/__init__.py
delete mode 100644 providers/edge/tests/unit/edge/cli/__init__.py
delete mode 100644 providers/edge/tests/unit/edge/executors/__init__.py
delete mode 100644 providers/edge/tests/unit/edge/models/__init__.py
delete mode 100644 providers/edge/tests/unit/edge/plugins/__init__.py
delete mode 100644 providers/edge/tests/unit/edge/worker_api/__init__.py
delete mode 100644 providers/edge/tests/unit/edge/worker_api/routes/__init__.py
rename providers/{edge => edgeexecutor}/README.rst (87%)
rename providers/{edge => edgeexecutor}/docs/changelog.rst (99%)
rename providers/{edge => edgeexecutor}/docs/cli-ref.rst (93%)
rename providers/{edge => edgeexecutor}/docs/commits.rst (99%)
rename providers/{edge => edgeexecutor}/docs/conf.py (98%)
rename providers/{edge => edgeexecutor}/docs/configurations-ref.rst (100%)
rename providers/{edge => edgeexecutor}/docs/edge_executor.rst (99%)
rename providers/{edge => edgeexecutor}/docs/img/worker_hosts.png (100%)
rename providers/{edge => edgeexecutor}/docs/img/worker_maintenance.png (100%)
rename providers/{edge => edgeexecutor}/docs/index.rst (75%)
rename providers/{edge => edgeexecutor}/docs/install_on_windows.rst (92%)
rename providers/{edge =>
edgeexecutor}/docs/installing-providers-from-sources.rst (100%)
rename providers/{edge => edgeexecutor}/docs/security.rst (100%)
rename providers/{edge => edgeexecutor}/provider.yaml (95%)
rename providers/{edge => edgeexecutor}/pyproject.toml (88%)
copy {airflow-core/tests/integration =>
providers/edgeexecutor/src/airflow}/__init__.py (100%)
copy {airflow-core/tests/integration =>
providers/edgeexecutor/src/airflow/providers}/__init__.py (100%)
rename providers/{edge/src/airflow/providers/edge =>
edgeexecutor/src/airflow/providers/edgeexecutor}/LICENSE (100%)
rename providers/{edge/src/airflow/providers/edge =>
edgeexecutor/src/airflow/providers/edgeexecutor}/__init__.py (92%)
copy {airflow-core/src/airflow/api =>
providers/edgeexecutor/src/airflow/providers/edgeexecutor/cli}/__init__.py
(100%)
rename providers/{edge/src/airflow/providers/edge =>
edgeexecutor/src/airflow/providers/edgeexecutor}/cli/api_client.py (94%)
rename providers/{edge/src/airflow/providers/edge =>
edgeexecutor/src/airflow/providers/edgeexecutor}/cli/dataclasses.py (94%)
rename providers/{edge/src/airflow/providers/edge =>
edgeexecutor/src/airflow/providers/edgeexecutor}/cli/edge_command.py (95%)
copy {airflow-core/src/airflow/api =>
providers/edgeexecutor/src/airflow/providers/edgeexecutor/example_dags}/__init__.py
(100%)
rename providers/{edge/src/airflow/providers/edge =>
edgeexecutor/src/airflow/providers/edgeexecutor}/example_dags/integration_test.py
(100%)
rename providers/{edge/src/airflow/providers/edge =>
edgeexecutor/src/airflow/providers/edgeexecutor}/example_dags/win_notepad.py
(96%)
rename providers/{edge/src/airflow/providers/edge =>
edgeexecutor/src/airflow/providers/edgeexecutor}/example_dags/win_test.py (99%)
rename providers/{edge/src/airflow/providers/edge =>
edgeexecutor/src/airflow/providers/edgeexecutor}/executors/__init__.py (91%)
rename providers/{edge/src/airflow/providers/edge =>
edgeexecutor/src/airflow/providers/edgeexecutor}/executors/edge_executor.py
(96%)
rename providers/{edge/src/airflow/providers/edge =>
edgeexecutor/src/airflow/providers/edgeexecutor}/get_provider_info.py (95%)
copy {airflow-core/src/airflow/api =>
providers/edgeexecutor/src/airflow/providers/edgeexecutor/models}/__init__.py
(100%)
rename providers/{edge/src/airflow/providers/edge =>
edgeexecutor/src/airflow/providers/edgeexecutor}/models/edge_job.py (100%)
rename providers/{edge/src/airflow/providers/edge =>
edgeexecutor/src/airflow/providers/edgeexecutor}/models/edge_logs.py (100%)
rename providers/{edge/src/airflow/providers/edge =>
edgeexecutor/src/airflow/providers/edgeexecutor}/models/edge_worker.py (100%)
rename providers/{edge/src/airflow/providers/edge =>
edgeexecutor/src/airflow/providers/edgeexecutor}/openapi/__init__.py (100%)
rename providers/{edge/src/airflow/providers/edge =>
edgeexecutor/src/airflow/providers/edgeexecutor}/openapi/edge_worker_api_v1.yaml
(96%)
copy {airflow-core/src/airflow/api =>
providers/edgeexecutor/src/airflow/providers/edgeexecutor/plugins}/__init__.py
(100%)
rename providers/{edge/src/airflow/providers/edge =>
edgeexecutor/src/airflow/providers/edgeexecutor}/plugins/edge_executor_plugin.py
(89%)
rename providers/{edge/src/airflow/providers/edge =>
edgeexecutor/src/airflow/providers/edgeexecutor}/plugins/templates/edge_worker_hosts.html
(100%)
rename providers/{edge/src/airflow/providers/edge =>
edgeexecutor/src/airflow/providers/edgeexecutor}/plugins/templates/edge_worker_jobs.html
(100%)
rename providers/{edge/src/airflow/providers/edge =>
edgeexecutor/src/airflow/providers/edgeexecutor}/version_compat.py (100%)
rename providers/{edge/src/airflow/providers/edge =>
edgeexecutor/src/airflow/providers/edgeexecutor}/worker_api/__init__.py (100%)
rename providers/{edge/src/airflow/providers/edge =>
edgeexecutor/src/airflow/providers/edgeexecutor}/worker_api/app.py (84%)
rename providers/{edge/src/airflow/providers/edge =>
edgeexecutor/src/airflow/providers/edgeexecutor}/worker_api/auth.py (94%)
rename providers/{edge/src/airflow/providers/edge =>
edgeexecutor/src/airflow/providers/edgeexecutor}/worker_api/datamodels.py (97%)
copy {airflow-core/src/airflow/api =>
providers/edgeexecutor/src/airflow/providers/edgeexecutor/worker_api/routes}/__init__.py
(100%)
rename providers/{edge/src/airflow/providers/edge =>
edgeexecutor/src/airflow/providers/edgeexecutor}/worker_api/routes/_v2_compat.py
(98%)
rename providers/{edge/src/airflow/providers/edge =>
edgeexecutor/src/airflow/providers/edgeexecutor}/worker_api/routes/_v2_routes.py
(94%)
rename providers/{edge/src/airflow/providers/edge =>
edgeexecutor/src/airflow/providers/edgeexecutor}/worker_api/routes/health.py
(92%)
rename providers/{edge/src/airflow/providers/edge =>
edgeexecutor/src/airflow/providers/edgeexecutor}/worker_api/routes/jobs.py (94%)
rename providers/{edge/src/airflow/providers/edge =>
edgeexecutor/src/airflow/providers/edgeexecutor}/worker_api/routes/logs.py (93%)
rename providers/{edge/src/airflow/providers/edge =>
edgeexecutor/src/airflow/providers/edgeexecutor}/worker_api/routes/worker.py
(95%)
rename providers/{edge => edgeexecutor}/tests/conftest.py (100%)
copy {airflow-core/tests/integration =>
providers/edgeexecutor/tests/unit}/__init__.py (100%)
copy {airflow-core/src/airflow/api =>
providers/edgeexecutor/tests/unit/edgeexecutor}/__init__.py (100%)
copy {airflow-core/src/airflow/api/common =>
providers/edgeexecutor/tests/unit/edgeexecutor/cli}/__init__.py (100%)
rename providers/{edge/tests/unit/edge =>
edgeexecutor/tests/unit/edgeexecutor}/cli/test_api_client.py (97%)
rename providers/{edge/tests/unit/edge =>
edgeexecutor/tests/unit/edgeexecutor}/cli/test_dataclasses.py (89%)
rename providers/{edge/tests/unit/edge =>
edgeexecutor/tests/unit/edgeexecutor}/cli/test_edge_command.py (89%)
copy {airflow-core/src/airflow/api =>
providers/edgeexecutor/tests/unit/edgeexecutor/executors}/__init__.py (100%)
rename providers/{edge/tests/unit/edge =>
edgeexecutor/tests/unit/edgeexecutor}/executors/test_edge_executor.py (96%)
copy {airflow-core/src/airflow/api/common =>
providers/edgeexecutor/tests/unit/edgeexecutor/models}/__init__.py (100%)
copy {airflow-core/src/airflow/api/common =>
providers/edgeexecutor/tests/unit/edgeexecutor/plugins}/__init__.py (100%)
rename providers/{edge/tests/unit/edge =>
edgeexecutor/tests/unit/edgeexecutor}/plugins/test_edge_executor_plugin.py (90%)
copy {airflow-core/src/airflow/api/common =>
providers/edgeexecutor/tests/unit/edgeexecutor/worker_api}/__init__.py (100%)
copy {airflow-core/src/airflow/api/common =>
providers/edgeexecutor/tests/unit/edgeexecutor/worker_api/routes}/__init__.py
(100%)
rename providers/{edge/tests/unit/edge =>
edgeexecutor/tests/unit/edgeexecutor}/worker_api/routes/test_health.py (92%)
rename providers/{edge/tests/unit/edge =>
edgeexecutor/tests/unit/edgeexecutor}/worker_api/routes/test_jobs.py (95%)
rename providers/{edge/tests/unit/edge =>
edgeexecutor/tests/unit/edgeexecutor}/worker_api/routes/test_logs.py (91%)
rename providers/{edge/tests/unit/edge =>
edgeexecutor/tests/unit/edgeexecutor}/worker_api/routes/test_worker.py (92%)
rename
providers/fab/src/airflow/providers/fab/auth_manager/api_fastapi/openapi/{v1-generated.yaml
=> v1-fab-auth-manager-generated.yaml} (100%)
rename providers/fab/src/airflow/providers/fab/auth_manager/openapi/{v1.yaml
=> v1-flask-api.yaml} (100%)
mode change 100644 => 100755
scripts/in_container/run_update_fastapi_api_spec.py