You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by je...@apache.org on 2025/02/20 21:35:42 UTC
(airflow) branch v3-0-test updated (08f632a2597 -> 55919dbff0d)
This is an automated email from the ASF dual-hosted git repository.
jedcunningham pushed a change to branch v3-0-test
in repository https://gitbox.apache.org/repos/asf/airflow.git
discard 08f632a2597 Bump standard provider version to 0.1.0
discard 800c43cd625 Bump celery provider version to 3.11.0
discard 1ba9628e46f Fix static checks
discard 964f4dea15d Update RELEASE_NOTES.rst
omit f5c82cf3bd5 Update Airflow version to 3.0.0a1
omit e6545099a37 Update default branches for 3-0
add 6d120b76f7e Update OpenLineage emmiter to cope with nullable logical_date (#46722)
add 739f1ccec99 Ensure that we can still render log templates even when a DagRun hasn't yet started. (#46720)
add 8f05f99e0ed Creating run backfill (#46348)
add 3ad8787a3e1 AIP-82 Introduce `BaseEventTrigger` as base class for triggers used with event driven scheduling (#46391)
add 8b21b4e2126 Revert "Add support for serverless job in Databricks operators (#45188)" (#46724)
add 7323548a43b AIP-79 Generate assets for Flask application in FAB provider (#44744) (#45060)
add e3f3e0235c9 AIP-65 Add bundle url to dag version (#46723)
add 3b7206813a1 Update icons and various UI fixes (#46725)
add fe5a2ea7a0b AIP-72: Improving Operator Links Interface to Prevent User Code Execution in Webserver (#46613)
add a10ae15440b Fix FAB static asset (#46727)
add da254edf7e2 Feature/edge worker maintenance logs user (#46712)
add 6e9c7a5a705 Fix `repo_url` kwarg for git dag bundle with https private repos (#46710)
add 9c22411d981 Add MwaaTriggerDagRunOperator and MwaaHook to Amazon Provider Package (#46579)
add d831da84fb4 Fix some UI usage of logical_date vs run_after (#46737)
add d1e617c48c2 Fix constraints generation for 3.9-3.11 (#46744)
add 42a94927145 Combine asset events fetching logic into one SQL query and clean up unnecessary asset-triggered dag data (#46721)
add d7177819aec Convert 46613 to a significant newsfragment (#46745)
add 65bacad3199 allow_trigger_in_future config removal (#46667)
add c1719fa693c Fix significant format and update the checking script (#46752)
add 973c6d64007 task-runner: call lifecycle listener methods (#46758)
add 3baa6864e22 Clarify what a significant newsfrag means (#46746)
add 8019c6447b0 AIP-84 Allow specifying an injectable path_prefix (#46597)
add c7c3de5e777 Feature/minor modification on edge worker maintenance comment (#46755)
add 8f63b828ace Add run after to dag runs api (#46739)
add d9b4f64a5bb Add run after to grid (#46740)
add 2b8e3cddbfa Add Create Pool button on the pools page (#46736)
add 1b68875d6b6 Align layout in trigger form with flexible form (#46596)
add f93b4657498 Notify user on unhealthy backend container (#46786)
add 94d8ed972c7 Add trigger as source for asset event. (#46783)
add 7afc322b3dd Add rendered templates tab. (#46750)
add 5e8be07b7a0 always populate mapped tasks (#46778)
add 75132690fb1 remove k8S 1.28 support (#46762)
add e027457a24d Removed the unused provider's distribution (#46608)
add 907ccdf515d add Karen to triage team (#46743)
add 9d0fe19b98f Modified start.rst from pip to uv. #46316 (#46767)
add 7ae64e9d241 fix return job_id when async finish before deffed in BigQueryInsertJobOperator (#46753)
add a9f3cbb2fb3 Make sure the SSHClient is also closed when using connection in context manager from SFTPHook (#46716)
add 8764927314a Remove backcompat re _task_event_logs from scheduler (#46771)
add 3ebfca10f75 Remove trailing new lines mistakenly added in #46767 (#46796)
add 4c031cb855f Remove assert in example DAG (#46794)
add 7f98fde29fe Using quotes for file path in find command (#46795)
add 4d5846f58fe Move provider_tests to unit folder in provider tests (#46800)
add 4e17ecd3f89 Avoid imports from "providers" (#46801)
add 2a907ef08e5 Adding a task that validates format of dates in YDB example dag (#46807)
add bc8e280172c Add docs for DAGs - ruff >= 0.95 with example (#46806)
add 025c2236a57 Using env for file path in find command (#46809)
add 14c8fb39cec Fix f-string ruff static check (#46813)
add d5b9d630c4d Add REST API endpoint to materialize asset (#46718)
add 37464de0cb1 Add pre-commit check for default configuration (#46622)
add e3aabea4c2d AIP-72: Simplify the XCOM interface between task sdk and execution API (#46719)
add 4365e31f9b7 Edge worker stop command can wait for processes to terminate (#46816)
add 97d62ee64e9 Fix `TypeError` when deserializing task with `execution_timeout` set to `None` (#46766)
add e67c89294cc Speedup test collection for `tests/www` (#46812)
add b840eb6a109 Expose the YDB web interface port (#46815)
add d48657dd694 refactor: Update DAG response model aligning with logical_date (#46776)
add 0cd85472dd4 Speed-up check-default-configuration pre-commit (#46821)
add e23d53fe338 Remove old provider references and replace "new" with just providers (#46810)
add 7e2dda04f0f Add Plugins list page (#46823)
add f36a1385f2b fix: disable sorting for providers table columns (#46785)
add 6c7f26052c2 Add run after to task instances endpoints (#46741)
add e740e1e7f21 Bump dompurify in /providers/fab/src/airflow/providers/fab/www (#46798)
add b5d6a391e51 Add operators for Entry resource (#46647)
add 2db5dbefab3 Upgrade ubuntu runner to 22.04 as per deprecation notice (#46830)
add cd8d564e860 AIP-84 Add asset_dependencies endpoint (#46770)
add b4d27074f60 Remove remnants of old provider's structure (#46829)
add cd0c32bb537 Upgrade installers to latest versions (#46834)
add 4c786c42dd6 Deprecate old bigquery operators and introduce CreateTableOperator (#46673)
add 165ea9ed0c4 [EDGE]CLI allows to retrieve status of worker (#46818)
add fece9c7dfc5 Create operators for working with Clusters for GCP Apache Kafka (#45795)
add c4091ab02e4 Remove tests from example_dags folder (#46819)
add fdbd68f02e8 TriggerDagRunOperator by defaults set logical date as null (#46633)
add 8fbdf75dc7e Excluding system tests from dag serialisation tests (#46850)
add 18396ed8083 Rework the TriggererJobRunner to run triggers in a process without DB access (#46677)
add 8c374a89c7c Handle None in DagRunAssetReference (#46847)
add b715909ef1c fix test using time travel (#46859)
add d0dbf4c0cbf AIP-66 Refactor DagRun to DagVersion association (#46626)
add 3b5a503a26e [EDGE]Fix maintenance states during shut down (#46861)
add b3701292ce3 fix rst with code block (#46864)
add d5ffb467d1b Allow description to be passed in description file for variables_import command (#46799)
add c33299d4325 Fixing log typos in Local & Celery Executors (#46866)
add 647a2d1cbec Move Macros to Task SDK (#46867)
add 4833b53705a Refactor result_processor and event_handler signatures in MSGraphAsyncOperator (#46637)
add 3e6c6a109ea Fix wrong operator name in doc string of @task.kubernetes (#46873)
add 3e13c2fb35c Remove deprecated get_link signature support (#46415)
add 6a7203a2da3 Use run_id to implement ti clear in API when given (#46883)
add d1bf9c5dd19 Fix MultipleCronTriggerTimetable deserialization (#46886)
add f0abca1e8e7 Import the right BaseOperator in baseoperatorlinks (#46895)
add 13c3e76af4f Minor DAG processor logging cleanup (#46878)
add ae5afd97dd6 AIP-81 Include CLI Token Expiration Time API Configuration and Integrate New Config in SimpleAuthManager (#46839)
add bb560528035 Implement dag version selector for source code. (#46885)
add 711d1fdc0e0 Enable accessing Variables from the top level of the DAG files (#46869)
add 0adb5ad1cbe Fix run/task table links (#46901)
add 319cf3051b7 Remove 2.8 version check from CeleryExecutor CLI (#46910)
add c505b240bce AIP-84 Asset dependencies graph node filtering (#46890)
add 43e3f6aa4cb Slow down DAG processor refreshing bundles (#46870)
add d903d76be3c Validation logic for the payload moved to the Serializer for trigger_dag_run (#46882)
add 56e083f1455 AIP-72: Swap KubernetesExecutor to use taskSDK for execution (#46860)
add 8765fc990a7 Remove unused discovery using sources from Providers Manager (#46840)
add 851b6c36bfb Clean up some straggling "standalone" DAG processor references (#46909)
add b95990b3267 Allow schedule args in asset decorator (#46851)
add ee68ddf605c Refactor deferrable mode for BeamRunPythonPipelineOperator and BeamRunJavaPipelineOperator (#46678)
add 7b123cd8198 Add link to latest dagrun in dags list. (#46907)
add f63652eca14 Make rendered_map_index default to map_index (#46918)
add d983b6ac946 Fix some warnings in React components (#46919)
add 9877491c159 Add a note `airflow users` command is available when FAB auth-manager is enabled (#46862)
add dddcebc508c Give each tmux pane in `start-airflow` a title to make it clear what is running (#46931)
add a29c840d938 Allow check_response to be defined in extra_options of HTTP connection (#45451)
add c141383d5bf fix: api_version on on_kill method (#46833)
add ae2c59adbea Remove orphaned celery_command file (#46879)
add 3f548a01531 Bump trove-classifiers from 2025.1.15.22 to 2025.2.18.16 (#46903)
add b99cb7ce108 Create operators for working with Topics for GCP Apache Kafka (#46865)
new 6956e9a7a16 Update default branches for 3-0
new c331bcdb472 Update Airflow version to 3.0.0a4
new b827d835896 Update RELEASE_NOTES.rst
new 1562521bfb8 Bump celery provider version to 3.11.0
new 0ef5d273115 Bump standard provider version to 0.1.0
new 55919dbff0d Bump task-sdk version to 1.0.0.alpha4
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 (08f632a2597)
\
N -- N -- N refs/heads/v3-0-test (55919dbff0d)
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.
The 6 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.asf.yaml | 2 +-
.github/actions/install-pre-commit/action.yml | 2 +-
.github/boring-cyborg.yml | 3 +-
.github/workflows/generate-constraints.yml | 3 +-
.github/workflows/integration-system-tests.yml | 3 +-
.github/workflows/news-fragment.yml | 2 +-
.github/workflows/special-tests.yml | 2 +-
.github/workflows/test-provider-packages.yml | 2 +-
.gitignore | 1 +
.pre-commit-config.yaml | 37 +-
Dockerfile | 8 +-
Dockerfile.ci | 8 +-
PROVIDERS.rst | 2 +-
README.md | 16 +-
RELEASE_NOTES.rst | 2 +-
airflow/__init__.py | 2 +-
airflow/api/common/trigger_dag.py | 2 +-
.../api_connexion/schemas/task_instance_schema.py | 2 +-
airflow/api_fastapi/app.py | 12 +-
airflow/api_fastapi/core_api/datamodels/assets.py | 6 +-
airflow/api_fastapi/core_api/datamodels/dag_run.py | 37 +
.../core_api/datamodels/dag_versions.py | 9 +
airflow/api_fastapi/core_api/datamodels/dags.py | 19 +-
.../core_api/datamodels/task_instances.py | 3 +
.../datamodels/{dag_versions.py => ui/common.py} | 36 +-
airflow/api_fastapi/core_api/datamodels/ui/grid.py | 2 +
.../core_api/datamodels/ui/structure.py | 19 +-
.../api_fastapi/core_api/openapi/v1-generated.yaml | 401 ++-
.../api_fastapi/core_api/routes/public/assets.py | 64 +-
.../api_fastapi/core_api/routes/public/dag_run.py | 48 +-
.../core_api/routes/public/task_instances.py | 23 +-
airflow/api_fastapi/core_api/routes/ui/__init__.py | 2 +
airflow/api_fastapi/core_api/routes/ui/dags.py | 16 +-
.../api_fastapi/core_api/routes/ui/dependencies.py | 86 +
airflow/api_fastapi/core_api/routes/ui/grid.py | 32 +-
.../core_api/services/ui/dependencies.py | 78 +
airflow/api_fastapi/execution_api/app.py | 42 +-
.../api_fastapi/execution_api/datamodels/xcom.py | 4 +-
airflow/api_fastapi/execution_api/routes/xcoms.py | 37 +-
.../auth/managers/simple/openapi/v1-generated.yaml | 38 +
.../managers/simple/{router => routes}/__init__.py | 0
.../managers/simple/{router => routes}/login.py | 48 +-
.../auth/managers/simple/services}/__init__.py | 0
airflow/auth/managers/simple/services/login.py | 74 +
.../auth/managers/simple/simple_auth_manager.py | 2 +-
airflow/cli/cli_config.py | 8 +-
.../cli/commands/local_commands/celery_command.py | 245 --
.../commands/local_commands/fastapi_api_command.py | 5 +
.../cli/commands/remote_commands/config_command.py | 3 +
.../commands/remote_commands/variable_command.py | 14 +-
airflow/config_templates/config.yml | 20 +
airflow/config_templates/unit_tests.cfg | 1 +
airflow/dag_processing/bundles/git.py | 10 +-
airflow/dag_processing/collection.py | 29 +-
airflow/dag_processing/manager.py | 31 +-
airflow/dag_processing/processor.py | 66 +-
.../example_dags/example_asset_with_watchers.py | 26 +-
airflow/example_dags/plugins/event_listener.py | 2 +-
airflow/executors/local_executor.py | 6 +-
airflow/executors/workloads.py | 34 +-
airflow/jobs/scheduler_job_runner.py | 56 +-
airflow/jobs/triggerer_job_runner.py | 953 +++---
airflow/macros/__init__.py | 71 +-
.../versions/0047_3_0_0_add_dag_versioning.py | 10 -
airflow/models/abstractoperator.py | 62 -
airflow/models/baseoperatorlink.py | 57 +-
airflow/models/dag.py | 39 +-
airflow/models/dag_version.py | 1 -
airflow/models/dagrun.py | 85 +-
airflow/models/taskinstance.py | 20 +-
airflow/models/taskinstancehistory.py | 2 +-
airflow/models/trigger.py | 97 +-
airflow/models/variable.py | 24 +
airflow/models/xcom.py | 3 -
airflow/new_provider.yaml.schema.json | 519 ---
airflow/provider.yaml.schema.json | 39 -
airflow/providers_manager.py | 111 +-
airflow/reproducible_build.yaml | 9 +-
airflow/serialization/serialized_objects.py | 143 +-
airflow/timetables/trigger.py | 2 +-
airflow/triggers/base.py | 163 +-
airflow/ui/openapi-gen/queries/common.ts | 44 +
airflow/ui/openapi-gen/queries/prefetch.ts | 65 +-
airflow/ui/openapi-gen/queries/queries.ts | 107 +-
airflow/ui/openapi-gen/queries/suspense.ts | 71 +-
airflow/ui/openapi-gen/requests/schemas.gen.ts | 260 +-
airflow/ui/openapi-gen/requests/services.gen.ts | 77 +-
airflow/ui/openapi-gen/requests/types.gen.ts | 151 +-
.../components/ActionAccordion/ActionAccordion.tsx | 73 +-
airflow/ui/src/components/DagRunInfo.tsx | 75 +-
airflow/ui/src/components/DurationChart.tsx | 6 +-
airflow/ui/src/components/EditableMarkdown.tsx | 54 +
.../Menu/MenuButton.tsx} | 42 +-
.../ui/src/components/Menu/RunBackfillButton.tsx | 44 +
airflow/ui/src/components/Menu/RunBackfillForm.tsx | 217 ++
.../ui/src/components/Menu/RunBackfillModal.tsx | 47 +
airflow/ui/src/components/RenderedJsonField.tsx | 2 +-
.../ui/src/components/SearchDags/SearchDags.tsx | 1 +
airflow/ui/src/components/StateIcon.tsx | 17 +-
.../src/components/TriggerDag/TriggerDAGForm.tsx | 46 +-
.../ui/src/constants/reprocessBehaviourParams.ts | 23 +
airflow/ui/src/layouts/Details/DagRunSelect.tsx | 2 +-
airflow/ui/src/layouts/Details/Graph/Graph.tsx | 2 +-
airflow/ui/src/layouts/Details/Grid/Bar.tsx | 8 +-
airflow/ui/src/layouts/Details/Grid/Grid.tsx | 2 +-
airflow/ui/src/layouts/Nav/AdminButton.tsx | 4 +
airflow/ui/src/layouts/Nav/Nav.tsx | 2 +-
airflow/ui/src/pages/Dag/Code/Code.tsx | 86 +-
airflow/ui/src/pages/Dag/Header.tsx | 13 +-
airflow/ui/src/pages/Dag/Overview/Overview.tsx | 12 +-
airflow/ui/src/pages/Dag/Tasks/TaskCard.tsx | 2 +-
airflow/ui/src/pages/DagRuns.tsx | 14 +-
airflow/ui/src/pages/DagsList/DagCard.test.tsx | 4 +-
airflow/ui/src/pages/DagsList/DagCard.tsx | 11 +-
airflow/ui/src/pages/DagsList/DagsList.tsx | 25 +-
airflow/ui/src/pages/DagsList/RecentRuns.tsx | 12 +-
.../Dashboard/HistoricalMetrics/AssetEvent.tsx | 8 +-
.../Dashboard/HistoricalMetrics/AssetEvents.tsx | 2 +
.../Dashboard/HistoricalMetrics/DagRunMetrics.tsx | 2 +
.../HistoricalMetrics/HistoricalMetrics.tsx | 9 +-
.../HistoricalMetrics/TaskInstanceMetrics.tsx | 3 +-
airflow/ui/src/pages/Dashboard/Stats/Stats.tsx | 2 +-
airflow/ui/src/pages/Plugins.tsx | 54 +
airflow/ui/src/pages/Pools/AddPoolButton.tsx | 75 +
airflow/ui/src/pages/Pools/PoolBar.tsx | 2 +-
airflow/ui/src/pages/Pools/PoolForm.tsx | 140 +
airflow/ui/src/pages/Pools/Pools.tsx | 7 +-
airflow/ui/src/pages/Providers.tsx | 5 +-
airflow/ui/src/pages/Task/Overview/Overview.tsx | 6 +-
airflow/ui/src/pages/TaskInstance/Details.tsx | 6 +-
.../src/pages/TaskInstance/RenderedTemplates.tsx | 68 +
airflow/ui/src/pages/TaskInstance/TaskInstance.tsx | 1 +
airflow/ui/src/pages/TaskInstances.tsx | 28 +-
airflow/ui/src/queries/useAddPool.ts | 67 +
airflow/ui/src/queries/useCreateBackfill.ts | 86 +
airflow/ui/src/queries/useCreateBackfillDryRun.ts | 42 +
airflow/ui/src/router.tsx | 7 +
airflow/utils/log/file_task_handler.py | 34 +-
airflow/utils/log/trigger_handler.py | 140 -
airflow/www/static/js/api/useMappedInstances.ts | 1 -
contributing-docs/03_contributors_quick_start.rst | 2 +
contributing-docs/07_local_virtualenv.rst | 26 +-
contributing-docs/08_static_code_checks.rst | 4 +
contributing-docs/11_provider_packages.rst | 130 +-
contributing-docs/16_contribution_workflow.rst | 1 +
.../contributors_quick_start_gitpod.rst | 3 +
contributing-docs/testing/system_tests.rst | 8 +-
contributing-docs/testing/unit_tests.rst | 6 +-
dev/README_AIRFLOW3_DEV.md | 2 +-
dev/breeze/README.md | 2 +-
dev/breeze/doc/ci/02_images.md | 4 +-
.../doc/images/output_k8s_configure-cluster.svg | 6 +-
.../doc/images/output_k8s_configure-cluster.txt | 2 +-
.../doc/images/output_k8s_create-cluster.svg | 6 +-
.../doc/images/output_k8s_create-cluster.txt | 2 +-
.../doc/images/output_k8s_delete-cluster.svg | 4 +-
.../doc/images/output_k8s_delete-cluster.txt | 2 +-
.../doc/images/output_k8s_deploy-airflow.svg | 6 +-
.../doc/images/output_k8s_deploy-airflow.txt | 2 +-
dev/breeze/doc/images/output_k8s_k9s.svg | 4 +-
dev/breeze/doc/images/output_k8s_k9s.txt | 2 +-
dev/breeze/doc/images/output_k8s_logs.svg | 4 +-
dev/breeze/doc/images/output_k8s_logs.txt | 2 +-
.../doc/images/output_k8s_run-complete-tests.svg | 6 +-
.../doc/images/output_k8s_run-complete-tests.txt | 2 +-
dev/breeze/doc/images/output_k8s_shell.svg | 4 +-
dev/breeze/doc/images/output_k8s_shell.txt | 2 +-
dev/breeze/doc/images/output_k8s_status.svg | 4 +-
dev/breeze/doc/images/output_k8s_status.txt | 2 +-
dev/breeze/doc/images/output_k8s_tests.svg | 6 +-
dev/breeze/doc/images/output_k8s_tests.txt | 2 +-
.../doc/images/output_k8s_upload-k8s-image.svg | 6 +-
.../doc/images/output_k8s_upload-k8s-image.txt | 2 +-
dev/breeze/doc/images/output_setup.txt | 2 +-
.../output_setup_regenerate-command-images.txt | 2 +-
dev/breeze/doc/images/output_static-checks.svg | 14 +-
dev/breeze/doc/images/output_static-checks.txt | 2 +-
dev/breeze/pyproject.toml | 1 +
.../commands/release_management_commands.py | 41 +-
.../airflow_breeze/commands/testing_commands.py | 13 +-
dev/breeze/src/airflow_breeze/global_constants.py | 6 +-
dev/breeze/src/airflow_breeze/pre_commit_ids.py | 2 +
.../prepare_providers/provider_documentation.py | 208 +-
.../prepare_providers/provider_packages.py | 47 +-
.../airflow_breeze/utils/docker_command_utils.py | 44 +
dev/breeze/src/airflow_breeze/utils/packages.py | 323 +-
dev/breeze/src/airflow_breeze/utils/path_utils.py | 11 +-
.../airflow_breeze/utils/publish_docs_helpers.py | 12 +-
dev/breeze/src/airflow_breeze/utils/run_tests.py | 78 +-
.../src/airflow_breeze/utils/selective_checks.py | 58 +-
dev/breeze/tests/test_packages.py | 106 +-
dev/breeze/tests/test_provider_documentation.py | 14 +-
.../tests/test_pytest_args_for_test_types.py | 63 +-
dev/breeze/tests/test_run_test_args.py | 17 +-
dev/breeze/tests/test_selective_checks.py | 70 +-
dev/breeze/uv.lock | 11 +
dev/example_dags/README.md | 34 -
dev/example_dags/update_example_dags_paths.py | 118 -
dev/moving_providers/README.md | 120 -
dev/moving_providers/move_providers.py | 757 -----
docs/.gitignore | 98 +-
docs/apache-airflow-providers/index.rst | 2 +-
docs/apache-airflow/best-practices.rst | 58 +
docs/apache-airflow/core-concepts/overview.rst | 4 +
docs/apache-airflow/img/airflow_erd.sha256 | 2 +-
docs/apache-airflow/img/airflow_erd.svg | 3535 ++++++++++----------
docs/apache-airflow/security/security_model.rst | 24 +-
docs/apache-airflow/start.rst | 47 +-
docs/build_docs.py | 7 +-
docs/conf.py | 43 +-
docs/docker-stack/README.md | 10 +-
.../extending/add-airflow-configuration/Dockerfile | 2 +-
.../extending/add-apt-packages/Dockerfile | 2 +-
.../add-build-essential-extend/Dockerfile | 2 +-
.../extending/add-providers/Dockerfile | 2 +-
.../add-pypi-packages-constraints/Dockerfile | 2 +-
.../extending/add-pypi-packages-uv/Dockerfile | 2 +-
.../extending/add-pypi-packages/Dockerfile | 2 +-
.../extending/add-requirement-packages/Dockerfile | 2 +-
.../extending/custom-providers/Dockerfile | 2 +-
.../extending/embedding-dags/Dockerfile | 2 +-
.../extending/writable-directory/Dockerfile | 2 +-
docs/docker-stack/entrypoint.rst | 14 +-
docs/exts/docs_build/docs_builder.py | 39 +-
docs/exts/docs_build/lint_checks.py | 11 +-
docs/exts/exampleinclude.py | 6 +-
docs/exts/provider_yaml_utils.py | 96 +-
docs/spelling_wordlist.txt | 6 +
generated/PYPI_README.md | 16 +-
generated/provider_dependencies.json | 3 +-
hatch_build.py | 4 +-
kubernetes_tests/test_kubernetes_executor.py | 6 +
newsfragments/46231.significant.rst | 6 +-
newsfragments/46375.significant.rst | 2 +-
newsfragments/46408.significant.rst | 6 +-
newsfragments/46415.significant.rst | 25 +
newsfragments/46613.significant.rst | 45 +
.../MANAGING_PROVIDERS_LIFECYCLE.rst | 190 +-
.../airflow/providers/airbyte/operators/airbyte.py | 2 +-
providers/airbyte/tests/conftest.py | 13 -
providers/{ => airbyte/tests/system}/__init__.py | 0
.../tests/{provider_tests => unit}/__init__.py | 0
.../airbyte/hooks => unit/airbyte}/__init__.py | 0
.../operators => unit/airbyte/hooks}/__init__.py | 0
.../airbyte/hooks/test_airbyte.py | 0
.../sensors => unit/airbyte/operators}/__init__.py | 0
.../airbyte/operators/test_airbyte.py | 17 +
.../triggers => unit/airbyte/sensors}/__init__.py | 0
.../airbyte/sensors/test_airbyte.py | 0
.../tests/unit/airbyte/triggers}/__init__.py | 0
.../airbyte/triggers/test_airbyte.py | 0
providers/alibaba/docs/index.rst | 2 +-
providers/alibaba/tests/conftest.py | 13 -
.../tests/{provider_tests => system}/__init__.py | 0
.../tests/unit}/__init__.py | 0
.../alibaba/cloud => unit/alibaba}/__init__.py | 0
.../cloud/hooks => unit/alibaba/cloud}/__init__.py | 0
.../log => unit/alibaba/cloud/hooks}/__init__.py | 0
.../alibaba/cloud/hooks/test_analyticdb_spark.py | 2 +-
.../alibaba/cloud/hooks/test_oss.py | 2 +-
.../alibaba/cloud/log}/__init__.py | 0
.../alibaba/cloud/log/test_oss_task_handler.py | 0
.../alibaba/cloud/operators}/__init__.py | 0
.../cloud/operators/test_analyticdb_spark.py | 0
.../alibaba/cloud/operators/test_oss.py | 0
.../alibaba/cloud/sensors}/__init__.py | 0
.../alibaba/cloud/sensors/test_analyticdb_spark.py | 0
.../alibaba/cloud/sensors/test_oss_key.py | 0
.../tests/unit/alibaba/cloud/utils}/__init__.py | 0
.../alibaba/cloud/utils/analyticdb_spark_mock.py | 0
.../alibaba/cloud/utils/oss_mock.py | 0
.../alibaba/cloud/utils/test_utils.py | 0
.../setup/amazon-verified-permissions.rst | 4 +-
providers/amazon/docs/executors/batch-executor.rst | 2 +-
providers/amazon/docs/executors/ecs-executor.rst | 2 +-
providers/amazon/docs/operators/mwaa.rst | 64 +
providers/amazon/provider.yaml | 6 +
.../amazon/aws/auth_manager/aws_auth_manager.py | 2 +-
.../src/airflow/providers/amazon/aws/hooks/mwaa.py | 85 +
.../airflow/providers/amazon/aws/operators/mwaa.py | 109 +
.../providers/amazon/aws/triggers/README.md | 2 +-
.../airflow/providers/amazon/get_provider_info.py | 8 +
providers/amazon/tests/conftest.py | 13 -
.../tests/provider_tests/amazon/aws/fs/__init__.py | 16 -
.../provider_tests/amazon/aws/hooks/__init__.py | 16 -
.../amazon/aws/infrastructure/__init__.py | 16 -
.../example_s3_to_redshift/__init__.py | 16 -
.../provider_tests/amazon/aws/links/__init__.py | 16 -
.../provider_tests/amazon/aws/log/__init__.py | 16 -
.../amazon/aws/notifications/__init__.py | 16 -
.../amazon/aws/operators/__init__.py | 16 -
.../provider_tests/amazon/aws/secrets/__init__.py | 16 -
.../provider_tests/amazon/aws/sensors/__init__.py | 16 -
.../provider_tests/amazon/aws/system/__init__.py | 16 -
.../amazon/aws/system/utils/__init__.py | 16 -
.../amazon/aws/transfers/__init__.py | 16 -
.../provider_tests/amazon/aws/triggers/__init__.py | 16 -
.../provider_tests/amazon/aws/utils/__init__.py | 16 -
.../provider_tests/amazon/aws/waiters/__init__.py | 16 -
.../tests/system}/__init__.py | 0
providers/amazon/tests/system/amazon/README.md | 14 +-
.../tests/system/amazon/aws/example_appflow.py | 3 +-
.../tests/system/amazon/aws/example_appflow_run.py | 2 +-
.../tests/system/amazon/aws/example_athena.py | 2 +-
.../system/amazon/aws/example_azure_blob_to_s3.py | 3 +-
.../tests/system/amazon/aws/example_batch.py | 12 +-
.../tests/system/amazon/aws/example_bedrock.py | 2 +-
.../aws/example_bedrock_retrieve_and_generate.py | 2 +-
.../system/amazon/aws/example_cloudformation.py | 3 +-
.../tests/system/amazon/aws/example_comprehend.py | 3 +-
.../aws/example_comprehend_document_classifier.py | 3 +-
.../tests/system/amazon/aws/example_datasync.py | 2 +-
.../amazon/tests/system/amazon/aws/example_dms.py | 4 +-
.../system/amazon/aws/example_dms_serverless.py | 2 +-
.../tests/system/amazon/aws/example_dynamodb.py | 2 +-
.../system/amazon/aws/example_dynamodb_to_s3.py | 2 +-
.../amazon/tests/system/amazon/aws/example_ec2.py | 2 +-
.../amazon/tests/system/amazon/aws/example_ecs.py | 2 +-
.../tests/system/amazon/aws/example_ecs_fargate.py | 2 +-
.../system/amazon/aws/example_eks_templated.py | 3 +-
.../aws/example_eks_with_fargate_in_one_step.py | 5 +-
.../amazon/aws/example_eks_with_fargate_profile.py | 5 +-
.../aws/example_eks_with_nodegroup_in_one_step.py | 4 +-
.../amazon/aws/example_eks_with_nodegroups.py | 4 +-
.../amazon/tests/system/amazon/aws/example_emr.py | 2 +-
.../tests/system/amazon/aws/example_emr_eks.py | 2 +-
.../amazon/aws/example_emr_notebook_execution.py | 3 +-
.../system/amazon/aws/example_emr_serverless.py | 2 +-
.../tests/system/amazon/aws/example_eventbridge.py | 3 +-
.../tests/system/amazon/aws/example_ftp_to_s3.py | 3 +-
.../tests/system/amazon/aws/example_gcs_to_s3.py | 3 +-
.../system/amazon/aws/example_glacier_to_gcs.py | 2 +-
.../amazon/tests/system/amazon/aws/example_glue.py | 2 +-
.../system/amazon/aws/example_glue_data_quality.py | 3 +-
...xample_glue_data_quality_with_recommendation.py | 3 +-
.../system/amazon/aws/example_glue_databrew.py | 2 +-
.../amazon/aws/example_google_api_sheets_to_s3.py | 3 +-
.../amazon/aws/example_google_api_youtube_to_s3.py | 2 +-
.../system/amazon/aws/example_hive_to_dynamodb.py | 3 +-
.../tests/system/amazon/aws/example_http_to_s3.py | 3 +-
.../amazon/aws/example_imap_attachment_to_s3.py | 3 +-
.../system/amazon/aws/example_kinesis_analytics.py | 2 +-
.../tests/system/amazon/aws/example_lambda.py | 2 +-
.../tests/system/amazon/aws/example_local_to_s3.py | 3 +-
.../tests/system/amazon/aws/example_mongo_to_s3.py | 3 +-
.../amazon/tests/system/amazon/aws/example_mwaa.py | 86 +
.../tests/system/amazon/aws/example_neptune.py | 3 +-
.../tests/system/amazon/aws/example_quicksight.py | 2 +-
.../tests/system/amazon/aws/example_rds_event.py | 2 +-
.../tests/system/amazon/aws/example_rds_export.py | 3 +-
.../system/amazon/aws/example_rds_instance.py | 3 +-
.../system/amazon/aws/example_rds_snapshot.py | 3 +-
.../tests/system/amazon/aws/example_redshift.py | 3 +-
.../amazon/aws/example_redshift_s3_transfers.py | 3 +-
.../amazon/tests/system/amazon/aws/example_s3.py | 3 +-
.../system/amazon/aws/example_s3_to_dynamodb.py | 2 +-
.../tests/system/amazon/aws/example_s3_to_ftp.py | 3 +-
.../tests/system/amazon/aws/example_s3_to_sftp.py | 3 +-
.../tests/system/amazon/aws/example_s3_to_sql.py | 3 +-
.../tests/system/amazon/aws/example_sagemaker.py | 2 +-
.../amazon/aws/example_sagemaker_endpoint.py | 4 +-
.../amazon/aws/example_sagemaker_notebook.py | 3 +-
.../amazon/aws/example_sagemaker_pipeline.py | 4 +-
.../system/amazon/aws/example_salesforce_to_s3.py | 3 +-
.../tests/system/amazon/aws/example_sftp_to_s3.py | 3 +-
.../amazon/tests/system/amazon/aws/example_sns.py | 2 +-
.../tests/system/amazon/aws/example_sql_to_s3.py | 3 +-
.../amazon/tests/system/amazon/aws/example_sqs.py | 3 +-
.../system/amazon/aws/example_step_functions.py | 3 +-
.../amazon/aws/tests/test_aws_auth_manager.py | 2 +-
.../tests/system/amazon/aws/utils/__init__.py | 2 +-
.../apache => amazon/tests/unit}/__init__.py | 0
.../amazon/aws => unit/amazon}/__init__.py | 0
.../{provider_tests => unit}/amazon/aws/.gitignore | 0
.../aws/assets => unit/amazon/aws}/__init__.py | 0
.../amazon/aws/assets}/__init__.py | 0
.../amazon/aws/assets/test_s3.py | 0
.../amazon/aws/auth_manager}/__init__.py | 0
.../amazon/aws/auth_manager/avp}/__init__.py | 0
.../amazon/aws/auth_manager/avp/test_entities.py | 0
.../amazon/aws/auth_manager/avp/test_facade.py | 0
.../amazon/aws/auth_manager/cli}/__init__.py | 0
.../aws/auth_manager/cli/test_avp_commands.py | 0
.../amazon/aws/auth_manager/cli/test_definition.py | 0
.../amazon/aws/auth_manager/router}/__init__.py | 0
.../amazon/aws/auth_manager/router/test_login.py | 0
.../aws/auth_manager/security_manager}/__init__.py | 0
.../test_aws_security_manager_override.py | 0
.../aws/auth_manager/test_aws_auth_manager.py | 0
.../amazon/aws/auth_manager/test_constants.py | 0
.../amazon/aws/auth_manager/test_user.py | 0
.../amazon/aws/config_templates}/__init__.py | 0
.../amazon/aws/config_templates/args.json | 0
.../amazon/aws/config_templates/job.j2.json | 0
.../amazon/aws/config_templates/steps.j2.json | 0
.../amazon/aws/config_templates/steps.json | 0
.../amazon/aws/deferrable}/__init__.py | 0
.../amazon/aws/deferrable/hooks}/__init__.py | 0
.../ecs => unit/amazon/aws/executors}/__init__.py | 0
.../amazon/aws/executors/batch}/__init__.py | 0
.../aws/executors/batch/test_batch_executor.py | 0
.../unit/amazon/aws/executors/ecs}/__init__.py | 0
.../amazon/aws/executors/ecs/test_ecs_executor.py | 0
.../unit/amazon/aws/executors/utils}/__init__.py | 0
.../utils/test_exponential_backoff_retry.py | 0
.../amazon/tests/unit/amazon/aws/fs}/__init__.py | 0
.../amazon/aws/fs/test_s3.py | 0
.../tests/unit/amazon/aws/hooks}/__init__.py | 0
.../amazon/aws/hooks/test_appflow.py | 0
.../amazon/aws/hooks/test_athena.py | 0
.../amazon/aws/hooks/test_athena_sql.py | 0
.../amazon/aws/hooks/test_base_aws.py | 4 +-
.../amazon/aws/hooks/test_batch_client.py | 0
.../amazon/aws/hooks/test_batch_waiters.py | 0
.../amazon/aws/hooks/test_bedrock.py | 0
.../amazon/aws/hooks/test_chime.py | 0
.../amazon/aws/hooks/test_cloud_formation.py | 0
.../amazon/aws/hooks/test_comprehend.py | 0
.../amazon/aws/hooks/test_datasync.py | 0
.../amazon/aws/hooks/test_dms.py | 0
.../amazon/aws/hooks/test_dynamodb.py | 0
.../amazon/aws/hooks/test_ec2.py | 0
.../amazon/aws/hooks/test_ecr.py | 0
.../amazon/aws/hooks/test_ecs.py | 0
.../amazon/aws/hooks/test_eks.py | 4 +-
.../hooks/test_elasticache_replication_group.py | 0
.../amazon/aws/hooks/test_emr.py | 0
.../amazon/aws/hooks/test_emr_containers.py | 0
.../amazon/aws/hooks/test_emr_serverless.py | 0
.../amazon/aws/hooks/test_eventbridge.py | 0
.../amazon/aws/hooks/test_glacier.py | 0
.../amazon/aws/hooks/test_glue.py | 0
.../amazon/aws/hooks/test_glue_catalog.py | 0
.../amazon/aws/hooks/test_glue_crawler.py | 0
.../amazon/aws/hooks/test_glue_databrew.py | 0
.../amazon/aws/hooks/test_hooks_signature.py | 0
.../amazon/aws/hooks/test_kinesis.py | 0
.../amazon/aws/hooks/test_kinesis_analytics.py | 0
.../amazon/aws/hooks/test_lambda_function.py | 0
.../amazon/aws/hooks/test_logs.py | 0
.../tests/unit/amazon/aws/hooks/test_mwaa.py | 130 +
.../amazon/aws/hooks/test_neptune.py | 0
.../amazon/aws/hooks/test_opensearch_serverless.py | 0
.../amazon/aws/hooks/test_quicksight.py | 0
.../amazon/aws/hooks/test_rds.py | 0
.../amazon/aws/hooks/test_redshift_cluster.py | 0
.../amazon/aws/hooks/test_redshift_data.py | 0
.../amazon/aws/hooks/test_redshift_sql.py | 0
.../amazon/aws/hooks/test_s3.py | 0
.../amazon/aws/hooks/test_sagemaker.py | 0
.../amazon/aws/hooks/test_secrets_manager.py | 0
.../amazon/aws/hooks/test_ses.py | 0
.../amazon/aws/hooks/test_sns.py | 0
.../amazon/aws/hooks/test_sqs.py | 0
.../amazon/aws/hooks/test_ssm.py | 0
.../amazon/aws/hooks/test_step_function.py | 0
.../amazon/aws/hooks/test_sts.py | 0
.../amazon/aws/hooks/test_verified_permissions.py | 0
.../unit/amazon/aws/infrastructure}/__init__.py | 0
.../example_s3_to_redshift}/__init__.py | 0
.../example_s3_to_redshift/outputs.tf | 0
.../example_s3_to_redshift/resources.tf | 0
.../example_s3_to_redshift/variables.tf | 0
.../tests/unit/amazon/aws/links}/__init__.py | 0
.../amazon/aws/links/test_athena.py | 2 +-
.../amazon/aws/links/test_base_aws.py | 11 +-
.../amazon/aws/links/test_batch.py | 2 +-
.../amazon/aws/links/test_comprehend.py | 2 +-
.../amazon/aws/links/test_datasync.py | 2 +-
.../amazon/aws/links/test_ec2.py | 2 +-
.../amazon/aws/links/test_emr.py | 2 +-
.../amazon/aws/links/test_glue.py | 2 +-
.../amazon/aws/links/test_logs.py | 2 +-
.../amazon/aws/links/test_sagemaker.py | 2 +-
.../amazon/aws/links/test_step_function.py | 2 +-
.../amazon/tests/unit/amazon/aws/log}/__init__.py | 0
.../amazon/aws/log/test_cloudwatch_task_handler.py | 0
.../amazon/aws/log/test_s3_task_handler.py | 0
.../unit/amazon/aws/notifications}/__init__.py | 0
.../amazon/aws/notifications/test_chime.py | 0
.../amazon/aws/notifications/test_sns.py | 0
.../amazon/aws/notifications/test_sqs.py | 0
.../tests/unit/amazon/aws/operators}/__init__.py | 0
.../amazon/aws/operators/athena_metadata.json | 0
.../amazon/aws/operators/test_appflow.py | 0
.../amazon/aws/operators/test_athena.py | 2 +-
.../amazon/aws/operators/test_base_aws.py | 0
.../amazon/aws/operators/test_batch.py | 0
.../amazon/aws/operators/test_bedrock.py | 2 +-
.../amazon/aws/operators/test_cloud_formation.py | 2 +-
.../amazon/aws/operators/test_comprehend.py | 2 +-
.../amazon/aws/operators/test_datasync.py | 2 +-
.../amazon/aws/operators/test_dms.py | 2 +-
.../amazon/aws/operators/test_ec2.py | 2 +-
.../amazon/aws/operators/test_ecs.py | 2 +-
.../amazon/aws/operators/test_eks.py | 8 +-
.../amazon/aws/operators/test_emr_add_steps.py | 2 +-
.../amazon/aws/operators/test_emr_containers.py | 2 +-
.../aws/operators/test_emr_create_job_flow.py | 4 +-
.../aws/operators/test_emr_modify_cluster.py | 2 +-
.../aws/operators/test_emr_notebook_execution.py | 4 +-
.../amazon/aws/operators/test_emr_serverless.py | 2 +-
.../aws/operators/test_emr_terminate_job_flow.py | 2 +-
.../amazon/aws/operators/test_eventbridge.py | 2 +-
.../amazon/aws/operators/test_glacier.py | 2 +-
.../amazon/aws/operators/test_glue.py | 2 +-
.../amazon/aws/operators/test_glue_crawler.py | 2 +-
.../amazon/aws/operators/test_glue_databrew.py | 2 +-
.../amazon/aws/operators/test_kinesis_analytics.py | 2 +-
.../amazon/aws/operators/test_lambda_function.py | 2 +-
.../tests/unit/amazon/aws/operators/test_mwaa.py | 80 +
.../amazon/aws/operators/test_neptune.py | 2 +-
.../amazon/aws/operators/test_quicksight.py | 2 +-
.../amazon/aws/operators/test_rds.py | 2 +-
.../amazon/aws/operators/test_redshift_cluster.py | 2 +-
.../amazon/aws/operators/test_redshift_data.py | 2 +-
.../amazon/aws/operators/test_redshift_sql.py | 0
.../amazon/aws/operators/test_s3.py | 2 +-
.../amazon/aws/operators/test_sagemaker_base.py | 2 +-
.../aws/operators/test_sagemaker_endpoint.py | 2 +-
.../operators/test_sagemaker_endpoint_config.py | 2 +-
.../amazon/aws/operators/test_sagemaker_model.py | 2 +-
.../aws/operators/test_sagemaker_notebook.py | 2 +-
.../aws/operators/test_sagemaker_pipeline.py | 2 +-
.../aws/operators/test_sagemaker_processing.py | 2 +-
.../aws/operators/test_sagemaker_training.py | 2 +-
.../aws/operators/test_sagemaker_transform.py | 2 +-
.../amazon/aws/operators/test_sagemaker_tuning.py | 2 +-
.../amazon/aws/operators/test_sns.py | 2 +-
.../amazon/aws/operators/test_sqs.py | 2 +-
.../amazon/aws/operators/test_step_function.py | 2 +-
.../tests/unit/amazon/aws/secrets}/__init__.py | 0
.../amazon/aws/secrets/test_secrets_manager.py | 0
.../amazon/aws/secrets/test_systems_manager.py | 0
.../tests/unit/amazon/aws/sensors}/__init__.py | 0
.../amazon/aws/sensors/test_athena.py | 0
.../amazon/aws/sensors/test_base_aws.py | 0
.../amazon/aws/sensors/test_batch.py | 0
.../amazon/aws/sensors/test_bedrock.py | 0
.../amazon/aws/sensors/test_cloud_formation.py | 0
.../amazon/aws/sensors/test_comprehend.py | 0
.../amazon/aws/sensors/test_dms.py | 0
.../amazon/aws/sensors/test_dynamodb.py | 0
.../amazon/aws/sensors/test_ec2.py | 0
.../amazon/aws/sensors/test_ecs.py | 0
.../amazon/aws/sensors/test_eks.py | 0
.../amazon/aws/sensors/test_emr_base.py | 0
.../amazon/aws/sensors/test_emr_containers.py | 0
.../amazon/aws/sensors/test_emr_job_flow.py | 0
.../aws/sensors/test_emr_notebook_execution.py | 0
.../aws/sensors/test_emr_serverless_application.py | 0
.../amazon/aws/sensors/test_emr_serverless_job.py | 0
.../amazon/aws/sensors/test_emr_step.py | 0
.../amazon/aws/sensors/test_glacier.py | 0
.../amazon/aws/sensors/test_glue.py | 0
.../aws/sensors/test_glue_catalog_partition.py | 0
.../amazon/aws/sensors/test_glue_crawler.py | 0
.../amazon/aws/sensors/test_glue_data_quality.py | 0
.../amazon/aws/sensors/test_kinesis_analytics.py | 0
.../amazon/aws/sensors/test_lambda_function.py | 0
.../aws/sensors/test_opensearch_serverless.py | 0
.../amazon/aws/sensors/test_quicksight.py | 0
.../amazon/aws/sensors/test_rds.py | 0
.../amazon/aws/sensors/test_redshift_cluster.py | 0
.../amazon/aws/sensors/test_s3.py | 0
.../amazon/aws/sensors/test_sagemaker_automl.py | 0
.../amazon/aws/sensors/test_sagemaker_base.py | 0
.../amazon/aws/sensors/test_sagemaker_endpoint.py | 0
.../amazon/aws/sensors/test_sagemaker_pipeline.py | 0
.../aws/sensors/test_sagemaker_processing.py | 0
.../amazon/aws/sensors/test_sagemaker_training.py | 0
.../amazon/aws/sensors/test_sagemaker_transform.py | 0
.../amazon/aws/sensors/test_sagemaker_tuning.py | 0
.../amazon/aws/sensors/test_sqs.py | 0
.../amazon/aws/sensors/test_step_function.py | 0
.../tests/unit/amazon/aws/system}/__init__.py | 0
.../unit/amazon/aws/system/utils}/__init__.py | 0
.../amazon/aws/system/utils/test_helpers.py | 6 +-
.../tests/unit/amazon/aws/transfers}/__init__.py | 0
.../amazon/aws/transfers/test_azure_blob_to_s3.py | 0
.../amazon/aws/transfers/test_base.py | 0
.../amazon/aws/transfers/test_dynamodb_to_s3.py | 0
.../amazon/aws/transfers/test_exasol_to_s3.py | 0
.../amazon/aws/transfers/test_ftp_to_s3.py | 0
.../amazon/aws/transfers/test_gcs_to_s3.py | 0
.../amazon/aws/transfers/test_glacier_to_gcs.py | 0
.../amazon/aws/transfers/test_google_api_to_s3.py | 0
.../amazon/aws/transfers/test_hive_to_dynamodb.py | 0
.../amazon/aws/transfers/test_http_to_s3.py | 0
.../aws/transfers/test_imap_attachment_to_s3.py | 0
.../amazon/aws/transfers/test_local_to_s3.py | 0
.../amazon/aws/transfers/test_mongo_to_s3.py | 0
.../amazon/aws/transfers/test_redshift_to_s3.py | 0
.../amazon/aws/transfers/test_s3_to_dynamodb.py | 0
.../amazon/aws/transfers/test_s3_to_ftp.py | 0
.../amazon/aws/transfers/test_s3_to_redshift.py | 0
.../amazon/aws/transfers/test_s3_to_sftp.py | 0
.../amazon/aws/transfers/test_s3_to_sql.py | 0
.../amazon/aws/transfers/test_salesforce_to_s3.py | 0
.../amazon/aws/transfers/test_sftp_to_s3.py | 0
.../amazon/aws/transfers/test_sql_to_s3.py | 0
.../tests/unit/amazon/aws/triggers}/__init__.py | 0
.../amazon/aws/triggers/test_athena.py | 0
.../amazon/aws/triggers/test_base.py | 1 +
.../amazon/aws/triggers/test_batch.py | 0
.../amazon/aws/triggers/test_bedrock.py | 2 +-
.../amazon/aws/triggers/test_comprehend.py | 2 +-
.../amazon/aws/triggers/test_dms.py | 2 +-
.../amazon/aws/triggers/test_ec2.py | 0
.../amazon/aws/triggers/test_ecs.py | 0
.../amazon/aws/triggers/test_eks.py | 0
.../amazon/aws/triggers/test_emr.py | 0
.../amazon/aws/triggers/test_glue.py | 2 +-
.../amazon/aws/triggers/test_glue_crawler.py | 2 +-
.../amazon/aws/triggers/test_glue_databrew.py | 0
.../amazon/aws/triggers/test_kinesis_analytics.py | 2 +-
.../amazon/aws/triggers/test_lambda_function.py | 0
.../amazon/aws/triggers/test_neptune.py | 0
.../aws/triggers/test_opensearch_serverless.py | 2 +-
.../amazon/aws/triggers/test_rds.py | 0
.../amazon/aws/triggers/test_redshift_cluster.py | 0
.../amazon/aws/triggers/test_redshift_data.py | 0
.../amazon/aws/triggers/test_s3.py | 0
.../amazon/aws/triggers/test_sagemaker.py | 0
.../amazon/aws/triggers/test_serialization.py | 0
.../amazon/aws/triggers/test_sqs.py | 0
.../tests/unit/amazon/aws/utils}/__init__.py | 0
.../amazon/aws/utils/eks_test_constants.py | 0
.../amazon/aws/utils/eks_test_utils.py | 2 +-
.../amazon/aws/utils/test_connection_wrapper.py | 0
.../amazon/aws/utils/test_eks_get_token.py | 0
.../amazon/aws/utils/test_emailer.py | 0
.../amazon/aws/utils/test_identifiers.py | 0
.../amazon/aws/utils/test_mixins.py | 0
.../amazon/aws/utils/test_openlineage.py | 0
.../amazon/aws/utils/test_redshift.py | 0
.../amazon/aws/utils/test_sqs.py | 0
.../amazon/aws/utils/test_suppress.py | 0
.../amazon/aws/utils/test_tags.py | 0
.../amazon/aws/utils/test_task_log_fetcher.py | 0
.../amazon/aws/utils/test_template_fields.py | 0
.../amazon/aws/utils/test_utils.py | 0
.../amazon/aws/utils/test_waiter.py | 0
.../amazon/aws/utils/test_waiter_with_logging.py | 0
.../tests/unit/amazon/aws/waiters}/__init__.py | 0
.../amazon/aws/waiters/test.json | 0
.../amazon/aws/waiters/test_batch.py | 0
.../amazon/aws/waiters/test_bedrock.py | 0
.../amazon/aws/waiters/test_bedrock_agent.py | 0
.../amazon/aws/waiters/test_comprehend.py | 0
.../amazon/aws/waiters/test_custom_waiters.py | 0
.../amazon/aws/waiters/test_dms.py | 0
.../amazon/aws/waiters/test_dynamo.py | 0
.../amazon/aws/waiters/test_ecs.py | 0
.../amazon/aws/waiters/test_eks.py | 2 +-
.../amazon/aws/waiters/test_emr.py | 0
.../amazon/aws/waiters/test_glue.py | 0
.../amazon/aws/waiters/test_glue_databrew.py | 0
.../amazon/aws/waiters/test_kinesis_analytics.py | 0
.../amazon/aws/waiters/test_neptune.py | 0
.../aws/waiters/test_opensearch_serverless.py | 0
.../{provider_tests => unit}/amazon/conftest.py | 0
.../docs/_api/tests/system}/__init__.py | 0
.../docs/_api/tests/system}/apache/__init__.py | 0
providers/apache/beam/pyproject.toml | 3 +-
.../src/airflow/providers/apache/beam/README.md | 14 +-
.../providers/apache/beam/get_provider_info.py | 5 +-
.../airflow/providers/apache/beam/hooks/beam.py | 22 +-
.../providers/apache/beam/operators/beam.py | 295 +-
.../airflow/providers/apache/beam/triggers/beam.py | 104 +-
providers/apache/beam/tests/conftest.py | 13 -
.../tests/provider_tests/apache/beam/__init__.py | 16 -
.../provider_tests/apache/beam/hooks/__init__.py | 16 -
.../apache/beam/operators/__init__.py | 16 -
.../apache/beam/triggers/__init__.py | 16 -
.../tests/system}/__init__.py | 0
.../tests/system}/apache/__init__.py | 0
.../beam/tests/system/apache/beam/example_beam.py | 9 +-
.../system/apache/beam/example_beam_java_flink.py | 9 +-
.../system/apache/beam/example_beam_java_spark.py | 9 +-
.../beam/tests/system/apache/beam/example_go.py | 9 +-
.../system/apache/beam/example_go_dataflow.py | 13 +-
.../system/apache/beam/example_java_dataflow.py | 9 +-
.../tests/system/apache/beam/example_python.py | 9 +-
.../system/apache/beam/example_python_async.py | 9 +-
.../system/apache/beam/example_python_dataflow.py | 13 +-
.../provider_tests => beam/tests/unit}/__init__.py | 0
.../tests/unit}/apache/__init__.py | 0
.../beam/tests/unit/apache/beam}/__init__.py | 0
.../beam/tests/unit/apache/beam/hooks}/__init__.py | 0
.../apache/beam/hooks/test_beam.py | 32 +-
.../tests/unit/apache/beam/operators}/__init__.py | 0
.../apache/beam/operators/test_beam.py | 18 +-
.../tests/unit/apache/beam/triggers}/__init__.py | 0
.../apache/beam/triggers/test_beam.py | 49 -
providers/apache/cassandra/tests/conftest.py | 13 -
.../tests/integration}/__init__.py | 0
.../tests/integration}/apache/__init__.py | 0
.../integration/apache/cassandra}/__init__.py | 0
.../apache/cassandra/hooks}/__init__.py | 0
.../apache/cassandra/hooks/test_cassandra.py | 0
.../provider_tests/apache/cassandra/__init__.py | 16 -
.../apache/cassandra/sensors/__init__.py | 16 -
.../tests/system}/__init__.py | 0
.../tests/system}/apache/__init__.py | 0
.../tests/unit}/__init__.py | 0
.../tests/unit}/apache/__init__.py | 0
.../tests/unit/apache/cassandra}/__init__.py | 0
.../apache/cassandra/hooks/__init__.py | 0
.../apache/cassandra/hooks/test_cassandra.py | 0
.../unit/apache/cassandra/sensors}/__init__.py | 0
.../apache/cassandra/sensors/test_record.py | 0
.../apache/cassandra/sensors/test_table.py | 0
providers/apache/drill/tests/conftest.py | 13 -
.../tests/integration}/__init__.py | 0
.../tests/integration}/apache/__init__.py | 0
.../tests/integration/apache/drill}/__init__.py | 0
.../integration/apache/drill/hooks}/__init__.py | 0
.../integration/apache/drill/hooks/test_drill.py | 0
.../apache/drill/operators}/__init__.py | 0
.../tests/system}/__init__.py | 0
.../tests/system}/apache/__init__.py | 0
.../tests/unit}/__init__.py | 0
.../tests/unit}/apache/__init__.py | 0
.../apache/drill/__init__.py | 0
.../apache/drill/hooks/__init__.py | 0
.../apache/drill/hooks/test_drill.py | 0
providers/apache/druid/tests/conftest.py | 13 -
.../apache/druid/transfers/__init__.py | 16 -
.../tests/system}/__init__.py | 0
.../tests/system}/apache/__init__.py | 0
.../tests/unit}/__init__.py | 0
.../tests/unit}/apache/__init__.py | 0
.../apache/druid/__init__.py | 0
.../apache/druid/hooks/__init__.py | 0
.../apache/druid/hooks/test_druid.py | 0
.../apache/druid/operators/__init__.py | 0
.../apache/druid/operators/test_druid.py | 0
.../tests/unit/apache/druid/transfers}/__init__.py | 0
.../apache/druid/transfers/test_hive_to_druid.py | 0
providers/apache/flink/docs/index.rst | 2 +-
providers/apache/flink/tests/conftest.py | 13 -
.../tests/unit}/__init__.py | 0
.../tests/unit}/apache/__init__.py | 0
.../apache/flink/__init__.py | 0
.../apache/flink/operators/__init__.py | 0
.../flink/operators/test_flink_kubernetes.py | 0
.../apache/flink/sensors/__init__.py | 0
.../apache/flink/sensors/test_flink_kubernetes.py | 0
providers/apache/hdfs/tests/conftest.py | 13 -
.../provider_tests => hdfs/tests/unit}/__init__.py | 0
.../tests/unit}/apache/__init__.py | 0
.../apache/hdfs/__init__.py | 0
.../apache/hdfs/hooks/__init__.py | 0
.../apache/hdfs/hooks/test_webhdfs.py | 0
.../apache/hdfs/sensors/__init__.py | 0
.../apache/hdfs/sensors/test_web_hdfs.py | 0
providers/apache/hive/tests/conftest.py | 13 -
.../tests/integration}/__init__.py | 0
.../tests/integration}/apache/__init__.py | 0
.../tests/integration/apache/hive}/__init__.py | 0
.../integration/apache/hive/transfers}/__init__.py | 0
.../apache/hive/transfers/test_mssql_to_hive.py | 0
.../apache/hive/transfers/__init__.py | 16 -
.../hive/tests/system}/__init__.py | 0
.../hive/tests/system/apache}/__init__.py | 0
.../hive/tests/unit}/__init__.py | 0
.../hive/tests/unit/apache}/__init__.py | 0
.../apache/hive/__init__.py | 0
.../apache/hive/hooks/__init__.py | 0
.../apache/hive/hooks/query_results.csv | 0
.../apache/hive/hooks/test_hive.py | 2 +-
.../apache/hive/macros/__init__.py | 0
.../apache/hive/macros/test_hive.py | 0
.../apache/hive/operators/__init__.py | 0
.../apache/hive/operators/test_hive.py | 2 +-
.../apache/hive/operators/test_hive_stats.py | 2 +-
.../apache/hive/sensors/__init__.py | 0
.../apache/hive/sensors/test_hive_partition.py | 2 +-
.../hive/sensors/test_metastore_partition.py | 2 +-
.../hive/sensors/test_named_hive_partition.py | 2 +-
.../tests/unit/apache/hive/transfers}/__init__.py | 0
.../apache/hive/transfers/test_hive_to_mysql.py | 2 +-
.../apache/hive/transfers/test_hive_to_samba.py | 2 +-
.../apache/hive/transfers/test_mssql_to_hive.py | 0
.../apache/hive/transfers/test_mysql_to_hive.py | 0
.../apache/hive/transfers/test_s3_to_hive.py | 8 +-
.../apache/hive/transfers/test_vertica_to_hive.py | 0
providers/apache/iceberg/tests/conftest.py | 13 -
.../provider_tests/apache/iceberg/__init__.py | 16 -
.../apache/iceberg/hooks/__init__.py | 16 -
.../iceberg/tests/system}/__init__.py | 0
.../iceberg/tests/system/apache}/__init__.py | 0
.../iceberg/tests/unit}/__init__.py | 0
.../iceberg/tests/unit/apache}/__init__.py | 0
.../iceberg/tests/unit/apache/iceberg}/__init__.py | 0
.../tests/unit/apache/iceberg/hooks}/__init__.py | 0
.../apache/iceberg/hooks/test_iceberg.py | 0
providers/apache/impala/tests/conftest.py | 13 -
.../tests/provider_tests/apache/impala/__init__.py | 16 -
.../provider_tests/apache/impala/hooks/__init__.py | 16 -
.../cncf => apache/impala/tests/unit}/__init__.py | 0
.../impala/tests/unit/apache}/__init__.py | 0
.../impala/tests/unit/apache/impala}/__init__.py | 0
.../tests/unit/apache/impala/hooks}/__init__.py | 0
.../apache/impala/hooks/test_impala.py | 0
providers/apache/kafka/tests/conftest.py | 13 -
.../kafka/tests/integration}/__init__.py | 0
.../kafka/tests/integration/apache}/__init__.py | 0
.../tests/integration/apache/kafka}/__init__.py | 0
.../integration/apache/kafka/hooks}/__init__.py | 0
.../apache/kafka/hooks/test_admin_client.py | 0
.../apache/kafka/hooks/test_consumer.py | 0
.../apache/kafka/hooks/test_producer.py | 0
.../apache/kafka/operators}/__init__.py | 0
.../apache/kafka/operators/test_consume.py | 2 +-
.../apache/kafka/operators/test_produce.py | 2 +-
.../integration/apache/kafka/sensors}/__init__.py | 0
.../integration/apache/kafka/triggers}/__init__.py | 0
.../apache/kafka/triggers/test_await_message.py | 2 +-
.../tests/provider_tests/apache/kafka/__init__.py | 16 -
.../provider_tests/apache/kafka/hooks/__init__.py | 16 -
.../apache/kafka/operators/__init__.py | 16 -
.../apache/kafka/sensors/__init__.py | 16 -
.../apache/kafka/triggers/__init__.py | 16 -
.../kafka/tests/system}/__init__.py | 0
.../kafka/tests/system/apache}/__init__.py | 0
.../kafka/tests/unit}/__init__.py | 0
.../kafka/tests/unit/apache}/__init__.py | 0
.../kafka/tests/unit/apache/kafka}/__init__.py | 0
.../tests/unit/apache/kafka/hooks}/__init__.py | 0
.../apache/kafka/hooks/test_base.py | 0
.../apache/kafka/hooks/test_client.py | 0
.../apache/kafka/hooks/test_consume.py | 0
.../apache/kafka/hooks/test_produce.py | 0
.../tests/unit/apache/kafka/operators}/__init__.py | 0
.../apache/kafka/operators/test_consume.py | 2 +-
.../apache/kafka/operators/test_produce.py | 2 +-
.../tests/unit/apache/kafka/sensors}/__init__.py | 0
.../apache/kafka/sensors/test_kafka.py | 0
.../tests/unit/apache/kafka/triggers}/__init__.py | 0
.../apache/kafka/triggers/test_await_message.py | 4 +-
providers/apache/kylin/tests/conftest.py | 13 -
.../kylin/tests/system}/__init__.py | 0
.../kylin/tests/system/apache}/__init__.py | 0
.../kylin/tests/unit}/__init__.py | 0
.../kylin/tests/unit/apache}/__init__.py | 0
.../apache/kylin/__init__.py | 0
.../apache/kylin/hooks/__init__.py | 0
.../apache/kylin/hooks/test_kylin.py | 0
.../apache/kylin/operators/__init__.py | 0
.../apache/kylin/operators/test_kylin_cube.py | 0
providers/apache/livy/README.rst | 2 +-
providers/apache/livy/pyproject.toml | 2 +-
.../providers/apache/livy/get_provider_info.py | 2 +-
.../airflow/providers/apache/livy/hooks/livy.py | 15 +-
providers/apache/livy/tests/conftest.py | 13 -
.../tests/provider_tests/apache/livy/__init__.py | 16 -
.../provider_tests/apache/livy/hooks/__init__.py | 16 -
.../apache/livy/operators/__init__.py | 16 -
.../provider_tests/apache/livy/sensors/__init__.py | 16 -
.../apache/livy/triggers/__init__.py | 16 -
.../livy/tests/system}/__init__.py | 0
.../livy/tests/system/apache}/__init__.py | 0
.../livy/tests/unit}/__init__.py | 0
.../livy/tests/unit/apache}/__init__.py | 0
.../livy/tests/unit/apache/livy}/__init__.py | 0
.../livy/tests/unit/apache/livy/hooks}/__init__.py | 0
.../apache/livy/hooks/test_livy.py | 0
.../tests/unit/apache/livy/operators}/__init__.py | 0
.../apache/livy/operators/test_livy.py | 0
.../tests/unit/apache/livy/sensors}/__init__.py | 0
.../apache/livy/sensors/test_livy.py | 0
.../tests/unit/apache/livy/triggers}/__init__.py | 0
.../apache/livy/triggers/test_livy.py | 0
providers/apache/pig/tests/conftest.py | 13 -
.../apache/pig/operators/__init__.py | 16 -
.../pig/tests/system}/__init__.py | 0
.../pig/tests/system/apache}/__init__.py | 0
.../pig/tests/unit}/__init__.py | 0
.../pig/tests/unit/apache}/__init__.py | 0
.../apache/pig/__init__.py | 0
.../apache/pig/hooks/__init__.py | 0
.../apache/pig/hooks/test_pig.py | 0
.../tests/unit/apache/pig/operators}/__init__.py | 0
.../apache/pig/operators/test_pig.py | 0
providers/apache/pinot/tests/conftest.py | 13 -
.../pinot/tests/integration}/__init__.py | 0
.../pinot/tests/integration/apache}/__init__.py | 0
.../tests/integration/apache/pinot}/__init__.py | 0
.../integration/apache/pinot/hooks}/__init__.py | 0
.../integration/apache/pinot/hooks/test_pinot.py | 0
.../pinot/tests/system}/__init__.py | 0
.../pinot/tests/system/apache}/__init__.py | 0
.../pinot/tests/unit}/__init__.py | 0
.../pinot/tests/unit/apache}/__init__.py | 0
.../apache/pinot/__init__.py | 0
.../apache/pinot/hooks/__init__.py | 0
.../apache/pinot/hooks/test_pinot.py | 0
providers/apache/spark/tests/conftest.py | 13 -
.../apache/spark/decorators/__init__.py | 16 -
.../spark/tests/system}/__init__.py | 0
.../spark/tests/system/apache}/__init__.py | 0
.../spark/tests/unit}/__init__.py | 0
.../spark/tests/unit/apache}/__init__.py | 0
.../apache/spark/__init__.py | 0
.../unit/apache/spark/decorators}/__init__.py | 0
.../apache/spark/decorators/test_pyspark.py | 0
.../apache/spark/hooks/__init__.py | 0
.../apache/spark/hooks/test_spark_connect.py | 0
.../apache/spark/hooks/test_spark_jdbc.py | 0
.../apache/spark/hooks/test_spark_jdbc_script.py | 0
.../apache/spark/hooks/test_spark_sql.py | 0
.../apache/spark/hooks/test_spark_submit.py | 0
.../apache/spark/operators/__init__.py | 0
.../apache/spark/operators/test_spark_jdbc.py | 0
.../apache/spark/operators/test_spark_sql.py | 0
.../apache/spark/operators/test_spark_submit.py | 0
providers/apprise/tests/conftest.py | 13 -
.../tests/provider_tests/apprise/__init__.py | 16 -
.../microsoft => apprise/tests/unit}/__init__.py | 0
.../apprise/tests/unit/apprise}/__init__.py | 0
.../apprise/hooks/__init__.py | 0
.../apprise/hooks/test_apprise.py | 0
.../apprise/notifications/__init__.py | 0
.../apprise/notifications/test_apprise.py | 0
providers/arangodb/tests/conftest.py | 13 -
.../tests/provider_tests/arangodb/__init__.py | 16 -
.../provider_tests/arangodb/hooks/__init__.py | 16 -
.../provider_tests/arangodb/operators/__init__.py | 16 -
.../provider_tests/arangodb/sensors/__init__.py | 16 -
.../tests/unit}/__init__.py | 0
.../arangodb/tests/unit/arangodb}/__init__.py | 0
.../tests/unit/arangodb/hooks}/__init__.py | 0
.../arangodb/hooks/test_arangodb.py | 0
.../tests/unit/arangodb/operators}/__init__.py | 0
.../arangodb/operators/test_arangodb.py | 0
.../tests/unit/arangodb/sensors}/__init__.py | 0
.../arangodb/sensors/test_arangodb.py | 0
.../src/airflow/providers/asana/hooks/asana.py | 1 -
providers/asana/tests/conftest.py | 13 -
.../microsoft => asana/tests/system}/__init__.py | 0
.../tests/unit}/__init__.py | 0
.../{provider_tests => unit}/asana/__init__.py | 0
.../asana/hooks/__init__.py | 0
.../asana/hooks/test_asana.py | 0
.../asana/operators/__init__.py | 0
.../asana/operators/test_asana_tasks.py | 0
providers/atlassian/jira/tests/conftest.py | 13 -
.../provider_tests/atlassian/jira/__init__.py | 16 -
.../atlassian/jira/hooks/__init__.py | 16 -
.../atlassian/jira/notifications/__init__.py | 16 -
.../atlassian/jira/operators/__init__.py | 16 -
.../atlassian/jira/sensors/__init__.py | 16 -
.../jira/tests/unit}/__init__.py | 0
.../jira/tests/unit/atlassian}/__init__.py | 0
.../jira/tests/unit/atlassian/jira}/__init__.py | 0
.../tests/unit/atlassian/jira/hooks}/__init__.py | 0
.../atlassian/jira/hooks/test_jira.py | 0
.../unit/atlassian/jira/notifications}/__init__.py | 0
.../atlassian/jira/notifications/test_jira.py | 0
.../unit/atlassian/jira/operators}/__init__.py | 0
.../atlassian/jira/operators/test_jira.py | 0
.../tests/unit/atlassian/jira/sensors}/__init__.py | 0
.../atlassian/jira/sensors/test_jira.py | 0
.../providers/celery/executors/celery_executor.py | 28 +-
.../celery/executors/celery_executor_utils.py | 8 +-
.../src/airflow/providers/celery/version_compat.py | 1 -
providers/celery/tests/conftest.py | 13 -
.../celery/tests/provider_tests/celery/__init__.py | 16 -
.../tests/provider_tests/celery/cli/__init__.py | 16 -
.../provider_tests/celery/log_handlers/__init__.py | 16 -
.../microsoft => celery/tests/unit}/__init__.py | 0
.../celery/tests/unit/celery}/__init__.py | 0
.../celery/tests/unit/celery/cli}/__init__.py | 0
.../celery/cli/test_celery_command.py | 0
.../celery/executors/__init__.py | 0
.../celery/executors/test_celery_executor.py | 0
.../executors/test_celery_kubernetes_executor.py | 0
.../tests/unit/celery/log_handlers}/__init__.py | 0
.../celery/log_handlers/test_log_handlers.py | 0
.../celery/sensors/__init__.py | 0
.../celery/sensors/test_celery_queue.py | 0
providers/cloudant/tests/conftest.py | 13 -
.../provider_tests/cloudant/hooks/__init__.py | 17 -
.../tests/unit}/__init__.py | 0
.../{provider_tests => unit}/cloudant/__init__.py | 0
.../tests/unit/cloudant/hooks}/__init__.py | 0
.../cloudant/hooks/test_cloudant.py | 0
providers/cncf/kubernetes/docs/index.rst | 2 +-
.../backcompat/backwards_compat_converters.py | 2 +-
.../cncf/kubernetes/decorators/kubernetes.py | 2 +-
.../kubernetes/executors/kubernetes_executor.py | 33 +-
.../executors/kubernetes_executor_utils.py | 21 +-
.../providers/cncf/kubernetes/pod_generator.py | 60 +-
providers/cncf/kubernetes/tests/conftest.py | 13 -
.../provider_tests/cncf/kubernetes/__init__.py | 17 -
.../cncf/kubernetes/backcompat/__init__.py | 16 -
.../provider_tests/cncf/kubernetes/cli/__init__.py | 16 -
.../cncf/kubernetes/data_files/__init__.py | 16 -
.../kubernetes/data_files/executor/__init__.py | 16 -
.../cncf/kubernetes/data_files/pods/__init__.py | 16 -
.../cncf/kubernetes/data_files/spark/__init__.py | 16 -
.../cncf/kubernetes/decorators/__init__.py | 16 -
.../cncf/kubernetes/executors/__init__.py | 16 -
.../cncf/kubernetes/hooks/__init__.py | 16 -
.../cncf/kubernetes/log_handlers/__init__.py | 16 -
.../cncf/kubernetes/models/__init__.py | 17 -
.../cncf/kubernetes/operators/__init__.py | 16 -
.../cncf/kubernetes/resource_convert/__init__.py | 16 -
.../kubernetes/resource_convert/test_configmap.py | 16 -
.../resource_convert/test_env_variable.py | 16 -
.../kubernetes/resource_convert/test_secret.py | 16 -
.../cncf/kubernetes/sensors/__init__.py | 16 -
.../cncf/kubernetes/triggers/__init__.py | 16 -
.../cncf/kubernetes/utils/__init__.py | 16 -
.../kubernetes/tests/system}/__init__.py | 0
.../kubernetes/tests/system/cncf}/__init__.py | 0
.../system/cncf/kubernetes/example_kubernetes.py | 3 +-
.../cncf/kubernetes/example_kubernetes_async.py | 3 +-
.../cncf/kubernetes/example_kubernetes_kueue.py | 3 +-
.../kubernetes/tests/unit}/__init__.py | 0
.../kubernetes/tests/unit/cncf}/__init__.py | 0
.../tests/unit/cncf/kubernetes}/__init__.py | 0
.../unit/cncf/kubernetes/backcompat}/__init__.py | 0
.../backcompat/test_backwards_compat_converters.py | 0
.../tests/unit/cncf/kubernetes/cli}/__init__.py | 0
.../cncf/kubernetes/cli/test_kubernetes_command.py | 0
.../cncf/kubernetes/conftest.py | 0
.../unit/cncf/kubernetes/data_files}/__init__.py | 0
.../kubernetes/data_files/executor}/__init__.py | 0
.../data_files/executor/basic_template.yaml | 0
.../cncf/kubernetes/data_files/kube_config | 0
.../cncf/kubernetes/data_files/pods}/__init__.py | 0
.../kubernetes/data_files/pods/generator_base.yaml | 0
.../pods/generator_base_with_secrets.yaml | 0
.../cncf/kubernetes/data_files/pods/template.yaml | 0
.../cncf/kubernetes/data_files/spark}/__init__.py | 0
.../data_files/spark/application_template.yaml | 0
.../data_files/spark/application_test.json | 0
.../data_files/spark/application_test.yaml | 0
.../application_test_with_no_name_from_config.json | 0
.../application_test_with_no_name_from_config.yaml | 0
.../unit/cncf/kubernetes/decorators}/__init__.py | 0
.../cncf/kubernetes/decorators/test_kubernetes.py | 0
.../unit/cncf/kubernetes/executors}/__init__.py | 0
.../executors/test_kubernetes_executor.py | 0
.../executors/test_local_kubernetes_executor.py | 0
.../tests/unit/cncf/kubernetes/hooks}/__init__.py | 0
.../cncf/kubernetes/hooks/test_kubernetes.py | 0
.../unit/cncf/kubernetes/log_handlers}/__init__.py | 0
.../kubernetes/log_handlers/test_log_handlers.py | 0
.../tests/unit/cncf/kubernetes/models}/__init__.py | 0
.../cncf/kubernetes/models/test_secret.py | 0
.../unit/cncf/kubernetes/operators}/__init__.py | 0
.../operators/test_custom_object_launcher.py | 0
.../cncf/kubernetes/operators/test_job.py | 0
.../cncf/kubernetes/operators/test_kueue.py | 0
.../cncf/kubernetes/operators/test_pod.py | 6 +-
.../cncf/kubernetes/operators/test_resource.py | 0
.../kubernetes/operators/test_spark_kubernetes.py | 0
.../cncf/kubernetes/resource_convert}/__init__.py | 0
.../kubernetes/resource_convert/test_configmap.py | 0
.../resource_convert/test_env_variable.py | 0
.../kubernetes/resource_convert/test_secret.py | 0
.../unit/cncf/kubernetes/sensors}/__init__.py | 0
.../kubernetes/sensors/test_spark_kubernetes.py | 0
.../cncf/kubernetes/test_callbacks.py | 0
.../cncf/kubernetes/test_client.py | 0
.../kubernetes/test_kubernetes_helper_functions.py | 0
.../cncf/kubernetes/test_pod_generator.py | 62 +
.../cncf/kubernetes/test_template_rendering.py | 0
.../unit/cncf/kubernetes/triggers}/__init__.py | 0
.../cncf/kubernetes/triggers/test_job.py | 0
.../cncf/kubernetes/triggers/test_pod.py | 0
.../tests/unit/cncf/kubernetes/utils}/__init__.py | 0
.../kubernetes/utils/test_k8s_resource_iterator.py | 0
.../cncf/kubernetes/utils/test_pod_manager.py | 2 +-
providers/cohere/tests/conftest.py | 13 -
.../cohere/tests/provider_tests/cohere/__init__.py | 16 -
.../tests/provider_tests/cohere/hooks/__init__.py | 16 -
.../provider_tests/cohere/operators/__init__.py | 16 -
.../tests/system}/__init__.py | 0
.../tests/unit}/__init__.py | 0
.../cohere/tests/unit/cohere}/__init__.py | 0
.../cohere/tests/unit/cohere/hooks}/__init__.py | 0
.../cohere/hooks/test_cohere.py | 0
.../tests/unit/cohere/operators}/__init__.py | 0
.../cohere/operators/test_embedding.py | 0
providers/common/compat/tests/conftest.py | 13 -
.../tests/provider_tests/common/compat/__init__.py | 16 -
.../common/compat/lineage/__init__.py | 16 -
.../common/compat/openlineage/__init__.py | 16 -
.../common/compat/openlineage/utils/__init__.py | 16 -
.../common/compat/security/__init__.py | 16 -
.../compat/tests/unit}/__init__.py | 0
.../compat/tests/unit/common}/__init__.py | 0
.../compat/tests/unit/common/compat}/__init__.py | 0
.../tests/unit/common/compat/lineage}/__init__.py | 0
.../common/compat/lineage/test_hook.py | 0
.../unit/common/compat/openlineage}/__init__.py | 0
.../common/compat/openlineage/test_facet.py | 0
.../common/compat/openlineage/utils}/__init__.py | 0
.../common/compat/openlineage/utils/test_spark.py | 0
.../common/compat/openlineage/utils/test_sql.py | 0
.../common/compat/openlineage/utils/test_utils.py | 0
.../tests/unit/common/compat/security}/__init__.py | 0
.../common/compat/security/test_permissions.py | 0
providers/common/io/tests/conftest.py | 13 -
.../io/tests/provider_tests/common/io/__init__.py | 16 -
.../provider_tests/common/io/assets/__init__.py | 16 -
.../provider_tests/common/io/operators/__init__.py | 16 -
.../provider_tests/common/io/xcom/__init__.py | 16 -
.../io/tests/system}/__init__.py | 0
.../io/tests/system/common}/__init__.py | 0
.../io/tests/unit}/__init__.py | 0
.../io/tests/unit/common}/__init__.py | 0
.../common/io/tests/unit/common/io}/__init__.py | 0
.../io/tests/unit/common/io/assets}/__init__.py | 0
.../common/io/assets/test_file.py | 0
.../io/tests/unit/common/io/operators}/__init__.py | 0
.../common/io/operators/test_file_transfer.py | 0
.../io/tests/unit/common/io/xcom}/__init__.py | 0
.../common/io/xcom/test_backend.py | 0
providers/common/sql/tests/conftest.py | 13 -
.../tests/provider_tests/common/sql/__init__.py | 16 -
.../provider_tests/common/sql/dialects/__init__.py | 16 -
.../provider_tests/common/sql/hooks/__init__.py | 16 -
.../common/sql/operators/__init__.py | 16 -
.../provider_tests/common/sql/sensors/__init__.py | 16 -
.../sql/tests/system}/__init__.py | 0
.../sql/tests/system/common}/__init__.py | 0
.../sql/tests/unit}/__init__.py | 0
.../sql/tests/unit/common}/__init__.py | 0
.../common/sql/tests/unit/common/sql}/__init__.py | 0
.../tests/unit/common/sql/dialects}/__init__.py | 0
.../common/sql/dialects/test_dialect.py | 0
.../sql/tests/unit/common/sql/hooks}/__init__.py | 0
.../common/sql/hooks/test_dbapi.py | 0
.../common/sql/hooks/test_handlers.py | 0
.../common/sql/hooks/test_sql.py | 0
.../common/sql/hooks/test_sqlparse.py | 0
.../tests/unit/common/sql/operators}/__init__.py | 0
.../common/sql/operators/test_sql.py | 0
.../common/sql/operators/test_sql_execute.py | 0
.../sql/tests/unit/common/sql/sensors}/__init__.py | 0
.../common/sql/sensors/test_sql.py | 0
providers/databricks/docs/index.rst | 2 +-
.../databricks/docs/operators/jobs_create.rst | 1 -
providers/databricks/docs/operators/submit_run.rst | 1 -
providers/databricks/docs/operators/task.rst | 7 -
.../providers/databricks/operators/databricks.py | 23 +-
.../databricks/operators/databricks_workflow.py | 10 -
providers/databricks/tests/conftest.py | 13 -
.../tests/provider_tests/databricks/__init__.py | 17 -
.../provider_tests/databricks/hooks/__init__.py | 17 -
.../databricks/operators/__init__.py | 17 -
.../provider_tests/databricks/plugins/__init__.py | 16 -
.../provider_tests/databricks/sensors/__init__.py | 16 -
.../provider_tests/databricks/triggers/__init__.py | 17 -
.../provider_tests/databricks/utils/__init__.py | 16 -
.../tests/system}/__init__.py | 0
.../tests/system/databricks/example_databricks.py | 23 -
.../tests/unit}/__init__.py | 0
.../databricks/tests/unit/databricks}/__init__.py | 0
.../tests/unit/databricks/hooks}/__init__.py | 0
.../databricks/hooks/test_databricks.py | 0
.../test_databricks_azure_workload_identity.py | 0
...est_databricks_azure_workload_identity_async.py | 0
.../databricks/hooks/test_databricks_base.py | 0
.../databricks/hooks/test_databricks_sql.py | 0
.../tests/unit/databricks/operators}/__init__.py | 0
.../databricks/operators/test_databricks.py | 102 +-
.../databricks/operators/test_databricks_copy.py | 0
.../databricks/operators/test_databricks_repos.py | 0
.../databricks/operators/test_databricks_sql.py | 0
.../operators/test_databricks_workflow.py | 12 -
.../tests/unit/databricks/plugins}/__init__.py | 0
.../databricks/plugins/test_databricks_workflow.py | 0
.../tests/unit/databricks/sensors}/__init__.py | 0
.../sensors/test_databricks_partition.py | 0
.../databricks/sensors/test_databricks_sql.py | 0
.../databricks/test_exceptions.py | 0
.../tests/unit/databricks/triggers}/__init__.py | 0
.../databricks/triggers/test_databricks.py | 0
.../tests/unit/databricks/utils}/__init__.py | 0
.../databricks/utils/test_databricks.py | 0
providers/datadog/tests/conftest.py | 13 -
.../tests/provider_tests/datadog/__init__.py | 17 -
.../tests/provider_tests/datadog/hooks/__init__.py | 17 -
.../provider_tests/datadog/sensors/__init__.py | 17 -
.../tests/unit}/__init__.py | 0
.../datadog/tests/unit/datadog}/__init__.py | 0
.../datadog/tests/unit/datadog/hooks}/__init__.py | 0
.../datadog/hooks/test_datadog.py | 0
.../tests/unit/datadog/sensors}/__init__.py | 0
.../datadog/sensors/test_datadog.py | 0
providers/dbt/cloud/tests/conftest.py | 13 -
.../tests/provider_tests/dbt/cloud/__init__.py | 16 -
.../provider_tests/dbt/cloud/hooks/__init__.py | 16 -
.../provider_tests/dbt/cloud/operators/__init__.py | 16 -
.../provider_tests/dbt/cloud/sensors/__init__.py | 16 -
.../provider_tests/dbt/cloud/test_data/__init__.py | 16 -
.../provider_tests/dbt/cloud/triggers/__init__.py | 16 -
.../provider_tests/dbt/cloud/utils/__init__.py | 16 -
providers/{ => dbt/cloud/tests/system}/__init__.py | 0
.../{ => dbt/cloud/tests/system/dbt}/__init__.py | 0
providers/{ => dbt/cloud/tests/unit}/__init__.py | 0
.../{ => dbt/cloud/tests/unit/dbt}/__init__.py | 0
.../dbt/cloud/tests/unit/dbt/cloud}/__init__.py | 0
.../cloud/tests/unit/dbt/cloud/hooks}/__init__.py | 0
.../dbt/cloud/hooks/test_dbt.py | 0
.../tests/unit/dbt/cloud/operators}/__init__.py | 0
.../dbt/cloud/operators/test_dbt.py | 2 +-
.../tests/unit/dbt/cloud/sensors}/__init__.py | 0
.../dbt/cloud/sensors/test_dbt.py | 0
.../tests/unit/dbt/cloud/test_data}/__init__.py | 0
.../dbt/cloud/test_data/catalog.json | 0
.../dbt/cloud/test_data/job_run.json | 0
.../dbt/cloud/test_data/manifest.json | 0
.../dbt/cloud/test_data/run_results.json | 0
.../tests/unit/dbt/cloud/triggers}/__init__.py | 0
.../dbt/cloud/triggers/test_dbt.py | 0
.../cloud/tests/unit/dbt/cloud/utils}/__init__.py | 0
.../dbt/cloud/utils/test_openlineage.py | 0
providers/dingding/tests/conftest.py | 13 -
.../tests/provider_tests/dingding/__init__.py | 17 -
.../provider_tests/dingding/hooks/__init__.py | 17 -
.../provider_tests/dingding/operators/__init__.py | 17 -
providers/{ => dingding/tests/system}/__init__.py | 0
providers/{ => dingding/tests/unit}/__init__.py | 0
.../dingding/tests/unit/dingding}/__init__.py | 0
.../tests/unit/dingding/hooks}/__init__.py | 0
.../dingding/hooks/test_dingding.py | 0
.../tests/unit/dingding/operators}/__init__.py | 0
.../dingding/operators/test_dingding.py | 0
providers/discord/tests/conftest.py | 13 -
.../tests/provider_tests/discord/__init__.py | 17 -
.../tests/provider_tests/discord/hooks/__init__.py | 17 -
.../discord/notifications/__init__.py | 16 -
.../provider_tests/discord/operators/__init__.py | 17 -
providers/{ => discord/tests/unit}/__init__.py | 0
.../discord/tests/unit/discord}/__init__.py | 0
.../discord/tests/unit/discord/hooks}/__init__.py | 0
.../discord/hooks/test_discord_webhook.py | 0
.../tests/unit/discord/notifications}/__init__.py | 0
.../discord/notifications/test_discord.py | 0
.../tests/unit/discord/operators}/__init__.py | 0
.../discord/operators/test_discord_webhook.py | 0
providers/docker/tests/conftest.py | 10 -
.../docker/tests/provider_tests/docker/__init__.py | 17 -
.../provider_tests/docker/decorators/__init__.py | 16 -
.../tests/provider_tests/docker/hooks/__init__.py | 17 -
.../provider_tests/docker/operators/__init__.py | 17 -
providers/{ => docker/tests/system}/__init__.py | 0
.../system/docker/example_docker_copy_data.py | 6 +-
providers/{ => docker/tests/unit}/__init__.py | 0
.../docker/tests/unit/docker}/__init__.py | 0
.../{provider_tests => unit}/docker/conftest.py | 0
.../tests/unit/docker/decorators}/__init__.py | 0
.../docker/decorators/test_docker.py | 0
.../docker/tests/unit/docker/hooks}/__init__.py | 0
.../docker/hooks/test_docker.py | 0
.../tests/unit/docker/operators}/__init__.py | 0
.../docker/operators/test_docker.py | 0
.../docker/operators/test_docker_swarm.py | 0
.../docker/test_exceptions.py | 0
providers/edge/README.rst | 6 +-
providers/edge/docs/changelog.rst | 45 +
providers/edge/docs/edge_executor.rst | 1 -
providers/edge/docs/install_on_windows.rst | 2 +-
providers/edge/provider.yaml | 2 +-
providers/edge/pyproject.toml | 6 +-
.../edge/src/airflow/providers/edge/__init__.py | 2 +-
.../src/airflow/providers/edge/cli/edge_command.py | 153 +-
.../edge/example_dags/integration_test.py | 3 +-
.../airflow/providers/edge/get_provider_info.py | 2 +-
.../airflow/providers/edge/models/edge_worker.py | 10 +-
.../providers/edge/plugins/edge_executor_plugin.py | 27 +
.../edge/plugins/templates/edge_worker_hosts.html | 4 +-
.../providers/edge/worker_api/routes/worker.py | 1 +
providers/edge/tests/conftest.py | 13 -
.../edge/tests/provider_tests/edge/__init__.py | 16 -
.../edge/tests/provider_tests/edge/cli/__init__.py | 17 -
.../provider_tests/edge/executors/__init__.py | 16 -
.../tests/provider_tests/edge/models/__init__.py | 17 -
.../tests/provider_tests/edge/plugins/__init__.py | 17 -
.../provider_tests/edge/worker_api/__init__.py | 17 -
.../edge/worker_api/routes/__init__.py | 17 -
providers/{ => edge/tests/unit}/__init__.py | 0
.../edge/tests/unit/edge}/__init__.py | 0
.../edge/tests/unit/edge/cli}/__init__.py | 0
.../edge/cli/test_api_client.py | 0
.../edge/cli/test_edge_command.py | 44 +-
.../edge/tests/unit/edge/executors}/__init__.py | 0
.../edge/executors/test_edge_executor.py | 0
.../edge/tests/unit/edge/models}/__init__.py | 0
.../edge/tests/unit/edge/plugins}/__init__.py | 0
.../edge/plugins/test_edge_executor_plugin.py | 31 +
.../edge/tests/unit/edge/worker_api}/__init__.py | 0
.../tests/unit/edge/worker_api/routes}/__init__.py | 0
.../edge/worker_api/routes/test_health.py | 0
.../edge/worker_api/routes/test_logs.py | 0
.../edge/worker_api/routes/test_worker.py | 0
.../providers/elasticsearch/hooks/elasticsearch.py | 2 +-
providers/elasticsearch/tests/conftest.py | 13 -
.../tests/provider_tests/elasticsearch/__init__.py | 17 -
.../provider_tests/elasticsearch/hooks/__init__.py | 17 -
.../provider_tests/elasticsearch/log/__init__.py | 16 -
.../{ => elasticsearch/tests/system}/__init__.py | 0
.../{ => elasticsearch/tests/unit}/__init__.py | 0
.../tests/unit/elasticsearch}/__init__.py | 0
.../tests/unit/elasticsearch/hooks}/__init__.py | 0
.../elasticsearch/hooks/test_elasticsearch.py | 0
.../tests/unit/elasticsearch/log}/__init__.py | 0
.../elasticsearch/log/elasticmock/__init__.py | 2 +-
.../log/elasticmock/fake_elasticsearch.py | 2 +-
.../log/elasticmock/utilities/__init__.py | 0
.../elasticsearch/log/test_es_json_formatter.py | 0
.../elasticsearch/log/test_es_response.py | 0
.../elasticsearch/log/test_es_task_handler.py | 4 +-
providers/exasol/tests/conftest.py | 13 -
.../exasol/tests/provider_tests/exasol/__init__.py | 17 -
.../tests/provider_tests/exasol/hooks/__init__.py | 17 -
.../provider_tests/exasol/operators/__init__.py | 17 -
providers/{ => exasol/tests/unit}/__init__.py | 0
.../exasol/tests/unit/exasol}/__init__.py | 0
.../exasol/tests/unit/exasol/hooks}/__init__.py | 0
.../exasol/hooks/test_exasol.py | 0
.../exasol/hooks/test_sql.py | 0
.../tests/unit/exasol/operators}/__init__.py | 0
.../exasol/operators/test_exasol.py | 0
.../exasol/operators/test_exasol_sql.py | 0
providers/fab/docs/changelog.rst | 52 +-
.../providers/3rd-party-licenses/LICENSES-ui.txt | 89 +
.../airflow/providers/fab/www/package-lock.json | 7 +-
.../airflowDefaultTheme.feec4a4075c2f3d6ae01.css | 33 +
.../airflowDefaultTheme.feec4a4075c2f3d6ae01.js | 1 +
.../providers/fab/www/static/dist/d3-tip.js | 1 +
.../dist/loadingDots.48ab7d5b04e66f2686b0.css | 18 +
.../dist/loadingDots.48ab7d5b04e66f2686b0.js | 1 +
.../www/static/dist/main.b585926afc96bd076c4f.css | 18 +
.../www/static/dist/main.b585926afc96bd076c4f.js | 2 +
.../dist/main.b585926afc96bd076c4f.js.LICENSE.txt | 0
.../providers/fab/www/static/dist/manifest.json | 34 +
.../dist/materialIcons.57390fa60d8f61175334.css | 18 +
.../dist/materialIcons.57390fa60d8f61175334.js | 1 +
.../www/static/dist/moment.4d28b37c229bdfc54575.js | 2 +
.../moment.4d28b37c229bdfc54575.js.LICENSE.txt | 11 +
.../fab/www/static/dist/oss-licenses.json | 29 +
.../airflow/providers/fab/www/webpack.config.js | 19 +-
providers/fab/tests/conftest.py | 13 -
providers/fab/tests/provider_tests/fab/__init__.py | 17 -
.../provider_tests/fab/auth_manager/__init__.py | 17 -
.../fab/auth_manager/api/__init__.py | 17 -
.../fab/auth_manager/api/auth/__init__.py | 16 -
.../fab/auth_manager/api/auth/backend/__init__.py | 16 -
.../fab/auth_manager/api_endpoints/__init__.py | 16 -
.../fab/auth_manager/cli_commands/__init__.py | 16 -
.../fab/auth_manager/models/__init__.py | 17 -
.../fab/auth_manager/schemas/__init__.py | 17 -
.../fab/auth_manager/security_manager/__init__.py | 16 -
.../fab/tests/provider_tests/fab/www/__init__.py | 17 -
.../tests/provider_tests/fab/www/views/__init__.py | 17 -
providers/{ => fab/tests/unit}/__init__.py | 0
.../fab/tests/unit/fab}/__init__.py | 0
.../fab/tests/unit/fab/auth_manager}/__init__.py | 0
.../tests/unit/fab/auth_manager/api}/__init__.py | 0
.../unit/fab/auth_manager/api/auth}/__init__.py | 0
.../fab/auth_manager/api/auth/backend}/__init__.py | 0
.../api/auth/backend/test_basic_auth.py | 0
.../api/auth/backend/test_kerberos_auth.py | 0
.../auth_manager/api/auth/backend/test_session.py | 0
.../fab/auth_manager/api_endpoints}/__init__.py | 0
.../api_endpoints/api_connexion_utils.py | 1 -
.../api_endpoints/remote_user_api_auth_backend.py | 0
.../api_endpoints/test_asset_endpoint.py | 2 +-
.../fab/auth_manager/api_endpoints/test_auth.py | 0
.../fab/auth_manager/api_endpoints/test_cors.py | 0
.../api_endpoints/test_dag_endpoint.py | 2 +-
.../api_endpoints/test_dag_run_endpoint.py | 2 +-
.../api_endpoints/test_dag_source_endpoint.py | 2 +-
.../api_endpoints/test_dag_warning_endpoint.py | 2 +-
.../api_endpoints/test_event_log_endpoint.py | 2 +-
.../api_endpoints/test_import_error_endpoint.py | 2 +-
.../test_role_and_permission_endpoint.py | 2 +-
.../api_endpoints/test_task_instance_endpoint.py | 2 +-
.../api_endpoints/test_user_endpoint.py | 2 +-
.../api_endpoints/test_variable_endpoint.py | 2 +-
.../api_endpoints/test_xcom_endpoint.py | 2 +-
.../fab/auth_manager/cli_commands}/__init__.py | 0
.../auth_manager/cli_commands/test_db_command.py | 0
.../auth_manager/cli_commands/test_definition.py | 0
.../auth_manager/cli_commands/test_role_command.py | 0
.../cli_commands/test_sync_perm_command.py | 0
.../auth_manager/cli_commands/test_user_command.py | 0
.../fab/auth_manager/cli_commands/test_utils.py | 0
.../fab/auth_manager/conftest.py | 2 +-
.../unit/fab/auth_manager/models}/__init__.py | 0
.../fab/auth_manager/models/test_anonymous_user.py | 0
.../fab/auth_manager/models/test_db.py | 2 +-
.../unit/fab/auth_manager/schemas}/__init__.py | 0
.../schemas/test_role_and_permission_schema.py | 2 +-
.../fab/auth_manager/schemas/test_user_schema.py | 2 +-
.../fab/auth_manager/security_manager}/__init__.py | 0
.../security_manager/test_constants.py | 0
.../auth_manager/security_manager/test_override.py | 0
.../fab/auth_manager/test_fab_auth_manager.py | 2 +-
.../fab/auth_manager/test_models.py | 0
.../fab/auth_manager/test_security.py | 2 +-
.../fab/auth_manager/views/__init__.py | 0
.../fab/auth_manager/views/test_permissions.py | 4 +-
.../fab/auth_manager/views/test_roles_list.py | 4 +-
.../fab/auth_manager/views/test_user.py | 4 +-
.../fab/auth_manager/views/test_user_edit.py | 4 +-
.../fab/auth_manager/views/test_user_stats.py | 4 +-
.../fab/tests/unit/fab/www}/__init__.py | 0
.../fab/tests/unit/fab/www/views}/__init__.py | 0
.../fab/www/views/conftest.py | 2 +-
.../fab/www/views/test_views_acl.py | 617 +++-
.../fab/www/views/test_views_custom_user_views.py | 2 +-
providers/facebook/tests/conftest.py | 13 -
.../tests/provider_tests/facebook/__init__.py | 16 -
.../tests/provider_tests/facebook/ads/__init__.py | 16 -
.../provider_tests/facebook/ads/hooks/__init__.py | 16 -
providers/{ => facebook/tests/unit}/__init__.py | 0
.../facebook/tests/unit/facebook}/__init__.py | 0
.../facebook/tests/unit/facebook/ads}/__init__.py | 0
.../tests/unit/facebook/ads/hooks}/__init__.py | 0
.../facebook/ads/hooks/test_ads.py | 0
providers/ftp/tests/conftest.py | 13 -
providers/ftp/tests/provider_tests/ftp/__init__.py | 17 -
.../ftp/tests/provider_tests/ftp/hooks/__init__.py | 17 -
.../tests/provider_tests/ftp/operators/__init__.py | 16 -
.../tests/provider_tests/ftp/sensors/__init__.py | 17 -
providers/{ => ftp/tests/system}/__init__.py | 0
providers/{ => ftp/tests/unit}/__init__.py | 0
.../ftp/tests/unit/ftp}/__init__.py | 0
.../ftp/tests/unit/ftp/hooks}/__init__.py | 0
.../{provider_tests => unit}/ftp/hooks/test_ftp.py | 0
.../ftp/tests/unit/ftp/operators}/__init__.py | 0
.../ftp/operators/test_ftp.py | 0
.../ftp/tests/unit/ftp/sensors}/__init__.py | 0
.../ftp/sensors/test_ftp.py | 0
providers/github/tests/conftest.py | 13 -
.../github/tests/provider_tests/github/__init__.py | 16 -
.../tests/provider_tests/github/hooks/__init__.py | 16 -
.../provider_tests/github/operators/__init__.py | 16 -
.../provider_tests/github/sensors/__init__.py | 16 -
providers/{ => github/tests/system}/__init__.py | 0
.../github/tests/system/github/example_github.py | 3 +-
providers/{ => github/tests/unit}/__init__.py | 0
.../github/tests/unit/github}/__init__.py | 0
.../github/tests/unit/github/hooks}/__init__.py | 0
.../github/hooks/test_github.py | 0
.../tests/unit/github/operators}/__init__.py | 0
.../github/operators/test_github.py | 0
.../github/tests/unit/github/sensors}/__init__.py | 0
.../github/sensors/test_github.py | 0
providers/google/README.rst | 1 +
providers/google/docs/example-dags.rst | 12 +-
providers/google/docs/operators/cloud/bigquery.rst | 67 +-
providers/google/docs/operators/cloud/dataplex.rst | 112 +
providers/google/docs/operators/cloud/index.rst | 2 +-
providers/google/docs/operators/cloud/looker.rst | 4 +-
.../google/docs/operators/cloud/managed_kafka.rst | 126 +
.../operators/marketing_platform/display_video.rst | 20 +-
.../operators/transfer/facebook_ads_to_gcs.rst | 2 +-
.../docs/operators/transfer/presto_to_gcs.rst | 14 +-
.../docs/operators/transfer/salesforce_to_gcs.rst | 2 +-
.../google/docs/sensors/google-cloud-tasks.rst | 2 +-
providers/google/provider.yaml | 15 +
providers/google/pyproject.toml | 4 +-
.../providers/google/cloud/hooks/bigquery.py | 76 +-
.../providers/google/cloud/hooks/dataplex.py | 419 ++-
.../providers/google/cloud/hooks/managed_kafka.py | 482 +++
.../providers/google/cloud/links/dataplex.py | 25 +
.../providers/google/cloud/links/managed_kafka.py | 104 +
.../google/cloud/log/stackdriver_task_handler.py | 7 +-
.../providers/google/cloud/operators/bigquery.py | 189 +-
.../providers/google/cloud/operators/dataplex.py | 721 +++-
.../google/cloud/operators/managed_kafka.py | 788 +++++
.../airflow/providers/google/get_provider_info.py | 24 +-
.../marketing_platform/example_dags/__init__.py | 16 -
providers/google/tests/conftest.py | 13 -
providers/google/tests/deprecations_ignore.yml | 125 +
.../{ => google/tests/integration}/__init__.py | 0
.../google/tests/integration/google}/__init__.py | 0
.../tests/integration/google/cloud}/__init__.py | 0
.../google/cloud/transfers}/__init__.py | 0
.../cloud/transfers/test_bigquery_to_mssql.py | 0
.../google/cloud/transfers/test_mssql_to_gcs.py | 0
.../google/cloud/transfers/test_trino_to_gcs.py | 0
.../google/tests/provider_tests/google/__init__.py | 16 -
.../tests/provider_tests/google/ads/__init__.py | 16 -
.../provider_tests/google/ads/hooks/__init__.py | 16 -
.../google/ads/operators/__init__.py | 16 -
.../google/ads/transfers/__init__.py | 16 -
.../tests/provider_tests/google/assets/__init__.py | 16 -
.../tests/provider_tests/google/cloud/__init__.py | 16 -
.../google/cloud/_internal_client/__init__.py | 16 -
.../provider_tests/google/cloud/hooks/__init__.py | 16 -
.../google/cloud/hooks/vertex_ai/__init__.py | 16 -
.../provider_tests/google/cloud/links/__init__.py | 16 -
.../provider_tests/google/cloud/log/__init__.py | 16 -
.../google/cloud/openlineage/__init__.py | 16 -
.../google/cloud/operators/__init__.py | 16 -
.../google/cloud/operators/source/__init__.py | 16 -
.../operators/source/source_prefix/__init__.py | 16 -
.../google/cloud/operators/vertex_ai/__init__.py | 16 -
.../google/cloud/secrets/__init__.py | 16 -
.../google/cloud/sensors/__init__.py | 16 -
.../google/cloud/transfers/__init__.py | 16 -
.../transfers/test_facebook_ads_to_gcs_system.py | 76 -
.../transfers/test_salesforce_to_gcs_system.py | 48 -
.../google/cloud/triggers/__init__.py | 16 -
.../provider_tests/google/cloud/utils/__init__.py | 17 -
.../tests/provider_tests/google/common/__init__.py | 16 -
.../google/common/auth_backend/__init__.py | 16 -
.../provider_tests/google/common/hooks/__init__.py | 16 -
.../provider_tests/google/common/utils/__init__.py | 16 -
.../provider_tests/google/firebase/__init__.py | 16 -
.../google/firebase/hooks/__init__.py | 16 -
.../google/firebase/operators/__init__.py | 16 -
.../provider_tests/google/leveldb/__init__.py | 17 -
.../google/leveldb/hooks/__init__.py | 17 -
.../google/leveldb/operators/__init__.py | 17 -
.../google/marketing_platform/__init__.py | 16 -
.../google/marketing_platform/hooks/__init__.py | 16 -
.../google/marketing_platform/links/__init__.py | 17 -
.../marketing_platform/operators/__init__.py | 16 -
.../operators/test_display_video_system.py | 68 -
.../google/marketing_platform/sensors/__init__.py | 16 -
.../tests/provider_tests/google/suite/__init__.py | 17 -
.../provider_tests/google/suite/hooks/__init__.py | 17 -
.../google/suite/operators/__init__.py | 17 -
.../google/suite/sensors/__init__.py | 17 -
.../google/suite/transfers/__init__.py | 16 -
providers/{ => google/tests/system}/__init__.py | 0
providers/google/tests/system/google/README.md | 26 +-
.../google/tests/system/google/ads/example_ads.py | 3 +-
.../cloud/azure/example_azure_fileshare_to_gcs.py | 3 +-
.../google/cloud/bigquery/example_bigquery_dts.py | 26 +-
.../google/cloud/bigquery/example_bigquery_jobs.py | 13 +-
.../cloud/bigquery/example_bigquery_operations.py | 76 +-
.../example_bigquery_operations_location.py | 90 -
.../cloud/bigquery/example_bigquery_queries.py | 19 +-
.../bigquery/example_bigquery_queries_async.py | 12 +-
.../bigquery/example_bigquery_queries_location.py | 238 --
.../cloud/bigquery/example_bigquery_sensors.py | 14 +-
.../cloud/bigquery/example_bigquery_tables.py | 56 +-
.../cloud/bigquery/example_bigquery_to_bigquery.py | 24 +-
.../cloud/bigquery/example_bigquery_to_gcs.py | 26 +-
.../bigquery/example_bigquery_to_gcs_async.py | 117 -
.../cloud/bigquery/example_bigquery_to_mssql.py | 15 +-
.../cloud/bigquery/example_bigquery_to_mysql.py | 15 +-
.../cloud/bigquery/example_bigquery_to_postgres.py | 16 +-
.../cloud/bigquery/example_bigquery_transfer.py | 29 +-
.../cloud/bigquery/example_bigquery_value_check.py | 9 +-
.../google/cloud/bigtable/example_bigtable.py | 4 +-
.../cloud/cloud_batch/example_cloud_batch.py | 4 +-
.../cloud/cloud_build/example_cloud_build.py | 2 +-
.../cloud_build/example_cloud_build_trigger.py | 2 +-
.../cloud/cloud_functions/example_functions.py | 3 +-
.../example_cloud_memorystore_memcached.py | 3 +-
.../example_cloud_memorystore_redis.py | 4 +-
.../google/cloud/cloud_run/example_cloud_run.py | 5 +-
.../cloud/cloud_run/example_cloud_run_service.py | 5 +-
.../google/cloud/cloud_sql/example_cloud_sql.py | 3 +-
.../cloud/cloud_sql/example_cloud_sql_query.py | 4 +-
.../cloud/cloud_sql/example_cloud_sql_query_iam.py | 2 +-
.../cloud/cloud_sql/example_cloud_sql_query_ssl.py | 2 +-
.../system/google/cloud/compute/example_compute.py | 3 +-
.../google/cloud/compute/example_compute_igm.py | 3 +-
.../google/cloud/compute/example_compute_ssh.py | 3 +-
.../cloud/compute/example_compute_ssh_os_login.py | 3 +-
.../cloud/compute/example_compute_ssh_parallel.py | 3 +-
.../example_dlp_deidentify_content.py | 4 +-
.../data_loss_prevention/example_dlp_info_types.py | 6 +-
.../example_dlp_inspect_template.py | 4 +-
.../cloud/data_loss_prevention/example_dlp_job.py | 4 +-
.../example_dlp_job_trigger.py | 3 +-
.../cloud/dataflow/example_dataflow_native_java.py | 34 +-
.../dataflow/example_dataflow_native_python.py | 32 +-
.../cloud/dataflow/example_dataflow_template.py | 3 +-
.../google/cloud/dataflow/example_dataflow_yaml.py | 20 +-
.../google/cloud/dataform/example_dataform.py | 4 +-
.../google/cloud/datafusion/example_datafusion.py | 3 +-
.../google/cloud/dataplex/example_dataplex.py | 3 +-
.../cloud/dataplex/example_dataplex_catalog.py | 99 +-
.../google/cloud/dataplex/example_dataplex_dp.py | 22 +-
.../google/cloud/dataplex/example_dataplex_dq.py | 22 +-
.../google/cloud/dataprep/example_dataprep.py | 3 +-
.../cloud/dataproc/example_dataproc_batch.py | 4 +-
.../dataproc/example_dataproc_batch_deferrable.py | 4 +-
.../dataproc/example_dataproc_batch_persistent.py | 4 +-
...proc_cluster_create_existing_stopped_cluster.py | 4 +-
.../example_dataproc_cluster_deferrable.py | 4 +-
.../dataproc/example_dataproc_cluster_diagnose.py | 4 +-
.../dataproc/example_dataproc_cluster_generator.py | 4 +-
.../example_dataproc_cluster_start_stop.py | 4 +-
.../dataproc/example_dataproc_cluster_update.py | 4 +-
.../cloud/dataproc/example_dataproc_flink.py | 4 +-
.../google/cloud/dataproc/example_dataproc_gke.py | 4 +-
.../cloud/dataproc/example_dataproc_hadoop.py | 4 +-
.../google/cloud/dataproc/example_dataproc_hive.py | 4 +-
.../google/cloud/dataproc/example_dataproc_pig.py | 4 +-
.../cloud/dataproc/example_dataproc_presto.py | 4 +-
.../cloud/dataproc/example_dataproc_pyspark.py | 4 +-
.../cloud/dataproc/example_dataproc_spark.py | 4 +-
.../cloud/dataproc/example_dataproc_spark_async.py | 4 +-
.../dataproc/example_dataproc_spark_deferrable.py | 4 +-
.../cloud/dataproc/example_dataproc_spark_sql.py | 4 +-
.../cloud/dataproc/example_dataproc_sparkr.py | 4 +-
.../cloud/dataproc/example_dataproc_trino.py | 4 +-
.../cloud/dataproc/example_dataproc_workflow.py | 3 +-
.../example_dataproc_workflow_deferrable.py | 3 +-
.../example_dataproc_metastore.py | 4 +-
.../example_dataproc_metastore_backup.py | 3 +-
...ple_dataproc_metastore_hive_partition_sensor.py | 3 +-
.../cloud/datastore/example_datastore_commit.py | 3 +-
.../cloud/datastore/example_datastore_query.py | 3 +-
.../cloud/datastore/example_datastore_rollback.py | 3 +-
.../system/google/cloud/gcs/example_firestore.py | 12 +-
.../system/google/cloud/gcs/example_gcs_acl.py | 3 +-
.../google/cloud/gcs/example_gcs_copy_delete.py | 5 +-
.../system/google/cloud/gcs/example_gcs_sensor.py | 3 +-
.../google/cloud/gcs/example_gcs_to_bigquery.py | 5 +-
.../cloud/gcs/example_gcs_to_bigquery_async.py | 5 +-
.../system/google/cloud/gcs/example_gcs_to_gcs.py | 5 +-
.../google/cloud/gcs/example_gcs_to_gdrive.py | 3 +-
.../system/google/cloud/gcs/example_gcs_to_sftp.py | 5 +-
.../google/cloud/gcs/example_gcs_transform.py | 5 +-
.../cloud/gcs/example_gcs_transform_timespan.py | 5 +-
.../cloud/gcs/example_gcs_upload_download.py | 5 +-
.../google/cloud/gcs/example_gdrive_to_gcs.py | 3 +-
.../google/cloud/gcs/example_mssql_to_gcs.py | 4 +-
.../google/cloud/gcs/example_mysql_to_gcs.py | 2 +-
.../google/cloud/gcs/example_oracle_to_gcs.py | 3 +-
.../google/cloud/gcs}/example_presto_to_gcs.py | 72 +-
.../system/google/cloud/gcs/example_s3_to_gcs.py | 5 +-
.../google/cloud/gcs}/example_salesforce_to_gcs.py | 92 +-
.../system/google/cloud/gcs/example_sftp_to_gcs.py | 5 +-
.../google/cloud/gcs/example_trino_to_gcs.py | 38 +-
.../kubernetes_engine/example_kubernetes_engine.py | 3 +-
.../example_kubernetes_engine_async.py | 3 +-
.../cloud/life_sciences/example_life_sciences.py | 3 +-
.../tests/system/google/cloud/looker}/__init__.py | 0
.../system/google/cloud/looker}/example_looker.py | 33 +-
.../system/google/cloud/managed_kafka}/__init__.py | 0
.../managed_kafka/example_managed_kafka_cluster.py | 140 +
.../managed_kafka/example_managed_kafka_topic.py | 172 +
.../google/cloud/ml_engine/example_mlengine.py | 7 +-
.../natural_language/example_natural_language.py | 3 +-
.../system/google/cloud/spanner/example_spanner.py | 3 +-
.../cloud/speech_to_text/example_speech_to_text.py | 4 +-
.../cloud/stackdriver/example_stackdriver.py | 3 +-
.../example_cloud_storage_transfer_service_aws.py | 3 +-
.../system/google/cloud/tasks/example_queue.py | 20 +-
.../system/google/cloud/tasks/example_tasks.py | 7 +-
.../cloud/text_to_speech/example_text_to_speech.py | 3 +-
.../transfers}/example_facebook_ads_to_gcs.py | 77 +-
.../google/cloud/transfers/example_gcs_to_sftp.py | 3 +-
.../cloud/transfers/example_gdrive_to_local.py | 3 +-
.../translate_speech/example_translate_speech.py | 3 +-
...ample_vertex_ai_auto_ml_forecasting_training.py | 7 +-
...ple_vertex_ai_auto_ml_image_object_detection.py | 5 +-
.../example_vertex_ai_auto_ml_image_training.py | 5 +-
.../example_vertex_ai_auto_ml_tabular_training.py | 7 +-
.../example_vertex_ai_auto_ml_video_tracking.py | 5 +-
.../example_vertex_ai_auto_ml_video_training.py | 5 +-
.../example_vertex_ai_batch_prediction_job.py | 7 +-
.../example_vertex_ai_custom_container.py | 7 +-
.../vertex_ai/example_vertex_ai_custom_job.py | 7 +-
.../example_vertex_ai_custom_job_python_package.py | 7 +-
.../cloud/vertex_ai/example_vertex_ai_dataset.py | 7 +-
.../cloud/vertex_ai/example_vertex_ai_endpoint.py | 5 +-
.../example_vertex_ai_hyperparameter_tuning_job.py | 3 +-
.../vertex_ai/example_vertex_ai_model_service.py | 7 +-
.../vertex_ai/example_vertex_ai_pipeline_job.py | 7 +-
.../example_video_intelligence.py | 3 +-
.../cloud/vision/example_vision_annotate_image.py | 2 +-
.../cloud/vision/example_vision_autogenerated.py | 2 +-
.../google/cloud/vision/example_vision_explicit.py | 2 +-
.../google/cloud/workflows/example_workflows.py | 3 +-
providers/google/tests/system/google/conftest.py | 2 +-
.../datacatalog/example_datacatalog_entries.py | 4 +-
.../example_datacatalog_search_catalog.py | 4 +-
.../example_datacatalog_tag_templates.py | 4 +-
.../google/datacatalog/example_datacatalog_tags.py | 4 +-
.../marketing_platform/example_analytics_admin.py | 5 +-
.../marketing_platform/example_campaign_manager.py | 4 +-
.../marketing_platform}/example_display_video.py | 61 +-
providers/{ => google/tests/unit}/__init__.py | 0
.../google/tests/unit/google}/__init__.py | 0
.../google/tests/unit/google/ads}/__init__.py | 0
.../tests/unit/google/ads/hooks}/__init__.py | 0
.../google/ads/hooks/test_ads.py | 0
.../tests/unit/google/ads/operators}/__init__.py | 0
.../google/ads/operators/test_ads.py | 0
.../tests/unit/google/ads/transfers}/__init__.py | 0
.../google/ads/transfers/test_ads_to_gcs.py | 2 +-
.../google/tests/unit/google/assets}/__init__.py | 0
.../google/assets/test_bigquery.py | 0
.../google/assets/test_gcs.py | 0
.../google/tests/unit/google/cloud}/__init__.py | 0
.../google/cloud/_internal_client}/__init__.py | 0
.../_internal_client/test_secret_manager_client.py | 0
.../tests/unit/google/cloud/hooks}/__init__.py | 0
.../google/cloud/hooks/test_alloy_db.py | 0
.../google/cloud/hooks/test_automl.py | 2 +-
.../google/cloud/hooks/test_bigquery.py | 167 +-
.../google/cloud/hooks/test_bigquery_dts.py | 2 +-
.../google/cloud/hooks/test_bigquery_system.py | 2 +-
.../google/cloud/hooks/test_bigtable.py | 2 +-
.../google/cloud/hooks/test_cloud_batch.py | 2 +-
.../google/cloud/hooks/test_cloud_build.py | 2 +-
.../google/cloud/hooks/test_cloud_composer.py | 0
.../google/cloud/hooks/test_cloud_memorystore.py | 2 +-
.../google/cloud/hooks/test_cloud_run.py | 2 +-
.../google/cloud/hooks/test_cloud_sql.py | 5 +-
.../hooks/test_cloud_storage_transfer_service.py | 2 +-
.../test_cloud_storage_transfer_service_async.py | 2 +-
.../google/cloud/hooks/test_compute.py | 2 +-
.../google/cloud/hooks/test_compute_ssh.py | 0
.../google/cloud/hooks/test_datacatalog.py | 2 +-
.../google/cloud/hooks/test_dataflow.py | 0
.../google/cloud/hooks/test_dataform.py | 2 +-
.../google/cloud/hooks/test_datafusion.py | 2 +-
.../google/cloud/hooks/test_dataplex.py | 176 +-
.../google/cloud/hooks/test_dataprep.py | 0
.../google/cloud/hooks/test_dataproc.py | 0
.../google/cloud/hooks/test_dataproc_metastore.py | 2 +-
.../google/cloud/hooks/test_datastore.py | 0
.../google/cloud/hooks/test_dlp.py | 2 +-
.../google/cloud/hooks/test_functions.py | 2 +-
.../google/cloud/hooks/test_gcs.py | 2 +-
.../google/cloud/hooks/test_gdm.py | 0
.../google/cloud/hooks/test_kms.py | 0
.../google/cloud/hooks/test_kms_system.py | 2 +-
.../google/cloud/hooks/test_kubernetes_engine.py | 2 +-
.../google/cloud/hooks/test_life_sciences.py | 2 +-
.../google/cloud/hooks/test_looker.py | 0
.../unit/google/cloud/hooks/test_managed_kafka.py | 537 +++
.../google/cloud/hooks/test_mlengine.py | 2 +-
.../google/cloud/hooks/test_natural_language.py | 2 +-
.../google/cloud/hooks/test_os_login.py | 2 +-
.../google/cloud/hooks/test_pubsub.py | 0
.../google/cloud/hooks/test_secret_manager.py | 2 +-
.../cloud/hooks/test_secret_manager_system.py | 0
.../google/cloud/hooks/test_spanner.py | 2 +-
.../google/cloud/hooks/test_speech_to_text.py | 2 +-
.../google/cloud/hooks/test_stackdriver.py | 0
.../google/cloud/hooks/test_tasks.py | 2 +-
.../google/cloud/hooks/test_text_to_speech.py | 2 +-
.../google/cloud/hooks/test_translate.py | 2 +-
.../google/cloud/hooks/test_video_intelligence.py | 2 +-
.../google/cloud/hooks/test_vision.py | 2 +-
.../google/cloud/hooks/test_workflows.py | 0
.../unit/google/cloud/hooks/vertex_ai}/__init__.py | 0
.../google/cloud/hooks/vertex_ai/test_auto_ml.py | 2 +-
.../hooks/vertex_ai/test_batch_prediction_job.py | 2 +-
.../cloud/hooks/vertex_ai/test_custom_job.py | 2 +-
.../google/cloud/hooks/vertex_ai/test_dataset.py | 2 +-
.../cloud/hooks/vertex_ai/test_endpoint_service.py | 2 +-
.../cloud/hooks/vertex_ai/test_feature_store.py | 2 +-
.../cloud/hooks/vertex_ai/test_generative_model.py | 2 +-
.../vertex_ai/test_hyperparameter_tuning_job.py | 2 +-
.../cloud/hooks/vertex_ai/test_model_service.py | 2 +-
.../cloud/hooks/vertex_ai/test_pipeline_job.py | 2 +-
.../hooks/vertex_ai/test_prediction_service.py | 2 +-
.../tests/unit/google/cloud/links}/__init__.py | 0
.../google/cloud/links/test_alloy_db.py | 0
.../google/cloud/links/test_dataplex.py | 28 +
.../unit/google/cloud/links/test_managed_kafka.py | 127 +
.../google/cloud/links/test_translate.py | 0
.../tests/unit/google/cloud/log}/__init__.py | 0
.../google/cloud/log/test_gcs_task_handler.py | 0
.../cloud/log/test_gcs_task_handler_system.py | 2 +-
.../cloud/log/test_stackdriver_task_handler.py | 0
.../log/test_stackdriver_task_handler_system.py | 2 +-
.../unit/google/cloud/openlineage}/__init__.py | 0
.../google/cloud/openlineage/test_facets.py | 0
.../google/cloud/openlineage/test_mixins.py | 0
.../google/cloud/openlineage/test_utils.py | 4 +-
.../tests/unit/google/cloud/operators}/__init__.py | 0
.../google/cloud/operators/source}/__init__.py | 0
.../operators/source/source_prefix}/__init__.py | 0
.../google/cloud/operators/test_alloy_db.py | 0
.../google/cloud/operators/test_automl.py | 0
.../google/cloud/operators/test_bigquery.py | 466 ++-
.../google/cloud/operators/test_bigquery_dts.py | 0
.../google/cloud/operators/test_bigtable.py | 0
.../google/cloud/operators/test_cloud_base.py | 0
.../google/cloud/operators/test_cloud_batch.py | 0
.../google/cloud/operators/test_cloud_build.py | 0
.../google/cloud/operators/test_cloud_composer.py | 0
.../cloud/operators/test_cloud_memorystore.py | 0
.../google/cloud/operators/test_cloud_run.py | 0
.../google/cloud/operators/test_cloud_sql.py | 0
.../test_cloud_storage_transfer_service.py | 0
.../google/cloud/operators/test_compute.py | 0
.../google/cloud/operators/test_datacatalog.py | 0
.../google/cloud/operators/test_dataflow.py | 0
.../google/cloud/operators/test_dataform.py | 0
.../google/cloud/operators/test_datafusion.py | 0
.../google/cloud/operators/test_datapipeline.py | 0
.../google/cloud/operators/test_dataplex.py | 243 ++
.../google/cloud/operators/test_dataprep.py | 0
.../google/cloud/operators/test_dataprep_system.py | 2 +-
.../google/cloud/operators/test_dataproc.py | 112 +-
.../cloud/operators/test_dataproc_metastore.py | 0
.../google/cloud/operators/test_datastore.py | 0
.../cloud/operators/test_datastore_system.py | 2 +-
.../google/cloud/operators/test_dlp.py | 0
.../google/cloud/operators/test_functions.py | 0
.../google/cloud/operators/test_gcs.py | 0
.../cloud/operators/test_kubernetes_engine.py | 0
.../google/cloud/operators/test_life_sciences.py | 0
.../google/cloud/operators/test_looker.py | 0
.../google/cloud/operators/test_managed_kafka.py | 395 +++
.../google/cloud/operators/test_mlengine.py | 0
.../cloud/operators/test_natural_language.py | 0
.../google/cloud/operators/test_pubsub.py | 0
.../google/cloud/operators/test_spanner.py | 0
.../google/cloud/operators/test_speech_to_text.py | 0
.../google/cloud/operators/test_stackdriver.py | 0
.../google/cloud/operators/test_tasks.py | 0
.../google/cloud/operators/test_text_to_speech.py | 0
.../google/cloud/operators/test_translate.py | 0
.../cloud/operators/test_translate_speech.py | 0
.../google/cloud/operators/test_vertex_ai.py | 0
.../cloud/operators/test_video_intelligence.py | 0
.../google/cloud/operators/test_vision.py | 0
.../google/cloud/operators/test_workflows.py | 0
.../google/cloud/operators/vertex_ai}/__init__.py | 0
.../operators/vertex_ai/test_feature_store.py | 0
.../operators/vertex_ai/test_generative_model.py | 0
.../tests/unit/google/cloud/secrets}/__init__.py | 0
.../google/cloud/secrets/test_secret_manager.py | 0
.../cloud/secrets/test_secret_manager_system.py | 2 +-
.../tests/unit/google/cloud/sensors}/__init__.py | 0
.../google/cloud/sensors/test_bigquery.py | 0
.../google/cloud/sensors/test_bigquery_dts.py | 0
.../google/cloud/sensors/test_bigtable.py | 0
.../google/cloud/sensors/test_cloud_composer.py | 0
.../sensors/test_cloud_storage_transfer_service.py | 0
.../google/cloud/sensors/test_dataflow.py | 0
.../google/cloud/sensors/test_dataform.py | 0
.../google/cloud/sensors/test_datafusion.py | 0
.../google/cloud/sensors/test_dataplex.py | 0
.../google/cloud/sensors/test_dataprep.py | 0
.../google/cloud/sensors/test_dataproc.py | 0
.../cloud/sensors/test_dataproc_metastore.py | 0
.../google/cloud/sensors/test_gcs.py | 0
.../google/cloud/sensors/test_looker.py | 0
.../google/cloud/sensors/test_pubsub.py | 0
.../google/cloud/sensors/test_tasks.py | 0
.../google/cloud/sensors/test_vertex_ai.py | 0
.../google/cloud/sensors/test_workflows.py | 0
.../tests/unit/google/cloud/transfers}/__init__.py | 0
.../google/cloud/transfers/test_adls_to_gcs.py | 0
.../cloud/transfers/test_azure_blob_to_gcs.py | 0
.../cloud/transfers/test_azure_fileshare_to_gcs.py | 0
.../cloud/transfers/test_bigquery_to_bigquery.py | 0
.../google/cloud/transfers/test_bigquery_to_gcs.py | 0
.../cloud/transfers/test_bigquery_to_mssql.py | 0
.../cloud/transfers/test_bigquery_to_mysql.py | 0
.../cloud/transfers/test_bigquery_to_postgres.py | 0
.../google/cloud/transfers/test_calendar_to_gcs.py | 0
.../cloud/transfers/test_cassandra_to_gcs.py | 0
.../cloud/transfers/test_facebook_ads_to_gcs.py | 0
.../google/cloud/transfers/test_gcs_to_bigquery.py | 0
.../google/cloud/transfers/test_gcs_to_gcs.py | 0
.../google/cloud/transfers/test_gcs_to_local.py | 0
.../google/cloud/transfers/test_gcs_to_sftp.py | 0
.../google/cloud/transfers/test_gdrive_to_gcs.py | 0
.../google/cloud/transfers/test_gdrive_to_local.py | 0
.../google/cloud/transfers/test_local_to_gcs.py | 0
.../google/cloud/transfers/test_mssql_to_gcs.py | 0
.../google/cloud/transfers/test_mysql_to_gcs.py | 0
.../google/cloud/transfers/test_oracle_to_gcs.py | 0
.../google/cloud/transfers/test_postgres_to_gcs.py | 0
.../google/cloud/transfers/test_s3_to_gcs.py | 0
.../cloud/transfers/test_salesforce_to_gcs.py | 0
.../google/cloud/transfers/test_sftp_to_gcs.py | 0
.../google/cloud/transfers/test_sheets_to_gcs.py | 0
.../google/cloud/transfers/test_sql_to_gcs.py | 0
.../google/cloud/transfers/test_trino_to_gcs.py | 0
.../tests/unit/google/cloud/triggers}/__init__.py | 0
.../google/cloud/triggers/test_bigquery.py | 0
.../google/cloud/triggers/test_bigquery_dts.py | 0
.../google/cloud/triggers/test_cloud_batch.py | 0
.../google/cloud/triggers/test_cloud_build.py | 0
.../google/cloud/triggers/test_cloud_composer.py | 0
.../google/cloud/triggers/test_cloud_run.py | 0
.../google/cloud/triggers/test_cloud_sql.py | 0
.../test_cloud_storage_transfer_service.py | 0
.../google/cloud/triggers/test_dataflow.py | 0
.../google/cloud/triggers/test_datafusion.py | 0
.../google/cloud/triggers/test_dataplex.py | 0
.../google/cloud/triggers/test_dataproc.py | 0
.../google/cloud/triggers/test_gcs.py | 0
.../cloud/triggers/test_kubernetes_engine.py | 0
.../google/cloud/triggers/test_mlengine.py | 0
.../google/cloud/triggers/test_pubsub.py | 0
.../google/cloud/triggers/test_vertex_ai.py | 2 +-
.../tests/unit/google/cloud/utils}/__init__.py | 0
.../google/cloud/utils/airflow_util.py | 0
.../google/cloud/utils/base_gcp_mock.py | 0
.../google/cloud/utils/copy_job_details.json | 0
.../google/cloud/utils/extract_job_details.json | 0
.../google/cloud/utils/gcp_authenticator.py | 0
.../google/cloud/utils/load_job_details.json | 0
.../google/cloud/utils/out_table_details.json | 0
.../google/cloud/utils/query_job_details.json | 0
.../google/cloud/utils/script_job_details.json | 0
.../google/cloud/utils/table_details.json | 0
.../cloud/utils/test_credentials_provider.py | 0
.../unit/google/cloud}/utils/test_dataform.py | 0
.../google/cloud/utils/test_datafusion.py | 0
.../google/cloud/utils/test_dataproc.py | 0
.../cloud/utils/test_external_token_supplier.py | 0
.../google/cloud/utils/test_field_sanitizer.py | 0
.../google/cloud/utils/test_field_validator.py | 0
.../google/cloud/utils/test_helpers.py | 0
.../cloud/utils/test_mlengine_operator_utils.py | 0
.../utils/test_mlengine_prediction_summary.py | 0
.../google/tests/unit/google/common}/__init__.py | 0
.../unit/google/common/auth_backend}/__init__.py | 0
.../common/auth_backend/test_google_openid.py | 0
.../tests/unit/google/common/hooks}/__init__.py | 0
.../google/common/hooks/test_base_google.py | 2 +-
.../google/common/hooks/test_discovery_api.py | 0
.../google/common/test_deprecated.py | 0
.../tests/unit/google/common/utils}/__init__.py | 0
.../common/utils/test_id_token_credentials.py | 0
.../google/tests/unit/google/firebase}/__init__.py | 0
.../tests/unit/google/firebase/hooks}/__init__.py | 0
.../google/firebase/hooks/test_firestore.py | 2 +-
.../unit/google/firebase/operators}/__init__.py | 0
.../google/firebase/operators/test_firestore.py | 0
.../google/tests/unit/google/leveldb}/__init__.py | 0
.../tests/unit/google/leveldb/hooks}/__init__.py | 0
.../google/leveldb/hooks/test_leveldb.py | 0
.../unit/google/leveldb/operators}/__init__.py | 0
.../google/leveldb/operators/test_leveldb.py | 0
.../unit/google/marketing_platform}/__init__.py | 0
.../google/marketing_platform/hooks}/__init__.py | 0
.../hooks/test_analytics_admin.py | 2 +-
.../hooks/test_campaign_manager.py | 2 +-
.../marketing_platform/hooks/test_display_video.py | 2 +-
.../marketing_platform/hooks/test_search_ads.py | 2 +-
.../google/marketing_platform/links}/__init__.py | 0
.../links/test_analytics_admin.py | 0
.../marketing_platform/operators}/__init__.py | 0
.../operators/test_analytics_admin.py | 0
.../operators/test_campaign_manager.py | 0
.../operators/test_display_video.py | 0
.../operators/test_search_ads.py | 0
.../google/marketing_platform/sensors}/__init__.py | 0
.../sensors/test_campaign_manager.py | 0
.../sensors/test_display_video.py | 0
.../google/tests/unit/google/suite}/__init__.py | 0
.../tests/unit/google/suite/hooks}/__init__.py | 0
.../google/suite/hooks/test_calendar.py | 2 +-
.../google/suite/hooks/test_drive.py | 2 +-
.../google/suite/hooks/test_sheets.py | 2 +-
.../tests/unit/google/suite/operators}/__init__.py | 0
.../google/suite/operators/test_sheets.py | 0
.../tests/unit/google/suite/sensors}/__init__.py | 0
.../google/suite/sensors/test_drive.py | 0
.../tests/unit/google/suite/transfers}/__init__.py | 0
.../google/suite/transfers/test_gcs_to_gdrive.py | 0
.../google/suite/transfers/test_gcs_to_sheets.py | 0
.../google/suite/transfers/test_local_to_drive.py | 0
.../google/suite/transfers/test_sql_to_sheets.py | 0
.../google/test_go_module.py | 0
providers/grpc/tests/conftest.py | 13 -
.../grpc/tests/provider_tests/grpc/__init__.py | 17 -
.../tests/provider_tests/grpc/hooks/__init__.py | 17 -
.../provider_tests/grpc/operators/__init__.py | 17 -
providers/{ => grpc/tests/unit}/__init__.py | 0
.../grpc/tests/unit/grpc}/__init__.py | 0
.../grpc/tests/unit/grpc/hooks}/__init__.py | 0
.../grpc/hooks/test_grpc.py | 0
.../grpc/tests/unit/grpc/operators}/__init__.py | 0
.../grpc/operators/test_grpc.py | 0
providers/hashicorp/tests/conftest.py | 13 -
.../tests/provider_tests/hashicorp/__init__.py | 16 -
.../hashicorp/_internal_client/__init__.py | 16 -
.../provider_tests/hashicorp/hooks/__init__.py | 16 -
.../provider_tests/hashicorp/secrets/__init__.py | 16 -
providers/{ => hashicorp/tests/unit}/__init__.py | 0
.../hashicorp/tests/unit/hashicorp}/__init__.py | 0
.../unit/hashicorp/_internal_client}/__init__.py | 0
.../_internal_client/test_vault_client.py | 0
.../tests/unit/hashicorp/hooks}/__init__.py | 0
.../hashicorp/hooks/test_vault.py | 0
.../tests/unit/hashicorp/secrets}/__init__.py | 0
.../hashicorp/secrets/test_vault.py | 0
providers/http/README.rst | 6 +-
providers/http/docs/index.rst | 2 +-
providers/http/provider.yaml | 1 +
providers/http/pyproject.toml | 6 +-
.../http/src/airflow/providers/http/__init__.py | 2 +-
.../airflow/providers/http/get_provider_info.py | 1 +
.../http/src/airflow/providers/http/hooks/http.py | 127 +-
providers/http/tests/conftest.py | 13 -
.../http/tests/provider_tests/http/__init__.py | 17 -
.../tests/provider_tests/http/hooks/__init__.py | 17 -
.../provider_tests/http/operators/__init__.py | 17 -
.../tests/provider_tests/http/sensors/__init__.py | 17 -
.../tests/provider_tests/http/triggers/__init__.py | 17 -
providers/{ => http/tests/system}/__init__.py | 0
providers/{ => http/tests/unit}/__init__.py | 0
.../http/tests/unit/http}/__init__.py | 0
.../http/tests/unit/http/hooks}/__init__.py | 0
.../http/hooks/test_http.py | 150 +-
.../http/tests/unit/http/operators}/__init__.py | 0
.../http/operators/test_http.py | 0
.../http/tests/unit/http/sensors}/__init__.py | 0
.../http/sensors/test_http.py | 18 +-
.../http/tests/unit/http/triggers}/__init__.py | 0
.../http/triggers/test_http.py | 0
providers/imap/tests/conftest.py | 13 -
.../imap/tests/provider_tests/imap/__init__.py | 17 -
.../tests/provider_tests/imap/hooks/__init__.py | 17 -
.../tests/provider_tests/imap/sensors/__init__.py | 17 -
providers/{ => imap/tests/unit}/__init__.py | 0
.../imap/tests/unit/imap}/__init__.py | 0
.../imap/tests/unit/imap/hooks}/__init__.py | 0
.../imap/hooks/test_imap.py | 0
.../imap/tests/unit/imap/sensors}/__init__.py | 0
.../imap/sensors/test_imap_attachment.py | 0
providers/influxdb/tests/conftest.py | 13 -
.../tests/provider_tests/influxdb/__init__.py | 16 -
.../provider_tests/influxdb/hooks/__init__.py | 16 -
.../provider_tests/influxdb/operators/__init__.py | 16 -
providers/{ => influxdb/tests/system}/__init__.py | 0
providers/{ => influxdb/tests/unit}/__init__.py | 0
.../influxdb/tests/unit/influxdb}/__init__.py | 0
.../tests/unit/influxdb/hooks}/__init__.py | 0
.../influxdb/hooks/test_influxdb.py | 0
.../tests/unit/influxdb/operators}/__init__.py | 0
.../influxdb/operators/test_influxdb.py | 0
providers/jdbc/tests/conftest.py | 13 -
.../jdbc/tests/provider_tests/jdbc/__init__.py | 17 -
.../tests/provider_tests/jdbc/hooks/__init__.py | 17 -
providers/{ => jdbc/tests/system}/__init__.py | 0
providers/{ => jdbc/tests/unit}/__init__.py | 0
.../jdbc/tests/unit/jdbc}/__init__.py | 0
.../jdbc/tests/unit/jdbc/hooks}/__init__.py | 0
.../jdbc/hooks/test_jdbc.py | 0
providers/jenkins/tests/conftest.py | 13 -
.../tests/provider_tests/jenkins/__init__.py | 17 -
.../tests/provider_tests/jenkins/hooks/__init__.py | 16 -
.../provider_tests/jenkins/operators/__init__.py | 17 -
.../provider_tests/jenkins/sensors/__init__.py | 17 -
providers/{ => jenkins/tests/system}/__init__.py | 0
providers/{ => jenkins/tests/unit}/__init__.py | 0
.../jenkins/tests/unit/jenkins}/__init__.py | 0
.../jenkins/tests/unit/jenkins/hooks}/__init__.py | 0
.../jenkins/hooks/test_jenkins.py | 0
.../tests/unit/jenkins/operators}/__init__.py | 0
.../jenkins/operators/test_jenkins_job_trigger.py | 0
.../tests/unit/jenkins/sensors}/__init__.py | 0
.../jenkins/sensors/test_jenkins.py | 0
providers/microsoft/azure/docs/index.rst | 2 +-
.../providers/microsoft/azure/hooks/msgraph.py | 2 +-
.../providers/microsoft/azure/operators/msgraph.py | 53 +-
.../providers/microsoft/azure/sensors/msgraph.py | 21 +-
providers/microsoft/azure/tests/conftest.py | 127 +-
.../provider_tests/microsoft/azure/__init__.py | 17 -
.../provider_tests/microsoft/azure/fs/__init__.py | 17 -
.../microsoft/azure/hooks/__init__.py | 17 -
.../provider_tests/microsoft/azure/log/__init__.py | 16 -
.../microsoft/azure/operators/__init__.py | 17 -
.../microsoft/azure/resources/__init__.py | 16 -
.../microsoft/azure/secrets/__init__.py | 16 -
.../microsoft/azure/sensors/__init__.py | 17 -
.../microsoft/azure/transfers/__init__.py | 16 -
.../microsoft/azure/triggers/__init__.py | 16 -
.../{ => microsoft/azure/tests/system}/__init__.py | 0
.../azure/tests/system/microsoft}/__init__.py | 0
.../system/microsoft/azure/example_s3_to_wasb.py | 3 +-
.../{ => microsoft/azure/tests/unit}/__init__.py | 0
.../azure/tests/unit/microsoft}/__init__.py | 0
.../azure/tests/unit/microsoft/azure}/__init__.py | 0
.../microsoft/azure/base.py | 2 +-
.../tests/unit/microsoft/azure/fs}/__init__.py | 0
.../microsoft/azure/fs/test_adls.py | 0
.../tests/unit/microsoft/azure/hooks}/__init__.py | 0
.../microsoft/azure/hooks/test_adx.py | 0
.../microsoft/azure/hooks/test_asb.py | 0
.../microsoft/azure/hooks/test_base_azure.py | 0
.../microsoft/azure/hooks/test_batch.py | 0
.../azure/hooks/test_container_instance.py | 0
.../azure/hooks/test_container_registry.py | 0
.../microsoft/azure/hooks/test_container_volume.py | 0
.../microsoft/azure/hooks/test_cosmos.py | 0
.../microsoft/azure/hooks/test_data_factory.py | 0
.../microsoft/azure/hooks/test_data_lake.py | 0
.../microsoft/azure/hooks/test_fileshare.py | 0
.../microsoft/azure/hooks/test_msgraph.py | 41 +-
.../microsoft/azure/hooks/test_powerbi.py | 0
.../microsoft/azure/hooks/test_synapse.py | 0
.../microsoft/azure/hooks/test_synapse_pipeline.py | 0
.../microsoft/azure/hooks/test_wasb.py | 0
.../tests/unit/microsoft/azure/log}/__init__.py | 0
.../microsoft/azure/log/test_wasb_task_handler.py | 0
.../unit/microsoft/azure/operators}/__init__.py | 0
.../microsoft/azure/operators/test_adls_create.py | 0
.../microsoft/azure/operators/test_adls_delete.py | 0
.../microsoft/azure/operators/test_adls_list.py | 0
.../microsoft/azure/operators/test_adx.py | 0
.../microsoft/azure/operators/test_asb.py | 0
.../microsoft/azure/operators/test_batch.py | 0
.../azure/operators/test_container_instances.py | 0
.../microsoft/azure/operators/test_cosmos.py | 0
.../microsoft/azure/operators/test_data_factory.py | 3 +-
.../microsoft/azure/operators/test_msgraph.py | 130 +-
.../microsoft/azure/operators/test_powerbi.py | 6 +-
.../microsoft/azure/operators/test_synapse.py | 2 +-
.../azure/operators/test_wasb_delete_blob.py | 0
.../unit/microsoft/azure/resources}/__init__.py | 0
.../microsoft/azure/resources/dummy.pdf | Bin
.../microsoft/azure/resources/next_users.json | 0
.../microsoft/azure/resources/status.json | 0
.../microsoft/azure/resources/users.json | 0
.../unit/microsoft/azure/secrets}/__init__.py | 0
.../microsoft/azure/secrets/test_key_vault.py | 0
.../unit/microsoft/azure/sensors}/__init__.py | 0
.../microsoft/azure/sensors/test_cosmos.py | 0
.../microsoft/azure/sensors/test_data_factory.py | 0
.../microsoft/azure/sensors/test_msgraph.py | 57 +-
.../microsoft/azure/sensors/test_wasb.py | 0
.../microsoft/azure/test_utils.py | 75 +
.../unit/microsoft/azure/transfers}/__init__.py | 0
.../azure/transfers/test_local_to_adls.py | 0
.../azure/transfers/test_local_to_wasb.py | 0
.../transfers/test_oracle_to_azure_data_lake.py | 0
.../microsoft/azure/transfers/test_s3_to_wasb.py | 0
.../microsoft/azure/transfers/test_sftp_to_wasb.py | 0
.../unit/microsoft/azure/triggers}/__init__.py | 0
.../microsoft/azure/triggers/test_data_factory.py | 0
.../microsoft/azure/triggers/test_msgraph.py | 34 +-
.../microsoft/azure/triggers/test_powerbi.py | 2 +-
.../microsoft/azure/triggers/test_wasb.py | 0
providers/microsoft/mssql/docs/index.rst | 2 +-
providers/microsoft/mssql/tests/conftest.py | 39 -
.../mssql/tests/integration}/__init__.py | 0
.../mssql/tests/integration/microsoft}/__init__.py | 0
.../tests/integration/microsoft/mssql}/__init__.py | 0
.../integration/microsoft/mssql/hooks}/__init__.py | 0
.../microsoft/mssql/hooks/test_mssql.py | 0
.../provider_tests/microsoft/mssql/__init__.py | 17 -
.../microsoft/mssql/dialects/__init__.py | 16 -
.../microsoft/mssql/hooks/__init__.py | 17 -
.../microsoft/mssql/resources/__init__.py | 17 -
.../{ => microsoft/mssql/tests/system}/__init__.py | 0
.../mssql/tests/system/microsoft}/__init__.py | 0
.../{ => microsoft/mssql/tests/unit}/__init__.py | 0
.../mssql/tests/unit/microsoft}/__init__.py | 0
.../mssql/tests/unit/microsoft/mssql}/__init__.py | 0
.../unit/microsoft/mssql/dialects}/__init__.py | 0
.../microsoft/mssql/dialects/test_mssql.py | 0
.../tests/unit/microsoft/mssql/hooks}/__init__.py | 0
.../microsoft/mssql/hooks/test_mssql.py | 6 +-
.../unit/microsoft/mssql/resources}/__init__.py | 0
.../microsoft/mssql/resources/replace.sql | 0
.../microsoft/mssql/test_utils.py} | 25 +-
providers/microsoft/psrp/tests/conftest.py | 13 -
.../provider_tests/microsoft/psrp/__init__.py | 17 -
.../microsoft/psrp/hooks/__init__.py | 17 -
.../microsoft/psrp/operators/__init__.py | 17 -
.../{ => microsoft/psrp/tests/unit}/__init__.py | 0
.../psrp/tests/unit/microsoft}/__init__.py | 0
.../psrp/tests/unit/microsoft/psrp}/__init__.py | 0
.../tests/unit/microsoft/psrp/hooks}/__init__.py | 0
.../microsoft/psrp/hooks/test_psrp.py | 0
.../unit/microsoft/psrp/operators}/__init__.py | 0
.../microsoft/psrp/operators/test_psrp.py | 0
providers/microsoft/winrm/docs/index.rst | 2 +-
providers/microsoft/winrm/tests/conftest.py | 13 -
.../provider_tests/microsoft/winrm/__init__.py | 17 -
.../microsoft/winrm/hooks/__init__.py | 17 -
.../microsoft/winrm/operators/__init__.py | 17 -
.../{ => microsoft/winrm/tests/system}/__init__.py | 0
.../winrm/tests/system/microsoft}/__init__.py | 0
.../{ => microsoft/winrm/tests/unit}/__init__.py | 0
.../winrm/tests/unit/microsoft}/__init__.py | 0
.../winrm/tests/unit/microsoft/winrm}/__init__.py | 0
.../tests/unit/microsoft/winrm/hooks}/__init__.py | 0
.../microsoft/winrm/hooks/test_winrm.py | 0
.../unit/microsoft/winrm/operators}/__init__.py | 0
.../microsoft/winrm/operators/test_winrm.py | 0
providers/mongo/tests/conftest.py | 13 -
.../{ => mongo/tests/integration}/__init__.py | 0
.../mongo/tests/integration/mongo}/__init__.py | 0
.../tests/integration/mongo/sensors}/__init__.py | 0
.../tests/integration/mongo/sensors/test_mongo.py | 0
.../mongo/tests/provider_tests/mongo/__init__.py | 17 -
.../tests/provider_tests/mongo/hooks/__init__.py | 17 -
.../tests/provider_tests/mongo/sensors/__init__.py | 17 -
providers/{ => mongo/tests/unit}/__init__.py | 0
.../mongo/tests/unit/mongo}/__init__.py | 0
.../mongo/tests/unit/mongo/hooks}/__init__.py | 0
.../mongo/hooks/test_mongo.py | 0
.../mongo/tests/unit/mongo/sensors}/__init__.py | 0
.../mongo/sensors/test_mongo.py | 0
providers/mysql/tests/conftest.py | 13 -
.../mysql/tests/provider_tests/mysql/__init__.py | 17 -
.../tests/provider_tests/mysql/assets/__init__.py | 16 -
.../tests/provider_tests/mysql/hooks/__init__.py | 17 -
.../provider_tests/mysql/transfers/__init__.py | 16 -
providers/{ => mysql/tests/system}/__init__.py | 0
providers/{ => mysql/tests/unit}/__init__.py | 0
.../mysql/tests/unit/mysql}/__init__.py | 0
.../mysql/tests/unit/mysql/assets}/__init__.py | 0
.../mysql/assets/test_mysql.py | 0
.../mysql/tests/unit/mysql/hooks}/__init__.py | 0
.../mysql/hooks/test_mysql.py | 0
.../mysql/hooks/test_mysql_connector_python.py | 0
.../mysql/tests/unit/mysql/transfers}/__init__.py | 0
.../mysql/transfers/test_presto_to_mysql.py | 0
.../mysql/transfers/test_s3_to_mysql.py | 0
.../mysql/transfers/test_trino_to_mysql.py | 0
.../mysql/transfers/test_vertica_to_mysql.py | 0
providers/neo4j/tests/conftest.py | 13 -
.../neo4j/tests/provider_tests/neo4j/__init__.py | 17 -
.../tests/provider_tests/neo4j/hooks/__init__.py | 17 -
.../provider_tests/neo4j/operators/__init__.py | 17 -
providers/{ => neo4j/tests/system}/__init__.py | 0
providers/{ => neo4j/tests/unit}/__init__.py | 0
.../neo4j/tests/unit/neo4j}/__init__.py | 0
.../neo4j/tests/unit/neo4j/hooks}/__init__.py | 0
.../neo4j/hooks/test_neo4j.py | 0
.../neo4j/tests/unit/neo4j/operators}/__init__.py | 0
.../neo4j/operators/test_neo4j.py | 0
providers/odbc/tests/conftest.py | 13 -
.../odbc/tests/provider_tests/odbc/__init__.py | 16 -
.../tests/provider_tests/odbc/hooks/__init__.py | 16 -
providers/{ => odbc/tests/system}/__init__.py | 0
providers/{ => odbc/tests/unit}/__init__.py | 0
.../odbc/tests/unit/odbc}/__init__.py | 0
.../odbc/tests/unit/odbc/hooks}/__init__.py | 0
.../odbc/hooks/test_odbc.py | 0
providers/openai/tests/conftest.py | 13 -
.../openai/tests/provider_tests/openai/__init__.py | 16 -
.../tests/provider_tests/openai/hooks/__init__.py | 16 -
.../provider_tests/openai/operators/__init__.py | 16 -
.../provider_tests/openai/triggers/__init__.py | 16 -
providers/{ => openai/tests/system}/__init__.py | 0
providers/{ => openai/tests/unit}/__init__.py | 0
.../openai/tests/unit/openai}/__init__.py | 0
.../openai/tests/unit/openai/hooks}/__init__.py | 0
.../openai/hooks/test_openai.py | 0
.../tests/unit/openai/operators}/__init__.py | 0
.../openai/operators/test_openai.py | 0
.../openai/test_exceptions.py | 0
.../openai/tests/unit/openai/triggers}/__init__.py | 0
.../openai/triggers/test_openai.py | 0
providers/openfaas/tests/conftest.py | 13 -
.../tests/provider_tests/openfaas/__init__.py | 17 -
.../provider_tests/openfaas/hooks/__init__.py | 17 -
providers/{ => openfaas/tests/unit}/__init__.py | 0
.../openfaas/tests/unit/openfaas}/__init__.py | 0
.../tests/unit/openfaas/hooks}/__init__.py | 0
.../openfaas/hooks/test_openfaas.py | 0
providers/openlineage/docs/guides/developer.rst | 6 +-
.../providers/openlineage/plugins/listener.py | 19 +-
providers/openlineage/tests/conftest.py | 13 -
.../tests/integration}/__init__.py | 0
.../tests/integration/openlineage}/__init__.py | 0
.../integration/openlineage/operators}/__init__.py | 0
.../tests/provider_tests/openlineage/__init__.py | 16 -
.../openlineage/extractors/__init__.py | 16 -
.../provider_tests/openlineage/plugins/__init__.py | 16 -
.../plugins/openlineage_configs/__init__.py | 16 -
.../provider_tests/openlineage/utils/__init__.py | 16 -
.../{ => openlineage/tests/system}/__init__.py | 0
.../tests/system/openlineage/conftest.py | 3 +-
.../system/openlineage/example_openlineage.py | 3 +-
.../example_openlineage_mapped_sensor.py | 3 +-
.../tests/system/openlineage/transport/variable.py | 3 +-
providers/{ => openlineage/tests/unit}/__init__.py | 0
.../tests/unit/openlineage}/__init__.py | 0
.../tests/unit/openlineage/extractors}/__init__.py | 0
.../openlineage/extractors/test_base.py | 2 +-
.../openlineage/extractors/test_bash.py | 0
.../openlineage/extractors/test_manager.py | 0
.../openlineage/extractors/test_python.py | 0
.../openlineage/log_config.py | 0
.../tests/unit/openlineage/plugins}/__init__.py | 0
.../plugins/openlineage_configs}/__init__.py | 0
.../plugins/openlineage_configs/http.yaml | 0
.../openlineage/plugins/test_adapter.py | 0
.../openlineage/plugins/test_execution.py | 2 -
.../openlineage/plugins/test_facets.py | 0
.../openlineage/plugins/test_listener.py | 0
.../openlineage/plugins/test_macros.py | 0
.../openlineage/plugins/test_openlineage.py | 0
.../openlineage/plugins/test_utils.py | 0
.../openlineage/test_conf.py | 0
.../openlineage/test_sqlparser.py | 0
.../tests/unit/openlineage/utils}/__init__.py | 0
.../openlineage/utils/custom_facet_fixture.py | 0
.../openlineage/utils/test_selective_enable.py | 0
.../openlineage/utils/test_spark.py | 0
.../openlineage/utils/test_sql.py | 0
.../openlineage/utils/test_utils.py | 20 +-
providers/opensearch/tests/conftest.py | 13 -
.../tests/provider_tests/opensearch/__init__.py | 16 -
.../provider_tests/opensearch/hooks/__init__.py | 16 -
.../provider_tests/opensearch/log/__init__.py | 16 -
.../opensearch/operators/__init__.py | 16 -
.../{ => opensearch/tests/system}/__init__.py | 0
providers/{ => opensearch/tests/unit}/__init__.py | 0
.../opensearch/tests/unit/opensearch}/__init__.py | 0
.../opensearch/conftest.py | 0
.../tests/unit/opensearch/hooks}/__init__.py | 0
.../opensearch/hooks/test_opensearch.py | 0
.../tests/unit/opensearch/log}/__init__.py | 0
.../opensearch/log/test_os_json_formatter.py | 0
.../opensearch/log/test_os_response.py | 0
.../opensearch/log/test_os_task_handler.py | 2 +-
.../tests/unit/opensearch/operators}/__init__.py | 0
.../opensearch/operators/test_opensearch.py | 0
providers/opsgenie/tests/conftest.py | 13 -
.../tests/provider_tests/opsgenie/__init__.py | 17 -
.../provider_tests/opsgenie/hooks/__init__.py | 17 -
.../opsgenie/notifications/__init__.py | 16 -
.../provider_tests/opsgenie/operators/__init__.py | 17 -
.../provider_tests/opsgenie/typing/__init__.py | 16 -
providers/{ => opsgenie/tests/system}/__init__.py | 0
providers/{ => opsgenie/tests/unit}/__init__.py | 0
.../opsgenie/tests/unit/opsgenie}/__init__.py | 0
.../tests/unit/opsgenie/hooks}/__init__.py | 0
.../opsgenie/hooks/test_opsgenie.py | 0
.../tests/unit/opsgenie/notifications}/__init__.py | 0
.../opsgenie/notifications/test_opsgenie.py | 0
.../tests/unit/opsgenie/operators}/__init__.py | 0
.../opsgenie/operators/test_opsgenie.py | 0
.../tests/unit/opsgenie/typing}/__init__.py | 0
.../opsgenie/typing/test_opsgenie.py | 0
providers/oracle/pyproject.toml | 2 +-
.../airflow/providers/oracle/get_provider_info.py | 2 +-
providers/oracle/tests/conftest.py | 13 -
.../oracle/tests/provider_tests/oracle/__init__.py | 17 -
.../tests/provider_tests/oracle/hooks/__init__.py | 17 -
.../provider_tests/oracle/operators/__init__.py | 16 -
.../provider_tests/oracle/transfers/__init__.py | 17 -
providers/{ => oracle/tests/system}/__init__.py | 0
providers/{ => oracle/tests/unit}/__init__.py | 0
.../oracle/tests/unit/oracle}/__init__.py | 0
.../oracle/tests/unit/oracle/hooks}/__init__.py | 0
.../oracle/hooks/test_oracle.py | 0
.../tests/unit/oracle/operators}/__init__.py | 0
.../oracle/operators/test_oracle.py | 0
.../tests/unit/oracle/transfers}/__init__.py | 0
.../oracle/transfers/test_oracle_to_oracle.py | 0
providers/pagerduty/tests/conftest.py | 13 -
.../tests/provider_tests/pagerduty/__init__.py | 17 -
.../provider_tests/pagerduty/hooks/__init__.py | 17 -
.../pagerduty/notifications/__init__.py | 16 -
providers/{ => pagerduty/tests/unit}/__init__.py | 0
.../pagerduty/tests/unit/pagerduty}/__init__.py | 0
.../tests/unit/pagerduty/hooks}/__init__.py | 0
.../pagerduty/hooks/test_pagerduty.py | 0
.../pagerduty/hooks/test_pagerduty_events.py | 0
.../unit/pagerduty/notifications}/__init__.py | 0
.../pagerduty/notifications/test_pagerduty.py | 0
providers/papermill/tests/conftest.py | 13 -
.../tests/provider_tests/papermill/__init__.py | 17 -
.../provider_tests/papermill/hooks/__init__.py | 16 -
.../provider_tests/papermill/operators/__init__.py | 17 -
providers/{ => papermill/tests/system}/__init__.py | 0
providers/{ => papermill/tests/unit}/__init__.py | 0
.../papermill/tests/unit/papermill}/__init__.py | 0
.../tests/unit/papermill/hooks}/__init__.py | 0
.../papermill/hooks/test_kernel.py | 0
.../tests/unit/papermill/operators}/__init__.py | 0
.../papermill/operators/test_papermill.py | 0
providers/pgvector/tests/conftest.py | 13 -
.../tests/provider_tests/pgvector/__init__.py | 16 -
.../provider_tests/pgvector/hooks/__init__.py | 16 -
.../provider_tests/pgvector/operators/__init__.py | 16 -
providers/{ => pgvector/tests/system}/__init__.py | 0
providers/{ => pgvector/tests/unit}/__init__.py | 0
.../pgvector/tests/unit/pgvector}/__init__.py | 0
.../tests/unit/pgvector/hooks}/__init__.py | 0
.../pgvector/hooks/test_pgvector.py | 0
.../tests/unit/pgvector/operators}/__init__.py | 0
.../pgvector/operators/test_pgvector.py | 0
providers/pinecone/tests/conftest.py | 13 -
.../tests/provider_tests/pinecone/__init__.py | 16 -
.../provider_tests/pinecone/hooks/__init__.py | 16 -
.../provider_tests/pinecone/operators/__init__.py | 16 -
providers/{ => pinecone/tests/system}/__init__.py | 0
providers/{ => pinecone/tests/unit}/__init__.py | 0
.../pinecone/tests/unit/pinecone}/__init__.py | 0
.../tests/unit/pinecone/hooks}/__init__.py | 0
.../pinecone/hooks/test_pinecone.py | 0
.../tests/unit/pinecone/operators}/__init__.py | 0
.../pinecone/operators/test_pinecone.py | 0
providers/postgres/tests/conftest.py | 13 -
.../tests/provider_tests/postgres/__init__.py | 17 -
.../provider_tests/postgres/assets/__init__.py | 16 -
.../provider_tests/postgres/dialects/__init__.py | 16 -
.../provider_tests/postgres/hooks/__init__.py | 17 -
providers/{ => postgres/tests/system}/__init__.py | 0
providers/{ => postgres/tests/unit}/__init__.py | 0
.../postgres/tests/unit/postgres}/__init__.py | 0
.../tests/unit/postgres/assets}/__init__.py | 0
.../postgres/assets/test_postgres.py | 0
.../tests/unit/postgres/dialects}/__init__.py | 0
.../postgres/dialects/test_postgres.py | 0
.../tests/unit/postgres/hooks}/__init__.py | 0
.../postgres/hooks/test_postgres.py | 0
providers/presto/tests/conftest.py | 13 -
.../presto/tests/provider_tests/presto/__init__.py | 17 -
.../tests/provider_tests/presto/hooks/__init__.py | 17 -
.../provider_tests/presto/transfers/__init__.py | 17 -
providers/{ => presto/tests/system}/__init__.py | 0
providers/{ => presto/tests/unit}/__init__.py | 0
.../presto/tests/unit/presto}/__init__.py | 0
.../presto/tests/unit/presto/hooks}/__init__.py | 0
.../presto/hooks/test_presto.py | 0
.../tests/unit/presto/transfers}/__init__.py | 0
.../presto/transfers/test_gcs_to_presto.py | 0
providers/pyproject.toml | 93 -
providers/qdrant/tests/conftest.py | 13 -
.../{ => qdrant/tests/integration}/__init__.py | 0
.../qdrant/tests/integration/qdrant}/__init__.py | 0
.../tests/integration/qdrant/hooks}/__init__.py | 0
.../tests/integration/qdrant/hooks/test_qdrant.py | 0
.../integration/qdrant/operators}/__init__.py | 0
.../qdrant/operators/test_qdrant_ingest.py | 0
.../qdrant/tests/provider_tests/qdrant/__init__.py | 16 -
.../tests/provider_tests/qdrant/hooks/__init__.py | 16 -
.../provider_tests/qdrant/operators/__init__.py | 16 -
providers/{ => qdrant/tests/system}/__init__.py | 0
providers/{ => qdrant/tests/unit}/__init__.py | 0
.../qdrant/tests/unit/qdrant}/__init__.py | 0
.../qdrant/tests/unit/qdrant/hooks}/__init__.py | 0
.../qdrant/hooks/test_qdrant.py | 0
.../tests/unit/qdrant/operators}/__init__.py | 0
.../qdrant/operators/test_qdrant.py | 0
providers/redis/tests/conftest.py | 13 -
.../{ => redis/tests/integration}/__init__.py | 0
.../redis/tests/integration/redis}/__init__.py | 0
.../tests/integration/redis/hooks}/__init__.py | 0
.../tests/integration/redis/hooks/test_redis.py | 0
.../tests/integration/redis/operators}/__init__.py | 0
.../redis/operators/test_redis_publish.py | 0
.../tests/integration/redis/sensors}/__init__.py | 0
.../integration/redis/sensors/test_redis_key.py | 0
.../redis/sensors/test_redis_pub_sub.py | 0
.../redis/tests/provider_tests/redis/__init__.py | 17 -
.../tests/provider_tests/redis/hooks/__init__.py | 17 -
.../tests/provider_tests/redis/log/__init__.py | 17 -
.../provider_tests/redis/operators/__init__.py | 17 -
.../tests/provider_tests/redis/sensors/__init__.py | 17 -
providers/{ => redis/tests/system}/__init__.py | 0
providers/{ => redis/tests/unit}/__init__.py | 0
.../redis/tests/unit/redis}/__init__.py | 0
.../redis/tests/unit/redis/hooks}/__init__.py | 0
.../redis/hooks/test_redis.py | 0
.../redis/tests/unit/redis/log}/__init__.py | 0
.../redis/log/test_redis_task_handler.py | 0
.../redis/tests/unit/redis/operators}/__init__.py | 0
.../redis/operators/test_redis_publish.py | 0
.../redis/tests/unit/redis/sensors}/__init__.py | 0
.../redis/sensors/test_redis_key.py | 0
.../redis/sensors/test_redis_pub_sub.py | 0
providers/salesforce/tests/conftest.py | 13 -
.../tests/provider_tests/salesforce/__init__.py | 17 -
.../provider_tests/salesforce/hooks/__init__.py | 17 -
.../salesforce/operators/__init__.py | 16 -
.../{ => salesforce/tests/system}/__init__.py | 0
providers/{ => salesforce/tests/unit}/__init__.py | 0
.../salesforce/tests/unit/salesforce}/__init__.py | 0
.../tests/unit/salesforce/hooks}/__init__.py | 0
.../salesforce/hooks/test_salesforce.py | 0
.../tests/unit/salesforce/operators}/__init__.py | 0
.../salesforce/operators/test_bulk.py | 0
.../operators/test_salesforce_apex_rest.py | 0
providers/samba/tests/conftest.py | 13 -
.../samba/tests/provider_tests/samba/__init__.py | 17 -
.../tests/provider_tests/samba/hooks/__init__.py | 17 -
.../provider_tests/samba/transfers/__init__.py | 17 -
providers/{ => samba/tests/system}/__init__.py | 0
.../tests/system/samba/example_gcs_to_samba.py | 3 +-
providers/{ => samba/tests/unit}/__init__.py | 0
.../samba/tests/unit/samba}/__init__.py | 0
.../samba/tests/unit/samba/hooks}/__init__.py | 0
.../samba/hooks/test_samba.py | 0
.../samba/tests/unit/samba/transfers}/__init__.py | 0
.../samba/transfers/test_gcs_to_samba.py | 0
providers/segment/tests/conftest.py | 13 -
providers/segment/tests/provider_tests/__init__.py | 17 -
.../tests/provider_tests/segment/__init__.py | 17 -
.../tests/provider_tests/segment/hooks/__init__.py | 17 -
.../provider_tests/segment/operators/__init__.py | 17 -
providers/{ => segment/tests/unit}/__init__.py | 0
.../segment/tests/unit/segment}/__init__.py | 0
.../segment/tests/unit/segment/hooks}/__init__.py | 0
.../segment/hooks/test_segment.py | 0
.../tests/unit/segment/operators}/__init__.py | 0
.../segment/operators/test_segment_track_event.py | 0
providers/sendgrid/tests/conftest.py | 13 -
.../sendgrid/tests/provider_tests/__init__.py | 17 -
.../tests/provider_tests/sendgrid/__init__.py | 16 -
.../provider_tests/sendgrid/utils/__init__.py | 16 -
providers/{ => sendgrid/tests/unit}/__init__.py | 0
.../sendgrid/tests/unit/sendgrid}/__init__.py | 0
.../tests/unit/sendgrid/utils}/__init__.py | 0
.../sendgrid/utils/test_emailer.py | 0
.../sftp/src/airflow/providers/sftp/hooks/sftp.py | 47 +-
providers/sftp/tests/conftest.py | 13 -
providers/sftp/tests/provider_tests/__init__.py | 17 -
.../sftp/tests/provider_tests/sftp/__init__.py | 16 -
.../provider_tests/sftp/decorators/__init__.py | 16 -
.../sftp/decorators/sensors/__init__.py | 16 -
.../tests/provider_tests/sftp/hooks/__init__.py | 16 -
.../provider_tests/sftp/operators/__init__.py | 16 -
.../tests/provider_tests/sftp/sensors/__init__.py | 16 -
.../tests/provider_tests/sftp/triggers/__init__.py | 16 -
providers/{ => sftp/tests/system}/__init__.py | 0
providers/{ => sftp/tests/unit}/__init__.py | 0
.../sftp/tests/unit/sftp}/__init__.py | 0
.../sftp/tests/unit/sftp/decorators}/__init__.py | 0
.../unit/sftp/decorators/sensors}/__init__.py | 0
.../sftp/decorators/sensors/test_sftp.py | 0
.../sftp/tests/unit/sftp/hooks}/__init__.py | 0
.../sftp/hooks/test_sftp.py | 1 +
.../sftp/tests/unit/sftp/operators}/__init__.py | 0
.../sftp/operators/test_sftp.py | 0
.../sftp/tests/unit/sftp/sensors}/__init__.py | 0
.../sftp/sensors/test_sftp.py | 0
.../sftp/tests/unit/sftp/triggers}/__init__.py | 0
.../sftp/triggers/test_sftp.py | 0
providers/singularity/tests/conftest.py | 13 -
.../singularity/tests/provider_tests/__init__.py | 17 -
.../tests/provider_tests/singularity/__init__.py | 17 -
.../singularity/operators/__init__.py | 17 -
.../{ => singularity/tests/system}/__init__.py | 0
providers/{ => singularity/tests/unit}/__init__.py | 0
.../tests/unit/singularity}/__init__.py | 0
.../tests/unit/singularity/operators}/__init__.py | 0
.../singularity/operators/test_singularity.py | 0
providers/slack/tests/conftest.py | 13 -
providers/slack/tests/provider_tests/__init__.py | 17 -
.../slack/tests/provider_tests/slack/__init__.py | 17 -
.../tests/provider_tests/slack/hooks/__init__.py | 17 -
.../provider_tests/slack/notifications/__init__.py | 16 -
.../provider_tests/slack/operators/__init__.py | 17 -
.../provider_tests/slack/transfers/__init__.py | 17 -
.../tests/provider_tests/slack/utils/__init__.py | 16 -
providers/{ => slack/tests/system}/__init__.py | 0
providers/{ => slack/tests/unit}/__init__.py | 0
.../slack/tests/unit/slack}/__init__.py | 0
.../slack/tests/unit/slack/hooks}/__init__.py | 0
.../slack/hooks/test_slack.py | 0
.../slack/hooks/test_slack_webhook.py | 0
.../tests/unit/slack/notifications}/__init__.py | 0
.../slack/notifications/test_slack.py | 0
.../slack/notifications/test_slack_webhook.py | 0
.../slack/tests/unit/slack/operators}/__init__.py | 0
.../slack/operators/test_slack.py | 0
.../slack/operators/test_slack_webhook.py | 0
.../slack/tests/unit/slack/transfers}/__init__.py | 0
.../slack/transfers/conftest.py | 0
.../slack/transfers/test_base_sql_to_slack.py | 0
.../slack/transfers/test_sql_to_slack.py | 0
.../slack/transfers/test_sql_to_slack_webhook.py | 0
.../slack/tests/unit/slack/utils}/__init__.py | 0
.../slack/utils/test_utils.py | 0
providers/smtp/tests/conftest.py | 13 -
providers/smtp/tests/provider_tests/__init__.py | 17 -
.../smtp/tests/provider_tests/smtp/__init__.py | 17 -
.../tests/provider_tests/smtp/hooks/__init__.py | 17 -
.../provider_tests/smtp/notifications/__init__.py | 16 -
.../provider_tests/smtp/operators/__init__.py | 17 -
providers/{ => smtp/tests/unit}/__init__.py | 0
.../smtp/tests/unit/smtp}/__init__.py | 0
.../smtp/tests/unit/smtp/hooks}/__init__.py | 0
.../smtp/hooks/test_smtp.py | 0
.../tests/unit/smtp/notifications}/__init__.py | 0
.../smtp/notifications/test_smtp.py | 0
.../smtp/tests/unit/smtp/operators}/__init__.py | 0
.../smtp/operators/test_smtp.py | 0
.../providers/snowflake/operators/snowflake.py | 7 +-
providers/snowflake/tests/conftest.py | 13 -
.../snowflake/tests/provider_tests/__init__.py | 17 -
.../tests/provider_tests/snowflake/__init__.py | 16 -
.../snowflake/decorators/__init__.py | 16 -
.../provider_tests/snowflake/hooks/__init__.py | 16 -
.../provider_tests/snowflake/operators/__init__.py | 16 -
.../provider_tests/snowflake/transfers/__init__.py | 16 -
.../provider_tests/snowflake/triggers/__init__.py | 16 -
.../provider_tests/snowflake/utils/__init__.py | 16 -
providers/{ => snowflake/tests/system}/__init__.py | 0
providers/{ => snowflake/tests/unit}/__init__.py | 0
.../snowflake/tests/unit/snowflake}/__init__.py | 0
.../tests/unit/snowflake/decorators}/__init__.py | 0
.../snowflake/decorators/test_snowpark.py | 0
.../tests/unit/snowflake/hooks}/__init__.py | 0
.../snowflake/hooks/test_snowflake.py | 0
.../snowflake/hooks/test_snowflake_sql_api.py | 0
.../snowflake/hooks/test_sql.py | 0
.../tests/unit/snowflake/operators}/__init__.py | 0
.../snowflake/operators/test_snowflake.py | 0
.../snowflake/operators/test_snowflake_sql.py | 0
.../snowflake/operators/test_snowpark.py | 0
.../tests/unit/snowflake/transfers}/__init__.py | 0
.../transfers/test_copy_into_snowflake.py | 0
.../tests/unit/snowflake/triggers}/__init__.py | 0
.../snowflake/triggers/test_snowflake.py | 0
.../tests/unit/snowflake/utils}/__init__.py | 0
.../snowflake/utils/test_common.py | 0
.../snowflake/utils/test_openlineage.py | 0
.../snowflake/utils/test_snowpark.py | 0
.../snowflake/utils/test_sql_api_generate_jwt.py | 0
providers/sqlite/tests/conftest.py | 13 -
providers/sqlite/tests/provider_tests/__init__.py | 17 -
.../sqlite/tests/provider_tests/sqlite/__init__.py | 17 -
.../tests/provider_tests/sqlite/hooks/__init__.py | 17 -
providers/{ => sqlite/tests/system}/__init__.py | 0
providers/{ => sqlite/tests/unit}/__init__.py | 0
.../sqlite/tests/unit/sqlite}/__init__.py | 0
.../sqlite/tests/unit/sqlite/hooks}/__init__.py | 0
.../sqlite/hooks/test_sqlite.py | 0
providers/src/README.md | 44 -
providers/src/airflow/__init__.py | 21 -
providers/src/airflow/providers/.gitignore | 1 -
providers/src/airflow/providers/__init__.py | 21 -
providers/ssh/tests/conftest.py | 13 -
providers/ssh/tests/provider_tests/__init__.py | 17 -
providers/ssh/tests/provider_tests/ssh/__init__.py | 17 -
.../ssh/tests/provider_tests/ssh/hooks/__init__.py | 17 -
.../tests/provider_tests/ssh/operators/__init__.py | 17 -
providers/{ => ssh/tests/unit}/__init__.py | 0
.../ssh/tests/unit/ssh}/__init__.py | 0
.../ssh/tests/unit/ssh/hooks}/__init__.py | 0
.../{provider_tests => unit}/ssh/hooks/test_ssh.py | 0
.../ssh/tests/unit/ssh/operators}/__init__.py | 0
.../ssh/operators/test_ssh.py | 0
.../providers/standard/operators/trigger_dagrun.py | 26 +-
.../providers/standard/triggers/external_task.py | 87 +-
.../airflow/providers/standard/triggers/file.py | 60 +-
providers/standard/tests/conftest.py | 13 -
.../standard/tests/provider_tests/__init__.py | 17 -
.../tests/provider_tests/standard/__init__.py | 16 -
.../provider_tests/standard/decorators/__init__.py | 16 -
.../provider_tests/standard/hooks/__init__.py | 16 -
.../provider_tests/standard/operators/__init__.py | 16 -
.../provider_tests/standard/sensors/__init__.py | 16 -
.../provider_tests/standard/triggers/__init__.py | 16 -
.../provider_tests/standard/utils/__init__.py | 16 -
providers/{ => standard/tests/unit}/__init__.py | 0
.../standard/tests/unit/standard}/__init__.py | 0
.../tests/unit/standard/decorators}/__init__.py | 0
.../standard/decorators/test_python.py | 2 +-
.../tests/unit/standard/hooks}/__init__.py | 0
.../standard/hooks/test_filesystem.py | 0
.../standard/hooks/test_package_index.py | 0
.../standard/hooks/test_subprocess.py | 0
.../tests/unit/standard/operators}/__init__.py | 0
.../standard/operators/test_bash.py | 0
.../standard/operators/test_datetime.py | 0
.../standard/operators/test_generic_transfer.py | 0
.../operators/test_latest_only_operator.py | 0
.../standard/operators/test_python.py | 0
.../standard/operators/test_weekday.py | 0
.../tests/unit/standard/sensors}/__init__.py | 0
.../standard/sensors/test_bash.py | 0
.../standard/sensors/test_date_time.py | 0
.../standard/sensors/test_python.py | 2 +-
.../standard/sensors/test_time.py | 0
.../standard/sensors/test_time_delta.py | 0
.../standard/sensors/test_weekday.py | 0
.../tests/unit/standard/triggers}/__init__.py | 0
.../standard/triggers/test_external_task.py | 25 +-
.../standard/triggers/test_file.py | 44 +-
.../standard/triggers/test_temporal.py | 0
.../tests/unit/standard/utils}/__init__.py | 0
.../standard/utils/test_python_virtualenv.py | 0
providers/tableau/tests/conftest.py | 13 -
providers/tableau/tests/provider_tests/__init__.py | 17 -
.../tests/provider_tests/tableau/__init__.py | 16 -
.../tests/provider_tests/tableau/hooks/__init__.py | 17 -
.../provider_tests/tableau/operators/__init__.py | 16 -
.../provider_tests/tableau/sensors/__init__.py | 16 -
providers/{ => tableau/tests/system}/__init__.py | 0
providers/{ => tableau/tests/unit}/__init__.py | 0
.../tableau/tests/unit/tableau}/__init__.py | 0
.../tableau/tests/unit/tableau/hooks}/__init__.py | 0
.../tableau/hooks/test_tableau.py | 0
.../tests/unit/tableau/operators}/__init__.py | 0
.../tableau/operators/test_tableau.py | 0
.../tests/unit/tableau/sensors}/__init__.py | 0
.../tableau/sensors/test_tableau.py | 0
providers/telegram/tests/conftest.py | 13 -
.../telegram/tests/provider_tests/__init__.py | 17 -
.../tests/provider_tests/telegram/__init__.py | 17 -
.../provider_tests/telegram/hooks/__init__.py | 17 -
.../provider_tests/telegram/operators/__init__.py | 17 -
providers/{ => telegram/tests/system}/__init__.py | 0
providers/{ => telegram/tests/unit}/__init__.py | 0
.../telegram/tests/unit/telegram}/__init__.py | 0
.../tests/unit/telegram/hooks}/__init__.py | 0
.../telegram/hooks/test_telegram.py | 0
.../tests/unit/telegram/operators}/__init__.py | 0
.../telegram/operators/test_telegram.py | 0
providers/teradata/tests/conftest.py | 13 -
.../teradata/tests/provider_tests/__init__.py | 17 -
.../tests/provider_tests/teradata/__init__.py | 16 -
.../provider_tests/teradata/hooks/__init__.py | 17 -
.../provider_tests/teradata/operators/__init__.py | 17 -
.../provider_tests/teradata/transfers/__init__.py | 17 -
.../provider_tests/teradata/triggers/__init__.py | 17 -
.../provider_tests/teradata/utils/__init__.py | 17 -
providers/{ => teradata/tests/system}/__init__.py | 0
providers/{ => teradata/tests/unit}/__init__.py | 0
.../teradata/tests/unit/teradata}/__init__.py | 0
.../tests/unit/teradata/hooks}/__init__.py | 0
.../teradata/hooks/test_teradata.py | 0
.../tests/unit/teradata/operators}/__init__.py | 0
.../teradata/operators/test_teradata.py | 0
.../operators/test_teradata_compute_cluster.py | 0
.../tests/unit/teradata/transfers}/__init__.py | 0
.../transfers/test_azure_blob_to_teradata.py | 0
.../teradata/transfers/test_s3_to_teradata.py | 0
.../transfers/test_teradata_to_teradata.py | 0
.../tests/unit/teradata/triggers}/__init__.py | 0
.../triggers/test_teradata_compute_cluster.py | 0
.../tests/unit/teradata/utils}/__init__.py | 0
.../teradata/utils/test_constants.py | 0
providers/tests/__init__.py | 17 -
providers/tests/apache/__init__.py | 16 -
providers/tests/atlassian/__init__.py | 16 -
providers/tests/cncf/__init__.py | 16 -
providers/tests/common/__init__.py | 16 -
providers/tests/conftest.py | 68 -
providers/tests/dbt/__init__.py | 16 -
providers/tests/deprecations_ignore.yml | 136 -
providers/tests/email/__init__.py | 17 -
providers/tests/email/operators/__init__.py | 17 -
providers/tests/integration/__init__.py | 16 -
providers/tests/integration/apache/__init__.py | 16 -
.../tests/integration/apache/cassandra/__init__.py | 16 -
.../integration/apache/cassandra/hooks/__init__.py | 16 -
.../tests/integration/apache/drill/__init__.py | 16 -
.../integration/apache/drill/hooks/__init__.py | 16 -
.../integration/apache/drill/operators/__init__.py | 16 -
.../tests/integration/apache/hive/__init__.py | 16 -
.../integration/apache/hive/transfers/__init__.py | 16 -
.../tests/integration/apache/kafka/__init__.py | 16 -
.../integration/apache/kafka/hooks/__init__.py | 16 -
.../integration/apache/kafka/operators/__init__.py | 16 -
.../integration/apache/kafka/sensors/__init__.py | 16 -
.../integration/apache/kafka/triggers/__init__.py | 16 -
.../tests/integration/apache/pinot/__init__.py | 16 -
.../integration/apache/pinot/hooks/__init__.py | 16 -
providers/tests/integration/google/__init__.py | 16 -
.../tests/integration/google/cloud/__init__.py | 16 -
.../integration/google/cloud/transfers/__init__.py | 16 -
providers/tests/integration/microsoft/__init__.py | 16 -
.../tests/integration/microsoft/mssql/__init__.py | 16 -
.../integration/microsoft/mssql/hooks/__init__.py | 16 -
providers/tests/integration/mongo/__init__.py | 16 -
.../tests/integration/mongo/sensors/__init__.py | 16 -
.../tests/integration/openlineage/__init__.py | 16 -
.../integration/openlineage/operators/__init__.py | 16 -
providers/tests/integration/qdrant/__init__.py | 16 -
.../tests/integration/qdrant/hooks/__init__.py | 16 -
.../tests/integration/qdrant/operators/__init__.py | 16 -
providers/tests/integration/redis/__init__.py | 16 -
.../tests/integration/redis/hooks/__init__.py | 16 -
.../tests/integration/redis/operators/__init__.py | 16 -
.../tests/integration/redis/sensors/__init__.py | 16 -
providers/tests/integration/trino/__init__.py | 16 -
.../tests/integration/trino/hooks/__init__.py | 16 -
providers/tests/integration/ydb/__init__.py | 16 -
providers/tests/integration/ydb/hooks/__init__.py | 16 -
.../tests/integration/ydb/operators/__init__.py | 16 -
providers/tests/system/__init__.py | 16 -
providers/tests/system/cncf/__init__.py | 16 -
providers/tests/system/conftest.py | 50 -
providers/tests/system/dbt/__init__.py | 16 -
providers/tests/system/example_empty.py | 48 -
providers/tests/system/microsoft/__init__.py | 16 -
providers/trino/tests/conftest.py | 13 -
.../{ => trino/tests/integration}/__init__.py | 0
.../trino/tests/integration/trino}/__init__.py | 0
.../tests/integration/trino/hooks}/__init__.py | 0
.../tests/integration/trino/hooks/test_trino.py | 0
providers/trino/tests/provider_tests/__init__.py | 17 -
.../trino/tests/provider_tests/trino/__init__.py | 17 -
.../tests/provider_tests/trino/assets/__init__.py | 16 -
.../tests/provider_tests/trino/hooks/__init__.py | 17 -
.../provider_tests/trino/transfers/__init__.py | 17 -
providers/{ => trino/tests/system}/__init__.py | 0
providers/{ => trino/tests/unit}/__init__.py | 0
.../trino/tests/unit/trino}/__init__.py | 0
.../trino/tests/unit/trino/assets}/__init__.py | 0
.../trino/assets/test_trino.py | 0
.../trino/tests/unit/trino/hooks}/__init__.py | 0
.../trino/hooks/test_trino.py | 0
.../trino/tests/unit/trino/transfers}/__init__.py | 0
.../trino/transfers/test_gcs_to_trino.py | 0
providers/vertica/tests/conftest.py | 13 -
providers/vertica/tests/provider_tests/__init__.py | 17 -
.../tests/provider_tests/vertica/__init__.py | 17 -
.../tests/provider_tests/vertica/hooks/__init__.py | 17 -
providers/{ => vertica/tests/system}/__init__.py | 0
providers/{ => vertica/tests/unit}/__init__.py | 0
.../vertica/tests/unit/vertica}/__init__.py | 0
.../vertica/tests/unit/vertica/hooks}/__init__.py | 0
.../vertica/hooks/test_vertica.py | 0
providers/weaviate/tests/conftest.py | 13 -
.../weaviate/tests/provider_tests/__init__.py | 17 -
.../tests/provider_tests/weaviate/__init__.py | 16 -
.../provider_tests/weaviate/hooks/__init__.py | 16 -
.../provider_tests/weaviate/operators/__init__.py | 16 -
providers/{ => weaviate/tests/system}/__init__.py | 0
.../example_weaviate_dynamic_mapping_dag.py | 2 +-
.../system/weaviate/example_weaviate_operator.py | 4 +-
.../system/weaviate/example_weaviate_using_hook.py | 4 +-
.../weaviate/example_weaviate_vectorizer_dag.py | 2 +-
providers/{ => weaviate/tests/unit}/__init__.py | 0
.../weaviate/tests/unit/weaviate}/__init__.py | 0
.../tests/unit/weaviate/hooks}/__init__.py | 0
.../weaviate/hooks/test_weaviate.py | 0
.../tests/unit/weaviate/operators}/__init__.py | 0
.../weaviate/operators/test_weaviate.py | 0
providers/yandex/tests/conftest.py | 13 -
providers/yandex/tests/provider_tests/__init__.py | 17 -
.../yandex/tests/provider_tests/yandex/__init__.py | 16 -
.../tests/provider_tests/yandex/hooks/__init__.py | 16 -
.../tests/provider_tests/yandex/links/__init__.py | 16 -
.../provider_tests/yandex/operators/__init__.py | 16 -
.../provider_tests/yandex/secrets/__init__.py | 16 -
.../tests/provider_tests/yandex/utils/__init__.py | 16 -
.../provider_tests/yandex/utils/test_defaults.py | 16 -
providers/{ => yandex/tests/system}/__init__.py | 0
.../tests/system/yandex/example_yandexcloud.py | 6 +-
providers/{ => yandex/tests/unit}/__init__.py | 0
.../yandex/tests/unit/yandex}/__init__.py | 0
.../yandex/tests/unit/yandex/hooks}/__init__.py | 0
.../yandex/hooks/test_dataproc.py | 0
.../yandex/hooks/test_yandex.py | 0
.../yandex/hooks/test_yq.py | 0
.../yandex/tests/unit/yandex/links}/__init__.py | 0
.../yandex/links/test_yq.py | 0
.../tests/unit/yandex/operators}/__init__.py | 0
.../yandex/operators/test_dataproc.py | 0
.../yandex/operators/test_yq.py | 0
.../yandex/tests/unit/yandex/secrets}/__init__.py | 0
.../yandex/secrets/test_lockbox.py | 0
.../yandex/tests/unit/yandex/utils}/__init__.py | 0
.../yandex/utils/test_credentials.py | 0
.../tests/unit/yandex/utils/test_defaults.py | 0
.../yandex/utils/test_fields.py | 0
.../yandex/utils/test_user_agent.py | 0
providers/ydb/tests/conftest.py | 13 -
providers/{ => ydb/tests/integration}/__init__.py | 0
.../ydb/tests/integration/ydb}/__init__.py | 0
.../ydb/tests/integration/ydb/hooks}/__init__.py | 0
.../tests/integration/ydb/operators}/__init__.py | 0
.../tests/integration/ydb/operators/test_ydb.py | 0
providers/ydb/tests/provider_tests/__init__.py | 17 -
providers/ydb/tests/provider_tests/ydb/__init__.py | 16 -
.../ydb/tests/provider_tests/ydb/hooks/__init__.py | 16 -
.../tests/provider_tests/ydb/operators/__init__.py | 16 -
.../ydb/tests/provider_tests/ydb/utils/__init__.py | 16 -
.../provider_tests/ydb/utils/test_defaults.py | 16 -
providers/{ => ydb/tests/system}/__init__.py | 0
providers/ydb/tests/system/ydb/example_ydb.py | 28 +-
providers/{ => ydb/tests/unit}/__init__.py | 0
.../ydb/tests/unit/ydb}/__init__.py | 0
.../ydb/tests/unit/ydb/hooks}/__init__.py | 0
.../{provider_tests => unit}/ydb/hooks/test_ydb.py | 0
.../ydb/tests/unit/ydb/operators}/__init__.py | 0
.../ydb/operators/test_ydb.py | 0
.../ydb/tests/unit/ydb/utils}/__init__.py | 0
.../ydb/utils/test_credentials.py | 0
.../ydb/tests/unit/ydb/utils/test_defaults.py | 0
providers/zendesk/tests/conftest.py | 13 -
providers/zendesk/tests/provider_tests/__init__.py | 17 -
.../tests/provider_tests/zendesk/__init__.py | 16 -
.../tests/provider_tests/zendesk/hooks/__init__.py | 16 -
providers/{ => zendesk/tests/system}/__init__.py | 0
providers/{ => zendesk/tests/unit}/__init__.py | 0
.../zendesk/tests/unit/zendesk}/__init__.py | 0
.../zendesk/tests/unit/zendesk/hooks}/__init__.py | 0
.../zendesk/hooks/test_zendesk.py | 0
pyproject.toml | 66 +-
scripts/ci/docker-compose/integration-ydb.yml | 2 +
scripts/ci/docker-compose/remove-sources.yml | 4 -
scripts/ci/install_breeze.sh | 4 +-
scripts/ci/kubernetes/k8s_requirements.txt | 1 -
.../ci/pre_commit/check_default_configuration.py | 27 +-
.../ci/pre_commit/check_imports_in_providers.py | 4 -
scripts/ci/pre_commit/check_provider_docs.py | 4 +-
.../check_providers_subpackages_all_have_init.py | 131 +-
.../pre_commit/check_pyproject_toml_consistency.py | 7 +-
.../ci/pre_commit/check_ti_vs_tis_attributes.py | 2 +
scripts/ci/pre_commit/common_precommit_utils.py | 11 +-
...compile_www_assets.py => compile_fab_assets.py} | 23 +-
scripts/ci/pre_commit/compile_www_assets.py | 21 +-
.../ci/pre_commit/generate_volumes_for_sources.py | 4 +-
scripts/ci/pre_commit/mypy_folder.py | 17 +-
.../significant_newsfragments_checker.py | 6 +-
scripts/ci/pre_commit/update_example_dags_paths.py | 2 +-
.../ci/pre_commit/update_providers_build_files.py | 33 +-
.../ci/pre_commit/update_providers_dependencies.py | 44 +-
scripts/ci/testing/run_unit_tests.sh | 5 -
scripts/cov/cli_coverage.py | 1 -
scripts/docker/install_airflow.sh | 4 +-
scripts/in_container/bin/run_tmux | 11 +
.../run_check_default_configuration.py | 58 +
scripts/in_container/run_mypy.sh | 4 +-
.../in_container/run_provider_yaml_files_check.py | 36 +-
scripts/tools/setup_breeze | 2 +-
task_sdk/pyproject.toml | 3 +
task_sdk/src/airflow/sdk/__init__.py | 4 +-
task_sdk/src/airflow/sdk/api/client.py | 8 +-
.../src/airflow/sdk/api/datamodels/_generated.py | 8 +-
.../src/airflow/sdk/definitions/asset/__init__.py | 22 +-
.../airflow/sdk/definitions/asset/decorators.py | 7 +-
task_sdk/src/airflow/sdk/definitions/macros.py | 56 +
task_sdk/src/airflow/sdk/definitions/variable.py | 13 +
.../airflow/sdk/execution_time/execute_workload.py | 89 +
.../src/airflow/sdk/execution_time/supervisor.py | 4 +-
.../src/airflow/sdk/execution_time/task_runner.py | 31 +-
task_sdk/src/airflow/sdk/log.py | 2 +
.../tests/definitions/test_asset_decorators.py | 2 +
task_sdk/tests/definitions/test_macros.py | 71 +
task_sdk/tests/definitions/test_mappedoperator.py | 13 +-
task_sdk/tests/definitions/test_xcom_arg.py | 21 +-
task_sdk/tests/execution_time/test_task_runner.py | 92 +
tests/always/test_example_dags.py | 2 +
tests/always/test_project_structure.py | 353 +-
tests/always/test_providers_manager.py | 7 -
.../endpoints/test_extra_link_endpoint.py | 16 +-
.../test_mapped_task_instance_endpoint.py | 2 +-
.../endpoints/test_provider_endpoint.py | 2 -
.../endpoints/test_task_instance_endpoint.py | 4 +-
tests/api_fastapi/common/test_exceptions.py | 6 +-
tests/api_fastapi/conftest.py | 59 +-
.../core_api/routes/public/test_assets.py | 63 +-
.../core_api/routes/public/test_dag_run.py | 27 +
.../core_api/routes/public/test_dag_versions.py | 27 +-
.../core_api/routes/public/test_dags.py | 8 +-
.../core_api/routes/public/test_extra_links.py | 138 +-
.../core_api/routes/public/test_providers.py | 2 -
.../core_api/routes/public/test_task_instances.py | 77 +-
.../api_fastapi/core_api/routes/ui/test_assets.py | 9 +-
tests/api_fastapi/core_api/routes/ui/test_dags.py | 11 +-
.../core_api/routes/ui/test_dependencies.py | 223 ++
tests/api_fastapi/core_api/routes/ui/test_grid.py | 3456 ++++---------------
.../api_fastapi/execution_api/routes/test_xcoms.py | 14 -
tests/api_fastapi/test_app.py | 6 +-
.../managers/simple/{test_user.py => conftest.py} | 26 +-
.../auth/managers/simple/routes}/__init__.py | 0
tests/auth/managers/simple/routes/test_login.py | 82 +
.../auth/managers/simple/services}/__init__.py | 0
tests/auth/managers/simple/services/test_login.py | 81 +
.../managers/simple/test_simple_auth_manager.py | 21 -
tests/auth/managers/simple/test_user.py | 21 +-
.../commands/local_commands/test_celery_command.py | 361 --
.../local_commands/test_fastapi_api_command.py | 45 +-
.../remote_commands/test_variable_command.py | 44 +
tests/conftest.py | 8 -
tests/dag_processing/bundles/test_git.py | 52 +-
tests/dag_processing/test_manager.py | 30 +
tests/dag_processing/test_processor.py | 87 +-
.../cli/commands/test_celery_command.py | 6 +-
tests/jobs/test_scheduler_job.py | 102 +-
tests/jobs/test_triggerer_job.py | 671 ++--
tests/jobs/test_triggerer_job_logging.py | 435 ---
tests/macros/test_macros.py | 93 -
tests/models/test_dag.py | 13 +-
tests/models/test_dagrun.py | 169 +-
tests/models/test_taskinstance.py | 4 +-
tests/operators/test_trigger_dagrun.py | 75 +-
tests/sensors/test_external_task_sensor.py | 2 +-
tests/serialization/test_dag_serialization.py | 110 +-
tests/serialization/test_serialized_objects.py | 4 +-
tests/timetables/test_trigger_timetable.py | 25 +
tests/utils/test_log_handlers.py | 11 +-
tests/www/views/conftest.py | 80 -
tests/www/views/test_views.py | 11 +-
tests/www/views/test_views_dagrun.py | 113 -
tests/www/views/test_views_extra_links.py | 219 +-
tests/www/views/test_views_home.py | 194 +-
tests/www/views/test_views_rendered.py | 53 +-
tests/www/views/test_views_tasks.py | 172 +-
tests/www/views/test_views_trigger_dag.py | 24 -
tests/www/views/test_views_variable.py | 42 -
tests_common/_internals/capture_warnings.py | 8 +-
tests_common/_internals/forbidden_warnings.py | 4 -
tests_common/pytest_plugin.py | 179 +-
.../test_utils/file_loading.py | 34 +-
tests_common/test_utils/gcp_system_helpers.py | 8 +-
tests_common/test_utils/mock_operators.py | 4 +
tests_common/test_utils/www.py | 85 +
3010 files changed, 20015 insertions(+), 24812 deletions(-)
copy airflow/api_fastapi/core_api/datamodels/{dag_versions.py => ui/common.py} (59%)
create mode 100644 airflow/api_fastapi/core_api/routes/ui/dependencies.py
create mode 100644 airflow/api_fastapi/core_api/services/ui/dependencies.py
rename airflow/auth/managers/simple/{router => routes}/__init__.py (100%)
rename airflow/auth/managers/simple/{router => routes}/login.py (51%)
rename {providers/airbyte/tests/provider_tests/airbyte => airflow/auth/managers/simple/services}/__init__.py (100%)
create mode 100644 airflow/auth/managers/simple/services/login.py
delete mode 100644 airflow/cli/commands/local_commands/celery_command.py
delete mode 100644 airflow/new_provider.yaml.schema.json
create mode 100644 airflow/ui/src/components/EditableMarkdown.tsx
copy airflow/ui/src/{layouts/Nav/AdminButton.tsx => components/Menu/MenuButton.tsx} (58%)
create mode 100644 airflow/ui/src/components/Menu/RunBackfillButton.tsx
create mode 100644 airflow/ui/src/components/Menu/RunBackfillForm.tsx
create mode 100644 airflow/ui/src/components/Menu/RunBackfillModal.tsx
create mode 100644 airflow/ui/src/constants/reprocessBehaviourParams.ts
create mode 100644 airflow/ui/src/pages/Plugins.tsx
create mode 100644 airflow/ui/src/pages/Pools/AddPoolButton.tsx
create mode 100644 airflow/ui/src/pages/Pools/PoolForm.tsx
create mode 100644 airflow/ui/src/pages/TaskInstance/RenderedTemplates.tsx
create mode 100644 airflow/ui/src/queries/useAddPool.ts
create mode 100644 airflow/ui/src/queries/useCreateBackfill.ts
create mode 100644 airflow/ui/src/queries/useCreateBackfillDryRun.ts
delete mode 100644 airflow/utils/log/trigger_handler.py
delete mode 100644 dev/example_dags/README.md
delete mode 100755 dev/example_dags/update_example_dags_paths.py
delete mode 100644 dev/moving_providers/README.md
delete mode 100755 dev/moving_providers/move_providers.py
create mode 100644 newsfragments/46415.significant.rst
create mode 100644 newsfragments/46613.significant.rst
rename providers/{src/airflow/providers => }/MANAGING_PROVIDERS_LIFECYCLE.rst (76%)
copy providers/{ => airbyte/tests/system}/__init__.py (100%)
rename providers/airbyte/tests/{provider_tests => unit}/__init__.py (100%)
rename providers/airbyte/tests/{provider_tests/airbyte/hooks => unit/airbyte}/__init__.py (100%)
rename providers/airbyte/tests/{provider_tests/airbyte/operators => unit/airbyte/hooks}/__init__.py (100%)
rename providers/airbyte/tests/{provider_tests => unit}/airbyte/hooks/test_airbyte.py (100%)
rename providers/airbyte/tests/{provider_tests/airbyte/sensors => unit/airbyte/operators}/__init__.py (100%)
rename providers/airbyte/tests/{provider_tests => unit}/airbyte/operators/test_airbyte.py (80%)
rename providers/airbyte/tests/{provider_tests/airbyte/triggers => unit/airbyte/sensors}/__init__.py (100%)
rename providers/airbyte/tests/{provider_tests => unit}/airbyte/sensors/test_airbyte.py (100%)
rename providers/{alibaba/tests/provider_tests/alibaba => airbyte/tests/unit/airbyte/triggers}/__init__.py (100%)
rename providers/airbyte/tests/{provider_tests => unit}/airbyte/triggers/test_airbyte.py (100%)
rename providers/alibaba/tests/{provider_tests => system}/__init__.py (100%)
rename providers/{amazon/tests/provider_tests => alibaba/tests/unit}/__init__.py (100%)
rename providers/alibaba/tests/{provider_tests/alibaba/cloud => unit/alibaba}/__init__.py (100%)
rename providers/alibaba/tests/{provider_tests/alibaba/cloud/hooks => unit/alibaba/cloud}/__init__.py (100%)
rename providers/alibaba/tests/{provider_tests/alibaba/cloud/log => unit/alibaba/cloud/hooks}/__init__.py (100%)
rename providers/alibaba/tests/{provider_tests => unit}/alibaba/cloud/hooks/test_analyticdb_spark.py (98%)
rename providers/alibaba/tests/{provider_tests => unit}/alibaba/cloud/hooks/test_oss.py (98%)
rename providers/alibaba/tests/{provider_tests/alibaba/cloud/operators => unit/alibaba/cloud/log}/__init__.py (100%)
rename providers/alibaba/tests/{provider_tests => unit}/alibaba/cloud/log/test_oss_task_handler.py (100%)
rename providers/alibaba/tests/{provider_tests/alibaba/cloud/sensors => unit/alibaba/cloud/operators}/__init__.py (100%)
rename providers/alibaba/tests/{provider_tests => unit}/alibaba/cloud/operators/test_analyticdb_spark.py (100%)
rename providers/alibaba/tests/{provider_tests => unit}/alibaba/cloud/operators/test_oss.py (100%)
rename providers/alibaba/tests/{provider_tests/alibaba/cloud/utils => unit/alibaba/cloud/sensors}/__init__.py (100%)
rename providers/alibaba/tests/{provider_tests => unit}/alibaba/cloud/sensors/test_analyticdb_spark.py (100%)
rename providers/alibaba/tests/{provider_tests => unit}/alibaba/cloud/sensors/test_oss_key.py (100%)
rename providers/{amazon/tests/provider_tests/amazon => alibaba/tests/unit/alibaba/cloud/utils}/__init__.py (100%)
rename providers/alibaba/tests/{provider_tests => unit}/alibaba/cloud/utils/analyticdb_spark_mock.py (100%)
rename providers/alibaba/tests/{provider_tests => unit}/alibaba/cloud/utils/oss_mock.py (100%)
rename providers/alibaba/tests/{provider_tests => unit}/alibaba/cloud/utils/test_utils.py (100%)
create mode 100644 providers/amazon/docs/operators/mwaa.rst
create mode 100644 providers/amazon/src/airflow/providers/amazon/aws/hooks/mwaa.py
create mode 100644 providers/amazon/src/airflow/providers/amazon/aws/operators/mwaa.py
delete mode 100644 providers/amazon/tests/provider_tests/amazon/aws/fs/__init__.py
delete mode 100644 providers/amazon/tests/provider_tests/amazon/aws/hooks/__init__.py
delete mode 100644 providers/amazon/tests/provider_tests/amazon/aws/infrastructure/__init__.py
delete mode 100644 providers/amazon/tests/provider_tests/amazon/aws/infrastructure/example_s3_to_redshift/__init__.py
delete mode 100644 providers/amazon/tests/provider_tests/amazon/aws/links/__init__.py
delete mode 100644 providers/amazon/tests/provider_tests/amazon/aws/log/__init__.py
delete mode 100644 providers/amazon/tests/provider_tests/amazon/aws/notifications/__init__.py
delete mode 100644 providers/amazon/tests/provider_tests/amazon/aws/operators/__init__.py
delete mode 100644 providers/amazon/tests/provider_tests/amazon/aws/secrets/__init__.py
delete mode 100644 providers/amazon/tests/provider_tests/amazon/aws/sensors/__init__.py
delete mode 100644 providers/amazon/tests/provider_tests/amazon/aws/system/__init__.py
delete mode 100644 providers/amazon/tests/provider_tests/amazon/aws/system/utils/__init__.py
delete mode 100644 providers/amazon/tests/provider_tests/amazon/aws/transfers/__init__.py
delete mode 100644 providers/amazon/tests/provider_tests/amazon/aws/triggers/__init__.py
delete mode 100644 providers/amazon/tests/provider_tests/amazon/aws/utils/__init__.py
delete mode 100644 providers/amazon/tests/provider_tests/amazon/aws/waiters/__init__.py
rename providers/{apache/beam/tests/provider_tests => amazon/tests/system}/__init__.py (100%)
create mode 100644 providers/amazon/tests/system/amazon/aws/example_mwaa.py
rename providers/{apache/beam/tests/provider_tests/apache => amazon/tests/unit}/__init__.py (100%)
rename providers/amazon/tests/{provider_tests/amazon/aws => unit/amazon}/__init__.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/.gitignore (100%)
rename providers/amazon/tests/{provider_tests/amazon/aws/assets => unit/amazon/aws}/__init__.py (100%)
rename providers/amazon/tests/{provider_tests/amazon/aws/auth_manager => unit/amazon/aws/assets}/__init__.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/assets/test_s3.py (100%)
rename providers/amazon/tests/{provider_tests/amazon/aws/auth_manager/avp => unit/amazon/aws/auth_manager}/__init__.py (100%)
rename providers/amazon/tests/{provider_tests/amazon/aws/auth_manager/cli => unit/amazon/aws/auth_manager/avp}/__init__.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/auth_manager/avp/test_entities.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/auth_manager/avp/test_facade.py (100%)
rename providers/amazon/tests/{provider_tests/amazon/aws/auth_manager/security_manager => unit/amazon/aws/auth_manager/cli}/__init__.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/auth_manager/cli/test_avp_commands.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/auth_manager/cli/test_definition.py (100%)
rename providers/amazon/tests/{provider_tests/amazon/aws/config_templates => unit/amazon/aws/auth_manager/router}/__init__.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/auth_manager/router/test_login.py (100%)
rename providers/amazon/tests/{provider_tests/amazon/aws/deferrable => unit/amazon/aws/auth_manager/security_manager}/__init__.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/auth_manager/security_manager/test_aws_security_manager_override.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/auth_manager/test_aws_auth_manager.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/auth_manager/test_constants.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/auth_manager/test_user.py (100%)
rename providers/amazon/tests/{provider_tests/amazon/aws/deferrable/hooks => unit/amazon/aws/config_templates}/__init__.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/config_templates/args.json (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/config_templates/job.j2.json (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/config_templates/steps.j2.json (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/config_templates/steps.json (100%)
rename providers/amazon/tests/{provider_tests/amazon/aws/executors => unit/amazon/aws/deferrable}/__init__.py (100%)
rename providers/amazon/tests/{provider_tests/amazon/aws/executors/batch => unit/amazon/aws/deferrable/hooks}/__init__.py (100%)
rename providers/amazon/tests/{provider_tests/amazon/aws/executors/ecs => unit/amazon/aws/executors}/__init__.py (100%)
rename providers/amazon/tests/{provider_tests/amazon/aws/executors/utils => unit/amazon/aws/executors/batch}/__init__.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/executors/batch/test_batch_executor.py (100%)
copy {airflow/api_connexion => providers/amazon/tests/unit/amazon/aws/executors/ecs}/__init__.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/executors/ecs/test_ecs_executor.py (100%)
copy {airflow/api_connexion => providers/amazon/tests/unit/amazon/aws/executors/utils}/__init__.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/executors/utils/test_exponential_backoff_retry.py (100%)
copy {airflow/api_connexion => providers/amazon/tests/unit/amazon/aws/fs}/__init__.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/fs/test_s3.py (100%)
copy {airflow/api_connexion => providers/amazon/tests/unit/amazon/aws/hooks}/__init__.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/hooks/test_appflow.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/hooks/test_athena.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/hooks/test_athena_sql.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/hooks/test_base_aws.py (99%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/hooks/test_batch_client.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/hooks/test_batch_waiters.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/hooks/test_bedrock.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/hooks/test_chime.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/hooks/test_cloud_formation.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/hooks/test_comprehend.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/hooks/test_datasync.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/hooks/test_dms.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/hooks/test_dynamodb.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/hooks/test_ec2.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/hooks/test_ecr.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/hooks/test_ecs.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/hooks/test_eks.py (99%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/hooks/test_elasticache_replication_group.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/hooks/test_emr.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/hooks/test_emr_containers.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/hooks/test_emr_serverless.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/hooks/test_eventbridge.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/hooks/test_glacier.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/hooks/test_glue.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/hooks/test_glue_catalog.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/hooks/test_glue_crawler.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/hooks/test_glue_databrew.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/hooks/test_hooks_signature.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/hooks/test_kinesis.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/hooks/test_kinesis_analytics.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/hooks/test_lambda_function.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/hooks/test_logs.py (100%)
create mode 100644 providers/amazon/tests/unit/amazon/aws/hooks/test_mwaa.py
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/hooks/test_neptune.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/hooks/test_opensearch_serverless.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/hooks/test_quicksight.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/hooks/test_rds.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/hooks/test_redshift_cluster.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/hooks/test_redshift_data.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/hooks/test_redshift_sql.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/hooks/test_s3.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/hooks/test_sagemaker.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/hooks/test_secrets_manager.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/hooks/test_ses.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/hooks/test_sns.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/hooks/test_sqs.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/hooks/test_ssm.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/hooks/test_step_function.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/hooks/test_sts.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/hooks/test_verified_permissions.py (100%)
copy {airflow/api_connexion => providers/amazon/tests/unit/amazon/aws/infrastructure}/__init__.py (100%)
copy {airflow/api_connexion => providers/amazon/tests/unit/amazon/aws/infrastructure/example_s3_to_redshift}/__init__.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/infrastructure/example_s3_to_redshift/outputs.tf (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/infrastructure/example_s3_to_redshift/resources.tf (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/infrastructure/example_s3_to_redshift/variables.tf (100%)
copy {airflow/api_connexion => providers/amazon/tests/unit/amazon/aws/links}/__init__.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/links/test_athena.py (94%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/links/test_base_aws.py (93%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/links/test_batch.py (96%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/links/test_comprehend.py (96%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/links/test_datasync.py (95%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/links/test_ec2.py (96%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/links/test_emr.py (99%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/links/test_glue.py (94%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/links/test_logs.py (95%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/links/test_sagemaker.py (94%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/links/test_step_function.py (97%)
copy {airflow/api_connexion => providers/amazon/tests/unit/amazon/aws/log}/__init__.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/log/test_cloudwatch_task_handler.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/log/test_s3_task_handler.py (100%)
copy {airflow/api_connexion => providers/amazon/tests/unit/amazon/aws/notifications}/__init__.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/notifications/test_chime.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/notifications/test_sns.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/notifications/test_sqs.py (100%)
copy {airflow/api_connexion => providers/amazon/tests/unit/amazon/aws/operators}/__init__.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/operators/athena_metadata.json (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/operators/test_appflow.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/operators/test_athena.py (99%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/operators/test_base_aws.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/operators/test_batch.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/operators/test_bedrock.py (99%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/operators/test_cloud_formation.py (98%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/operators/test_comprehend.py (99%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/operators/test_datasync.py (99%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/operators/test_dms.py (99%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/operators/test_ec2.py (99%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/operators/test_ecs.py (99%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/operators/test_eks.py (98%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/operators/test_emr_add_steps.py (99%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/operators/test_emr_containers.py (98%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/operators/test_emr_create_job_flow.py (98%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/operators/test_emr_modify_cluster.py (96%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/operators/test_emr_notebook_execution.py (98%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/operators/test_emr_serverless.py (99%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/operators/test_emr_terminate_job_flow.py (96%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/operators/test_eventbridge.py (98%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/operators/test_glacier.py (97%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/operators/test_glue.py (99%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/operators/test_glue_crawler.py (98%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/operators/test_glue_databrew.py (97%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/operators/test_kinesis_analytics.py (99%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/operators/test_lambda_function.py (99%)
create mode 100644 providers/amazon/tests/unit/amazon/aws/operators/test_mwaa.py
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/operators/test_neptune.py (99%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/operators/test_quicksight.py (97%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/operators/test_rds.py (99%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/operators/test_redshift_cluster.py (99%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/operators/test_redshift_data.py (99%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/operators/test_redshift_sql.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/operators/test_s3.py (99%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/operators/test_sagemaker_base.py (99%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/operators/test_sagemaker_endpoint.py (98%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/operators/test_sagemaker_endpoint_config.py (97%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/operators/test_sagemaker_model.py (98%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/operators/test_sagemaker_notebook.py (98%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/operators/test_sagemaker_pipeline.py (97%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/operators/test_sagemaker_processing.py (99%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/operators/test_sagemaker_training.py (99%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/operators/test_sagemaker_transform.py (99%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/operators/test_sagemaker_tuning.py (98%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/operators/test_sns.py (97%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/operators/test_sqs.py (98%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/operators/test_step_function.py (99%)
copy {airflow/api_connexion => providers/amazon/tests/unit/amazon/aws/secrets}/__init__.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/secrets/test_secrets_manager.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/secrets/test_systems_manager.py (100%)
copy {airflow/api_connexion => providers/amazon/tests/unit/amazon/aws/sensors}/__init__.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/sensors/test_athena.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/sensors/test_base_aws.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/sensors/test_batch.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/sensors/test_bedrock.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/sensors/test_cloud_formation.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/sensors/test_comprehend.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/sensors/test_dms.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/sensors/test_dynamodb.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/sensors/test_ec2.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/sensors/test_ecs.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/sensors/test_eks.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/sensors/test_emr_base.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/sensors/test_emr_containers.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/sensors/test_emr_job_flow.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/sensors/test_emr_notebook_execution.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/sensors/test_emr_serverless_application.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/sensors/test_emr_serverless_job.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/sensors/test_emr_step.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/sensors/test_glacier.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/sensors/test_glue.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/sensors/test_glue_catalog_partition.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/sensors/test_glue_crawler.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/sensors/test_glue_data_quality.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/sensors/test_kinesis_analytics.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/sensors/test_lambda_function.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/sensors/test_opensearch_serverless.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/sensors/test_quicksight.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/sensors/test_rds.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/sensors/test_redshift_cluster.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/sensors/test_s3.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/sensors/test_sagemaker_automl.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/sensors/test_sagemaker_base.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/sensors/test_sagemaker_endpoint.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/sensors/test_sagemaker_pipeline.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/sensors/test_sagemaker_processing.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/sensors/test_sagemaker_training.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/sensors/test_sagemaker_transform.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/sensors/test_sagemaker_tuning.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/sensors/test_sqs.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/sensors/test_step_function.py (100%)
copy {airflow/api_connexion => providers/amazon/tests/unit/amazon/aws/system}/__init__.py (100%)
copy {airflow/api_connexion => providers/amazon/tests/unit/amazon/aws/system/utils}/__init__.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/system/utils/test_helpers.py (96%)
copy {airflow/api_connexion => providers/amazon/tests/unit/amazon/aws/transfers}/__init__.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/transfers/test_azure_blob_to_s3.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/transfers/test_base.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/transfers/test_dynamodb_to_s3.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/transfers/test_exasol_to_s3.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/transfers/test_ftp_to_s3.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/transfers/test_gcs_to_s3.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/transfers/test_glacier_to_gcs.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/transfers/test_google_api_to_s3.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/transfers/test_hive_to_dynamodb.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/transfers/test_http_to_s3.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/transfers/test_imap_attachment_to_s3.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/transfers/test_local_to_s3.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/transfers/test_mongo_to_s3.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/transfers/test_redshift_to_s3.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/transfers/test_s3_to_dynamodb.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/transfers/test_s3_to_ftp.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/transfers/test_s3_to_redshift.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/transfers/test_s3_to_sftp.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/transfers/test_s3_to_sql.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/transfers/test_salesforce_to_s3.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/transfers/test_sftp_to_s3.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/transfers/test_sql_to_s3.py (100%)
copy {airflow/api_connexion => providers/amazon/tests/unit/amazon/aws/triggers}/__init__.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/triggers/test_athena.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/triggers/test_base.py (98%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/triggers/test_batch.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/triggers/test_bedrock.py (98%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/triggers/test_comprehend.py (98%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/triggers/test_dms.py (98%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/triggers/test_ec2.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/triggers/test_ecs.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/triggers/test_eks.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/triggers/test_emr.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/triggers/test_glue.py (98%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/triggers/test_glue_crawler.py (96%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/triggers/test_glue_databrew.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/triggers/test_kinesis_analytics.py (97%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/triggers/test_lambda_function.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/triggers/test_neptune.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/triggers/test_opensearch_serverless.py (97%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/triggers/test_rds.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/triggers/test_redshift_cluster.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/triggers/test_redshift_data.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/triggers/test_s3.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/triggers/test_sagemaker.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/triggers/test_serialization.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/triggers/test_sqs.py (100%)
copy {airflow/api_connexion => providers/amazon/tests/unit/amazon/aws/utils}/__init__.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/utils/eks_test_constants.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/utils/eks_test_utils.py (99%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/utils/test_connection_wrapper.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/utils/test_eks_get_token.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/utils/test_emailer.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/utils/test_identifiers.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/utils/test_mixins.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/utils/test_openlineage.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/utils/test_redshift.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/utils/test_sqs.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/utils/test_suppress.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/utils/test_tags.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/utils/test_task_log_fetcher.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/utils/test_template_fields.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/utils/test_utils.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/utils/test_waiter.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/utils/test_waiter_with_logging.py (100%)
copy {airflow/api_connexion => providers/amazon/tests/unit/amazon/aws/waiters}/__init__.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/waiters/test.json (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/waiters/test_batch.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/waiters/test_bedrock.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/waiters/test_bedrock_agent.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/waiters/test_comprehend.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/waiters/test_custom_waiters.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/waiters/test_dms.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/waiters/test_dynamo.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/waiters/test_ecs.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/waiters/test_eks.py (96%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/waiters/test_emr.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/waiters/test_glue.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/waiters/test_glue_databrew.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/waiters/test_kinesis_analytics.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/waiters/test_neptune.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/aws/waiters/test_opensearch_serverless.py (100%)
rename providers/amazon/tests/{provider_tests => unit}/amazon/conftest.py (100%)
rename providers/apache/{cassandra/tests/provider_tests => beam/docs/_api/tests/system}/__init__.py (100%)
rename providers/apache/{cassandra/tests/provider_tests => beam/docs/_api/tests/system}/apache/__init__.py (100%)
delete mode 100644 providers/apache/beam/tests/provider_tests/apache/beam/__init__.py
delete mode 100644 providers/apache/beam/tests/provider_tests/apache/beam/hooks/__init__.py
delete mode 100644 providers/apache/beam/tests/provider_tests/apache/beam/operators/__init__.py
delete mode 100644 providers/apache/beam/tests/provider_tests/apache/beam/triggers/__init__.py
rename providers/apache/{drill/tests/provider_tests => beam/tests/system}/__init__.py (100%)
rename providers/apache/{drill/tests/provider_tests => beam/tests/system}/apache/__init__.py (100%)
rename providers/apache/{druid/tests/provider_tests => beam/tests/unit}/__init__.py (100%)
rename providers/apache/{druid/tests/provider_tests => beam/tests/unit}/apache/__init__.py (100%)
copy {airflow/api_connexion => providers/apache/beam/tests/unit/apache/beam}/__init__.py (100%)
copy {airflow/api_connexion => providers/apache/beam/tests/unit/apache/beam/hooks}/__init__.py (100%)
rename providers/apache/beam/tests/{provider_tests => unit}/apache/beam/hooks/test_beam.py (95%)
copy {airflow/api_connexion => providers/apache/beam/tests/unit/apache/beam/operators}/__init__.py (100%)
rename providers/apache/beam/tests/{provider_tests => unit}/apache/beam/operators/test_beam.py (98%)
copy {airflow/api_connexion => providers/apache/beam/tests/unit/apache/beam/triggers}/__init__.py (100%)
rename providers/apache/beam/tests/{provider_tests => unit}/apache/beam/triggers/test_beam.py (81%)
rename providers/apache/{flink/tests/provider_tests => cassandra/tests/integration}/__init__.py (100%)
rename providers/apache/{flink/tests/provider_tests => cassandra/tests/integration}/apache/__init__.py (100%)
copy {airflow/api_connexion => providers/apache/cassandra/tests/integration/apache/cassandra}/__init__.py (100%)
copy {airflow/api_connexion => providers/apache/cassandra/tests/integration/apache/cassandra/hooks}/__init__.py (100%)
rename providers/{ => apache/cassandra}/tests/integration/apache/cassandra/hooks/test_cassandra.py (100%)
delete mode 100644 providers/apache/cassandra/tests/provider_tests/apache/cassandra/__init__.py
delete mode 100644 providers/apache/cassandra/tests/provider_tests/apache/cassandra/sensors/__init__.py
rename providers/apache/{hdfs/tests/provider_tests => cassandra/tests/system}/__init__.py (100%)
rename providers/apache/{hdfs/tests/provider_tests => cassandra/tests/system}/apache/__init__.py (100%)
rename providers/apache/{hive/tests/provider_tests => cassandra/tests/unit}/__init__.py (100%)
rename providers/apache/{hive/tests/provider_tests => cassandra/tests/unit}/apache/__init__.py (100%)
copy {airflow/api_connexion => providers/apache/cassandra/tests/unit/apache/cassandra}/__init__.py (100%)
rename providers/apache/cassandra/tests/{provider_tests => unit}/apache/cassandra/hooks/__init__.py (100%)
rename providers/apache/cassandra/tests/{provider_tests => unit}/apache/cassandra/hooks/test_cassandra.py (100%)
copy {airflow/api_connexion => providers/apache/cassandra/tests/unit/apache/cassandra/sensors}/__init__.py (100%)
rename providers/apache/cassandra/tests/{provider_tests => unit}/apache/cassandra/sensors/test_record.py (100%)
rename providers/apache/cassandra/tests/{provider_tests => unit}/apache/cassandra/sensors/test_table.py (100%)
rename providers/apache/{iceberg/tests/provider_tests => drill/tests/integration}/__init__.py (100%)
rename providers/apache/{iceberg/tests/provider_tests => drill/tests/integration}/apache/__init__.py (100%)
copy {airflow/api_connexion => providers/apache/drill/tests/integration/apache/drill}/__init__.py (100%)
copy {airflow/api_connexion => providers/apache/drill/tests/integration/apache/drill/hooks}/__init__.py (100%)
rename providers/{ => apache/drill}/tests/integration/apache/drill/hooks/test_drill.py (100%)
copy {airflow/api_connexion => providers/apache/drill/tests/integration/apache/drill/operators}/__init__.py (100%)
rename providers/apache/{impala/tests/provider_tests => drill/tests/system}/__init__.py (100%)
rename providers/apache/{impala/tests/provider_tests => drill/tests/system}/apache/__init__.py (100%)
rename providers/apache/{kafka/tests/provider_tests => drill/tests/unit}/__init__.py (100%)
rename providers/apache/{kafka/tests/provider_tests => drill/tests/unit}/apache/__init__.py (100%)
rename providers/apache/drill/tests/{provider_tests => unit}/apache/drill/__init__.py (100%)
rename providers/apache/drill/tests/{provider_tests => unit}/apache/drill/hooks/__init__.py (100%)
rename providers/apache/drill/tests/{provider_tests => unit}/apache/drill/hooks/test_drill.py (100%)
delete mode 100644 providers/apache/druid/tests/provider_tests/apache/druid/transfers/__init__.py
rename providers/apache/{kylin/tests/provider_tests => druid/tests/system}/__init__.py (100%)
rename providers/apache/{kylin/tests/provider_tests => druid/tests/system}/apache/__init__.py (100%)
rename providers/apache/{livy/tests/provider_tests => druid/tests/unit}/__init__.py (100%)
rename providers/apache/{livy/tests/provider_tests => druid/tests/unit}/apache/__init__.py (100%)
rename providers/apache/druid/tests/{provider_tests => unit}/apache/druid/__init__.py (100%)
rename providers/apache/druid/tests/{provider_tests => unit}/apache/druid/hooks/__init__.py (100%)
rename providers/apache/druid/tests/{provider_tests => unit}/apache/druid/hooks/test_druid.py (100%)
rename providers/apache/druid/tests/{provider_tests => unit}/apache/druid/operators/__init__.py (100%)
rename providers/apache/druid/tests/{provider_tests => unit}/apache/druid/operators/test_druid.py (100%)
copy {airflow/api_connexion => providers/apache/druid/tests/unit/apache/druid/transfers}/__init__.py (100%)
rename providers/apache/druid/tests/{provider_tests => unit}/apache/druid/transfers/test_hive_to_druid.py (100%)
rename providers/apache/{pig/tests/provider_tests => flink/tests/unit}/__init__.py (100%)
rename providers/apache/{pig/tests/provider_tests => flink/tests/unit}/apache/__init__.py (100%)
rename providers/apache/flink/tests/{provider_tests => unit}/apache/flink/__init__.py (100%)
rename providers/apache/flink/tests/{provider_tests => unit}/apache/flink/operators/__init__.py (100%)
rename providers/apache/flink/tests/{provider_tests => unit}/apache/flink/operators/test_flink_kubernetes.py (100%)
rename providers/apache/flink/tests/{provider_tests => unit}/apache/flink/sensors/__init__.py (100%)
rename providers/apache/flink/tests/{provider_tests => unit}/apache/flink/sensors/test_flink_kubernetes.py (100%)
rename providers/apache/{pinot/tests/provider_tests => hdfs/tests/unit}/__init__.py (100%)
rename providers/apache/{pinot/tests/provider_tests => hdfs/tests/unit}/apache/__init__.py (100%)
rename providers/apache/hdfs/tests/{provider_tests => unit}/apache/hdfs/__init__.py (100%)
rename providers/apache/hdfs/tests/{provider_tests => unit}/apache/hdfs/hooks/__init__.py (100%)
rename providers/apache/hdfs/tests/{provider_tests => unit}/apache/hdfs/hooks/test_webhdfs.py (100%)
rename providers/apache/hdfs/tests/{provider_tests => unit}/apache/hdfs/sensors/__init__.py (100%)
rename providers/apache/hdfs/tests/{provider_tests => unit}/apache/hdfs/sensors/test_web_hdfs.py (100%)
rename providers/apache/{spark/tests/provider_tests => hive/tests/integration}/__init__.py (100%)
rename providers/apache/{spark/tests/provider_tests => hive/tests/integration}/apache/__init__.py (100%)
copy {airflow/api_connexion => providers/apache/hive/tests/integration/apache/hive}/__init__.py (100%)
copy {airflow/api_connexion => providers/apache/hive/tests/integration/apache/hive/transfers}/__init__.py (100%)
rename providers/{ => apache/hive}/tests/integration/apache/hive/transfers/test_mssql_to_hive.py (100%)
delete mode 100644 providers/apache/hive/tests/provider_tests/apache/hive/transfers/__init__.py
rename providers/{apprise/tests/provider_tests => apache/hive/tests/system}/__init__.py (100%)
rename providers/{arangodb/tests/provider_tests => apache/hive/tests/system/apache}/__init__.py (100%)
rename providers/{asana/tests/provider_tests => apache/hive/tests/unit}/__init__.py (100%)
rename providers/{atlassian/jira/tests/provider_tests => apache/hive/tests/unit/apache}/__init__.py (100%)
rename providers/apache/hive/tests/{provider_tests => unit}/apache/hive/__init__.py (100%)
rename providers/apache/hive/tests/{provider_tests => unit}/apache/hive/hooks/__init__.py (100%)
rename providers/apache/hive/tests/{provider_tests => unit}/apache/hive/hooks/query_results.csv (100%)
rename providers/apache/hive/tests/{provider_tests => unit}/apache/hive/hooks/test_hive.py (99%)
rename providers/apache/hive/tests/{provider_tests => unit}/apache/hive/macros/__init__.py (100%)
rename providers/apache/hive/tests/{provider_tests => unit}/apache/hive/macros/test_hive.py (100%)
rename providers/apache/hive/tests/{provider_tests => unit}/apache/hive/operators/__init__.py (100%)
rename providers/apache/hive/tests/{provider_tests => unit}/apache/hive/operators/test_hive.py (99%)
rename providers/apache/hive/tests/{provider_tests => unit}/apache/hive/operators/test_hive_stats.py (99%)
rename providers/apache/hive/tests/{provider_tests => unit}/apache/hive/sensors/__init__.py (100%)
rename providers/apache/hive/tests/{provider_tests => unit}/apache/hive/sensors/test_hive_partition.py (94%)
rename providers/apache/hive/tests/{provider_tests => unit}/apache/hive/sensors/test_metastore_partition.py (93%)
rename providers/apache/hive/tests/{provider_tests => unit}/apache/hive/sensors/test_named_hive_partition.py (98%)
copy {airflow/api_connexion => providers/apache/hive/tests/unit/apache/hive/transfers}/__init__.py (100%)
rename providers/apache/hive/tests/{provider_tests => unit}/apache/hive/transfers/test_hive_to_mysql.py (98%)
rename providers/apache/hive/tests/{provider_tests => unit}/apache/hive/transfers/test_hive_to_samba.py (99%)
rename providers/apache/hive/tests/{provider_tests => unit}/apache/hive/transfers/test_mssql_to_hive.py (100%)
rename providers/apache/hive/tests/{provider_tests => unit}/apache/hive/transfers/test_mysql_to_hive.py (100%)
rename providers/apache/hive/tests/{provider_tests => unit}/apache/hive/transfers/test_s3_to_hive.py (98%)
rename providers/apache/hive/tests/{provider_tests => unit}/apache/hive/transfers/test_vertica_to_hive.py (100%)
delete mode 100644 providers/apache/iceberg/tests/provider_tests/apache/iceberg/__init__.py
delete mode 100644 providers/apache/iceberg/tests/provider_tests/apache/iceberg/hooks/__init__.py
rename providers/{atlassian/jira/tests/provider_tests/atlassian => apache/iceberg/tests/system}/__init__.py (100%)
rename providers/{celery/tests/provider_tests => apache/iceberg/tests/system/apache}/__init__.py (100%)
rename providers/{cloudant/tests/provider_tests => apache/iceberg/tests/unit}/__init__.py (100%)
rename providers/{cncf/kubernetes/tests/provider_tests => apache/iceberg/tests/unit/apache}/__init__.py (100%)
copy {airflow/api_connexion => providers/apache/iceberg/tests/unit/apache/iceberg}/__init__.py (100%)
copy {airflow/api_connexion => providers/apache/iceberg/tests/unit/apache/iceberg/hooks}/__init__.py (100%)
rename providers/apache/iceberg/tests/{provider_tests => unit}/apache/iceberg/hooks/test_iceberg.py (100%)
delete mode 100644 providers/apache/impala/tests/provider_tests/apache/impala/__init__.py
delete mode 100644 providers/apache/impala/tests/provider_tests/apache/impala/hooks/__init__.py
rename providers/{cncf/kubernetes/tests/provider_tests/cncf => apache/impala/tests/unit}/__init__.py (100%)
rename providers/{cohere/tests/provider_tests => apache/impala/tests/unit/apache}/__init__.py (100%)
copy {airflow/api_connexion => providers/apache/impala/tests/unit/apache/impala}/__init__.py (100%)
copy {airflow/api_connexion => providers/apache/impala/tests/unit/apache/impala/hooks}/__init__.py (100%)
rename providers/apache/impala/tests/{provider_tests => unit}/apache/impala/hooks/test_impala.py (100%)
rename providers/{common/compat/tests/provider_tests => apache/kafka/tests/integration}/__init__.py (100%)
rename providers/{common/compat/tests/provider_tests/common => apache/kafka/tests/integration/apache}/__init__.py (100%)
copy {airflow/api_connexion => providers/apache/kafka/tests/integration/apache/kafka}/__init__.py (100%)
copy {airflow/api_connexion => providers/apache/kafka/tests/integration/apache/kafka/hooks}/__init__.py (100%)
rename providers/{ => apache/kafka}/tests/integration/apache/kafka/hooks/test_admin_client.py (100%)
rename providers/{ => apache/kafka}/tests/integration/apache/kafka/hooks/test_consumer.py (100%)
rename providers/{ => apache/kafka}/tests/integration/apache/kafka/hooks/test_producer.py (100%)
copy {airflow/api_connexion => providers/apache/kafka/tests/integration/apache/kafka/operators}/__init__.py (100%)
rename providers/{ => apache/kafka}/tests/integration/apache/kafka/operators/test_consume.py (97%)
rename providers/{ => apache/kafka}/tests/integration/apache/kafka/operators/test_produce.py (96%)
copy {airflow/api_connexion => providers/apache/kafka/tests/integration/apache/kafka/sensors}/__init__.py (100%)
copy {airflow/api_connexion => providers/apache/kafka/tests/integration/apache/kafka/triggers}/__init__.py (100%)
rename providers/{ => apache/kafka}/tests/integration/apache/kafka/triggers/test_await_message.py (96%)
delete mode 100644 providers/apache/kafka/tests/provider_tests/apache/kafka/__init__.py
delete mode 100644 providers/apache/kafka/tests/provider_tests/apache/kafka/hooks/__init__.py
delete mode 100644 providers/apache/kafka/tests/provider_tests/apache/kafka/operators/__init__.py
delete mode 100644 providers/apache/kafka/tests/provider_tests/apache/kafka/sensors/__init__.py
delete mode 100644 providers/apache/kafka/tests/provider_tests/apache/kafka/triggers/__init__.py
rename providers/{common/io/tests/provider_tests => apache/kafka/tests/system}/__init__.py (100%)
rename providers/{common/io/tests/provider_tests/common => apache/kafka/tests/system/apache}/__init__.py (100%)
rename providers/{common/sql/tests/provider_tests => apache/kafka/tests/unit}/__init__.py (100%)
rename providers/{common/sql/tests/provider_tests/common => apache/kafka/tests/unit/apache}/__init__.py (100%)
copy {airflow/api_connexion => providers/apache/kafka/tests/unit/apache/kafka}/__init__.py (100%)
copy {airflow/api_connexion => providers/apache/kafka/tests/unit/apache/kafka/hooks}/__init__.py (100%)
rename providers/apache/kafka/tests/{provider_tests => unit}/apache/kafka/hooks/test_base.py (100%)
rename providers/apache/kafka/tests/{provider_tests => unit}/apache/kafka/hooks/test_client.py (100%)
rename providers/apache/kafka/tests/{provider_tests => unit}/apache/kafka/hooks/test_consume.py (100%)
rename providers/apache/kafka/tests/{provider_tests => unit}/apache/kafka/hooks/test_produce.py (100%)
copy {airflow/api_connexion => providers/apache/kafka/tests/unit/apache/kafka/operators}/__init__.py (100%)
rename providers/apache/kafka/tests/{provider_tests => unit}/apache/kafka/operators/test_consume.py (97%)
rename providers/apache/kafka/tests/{provider_tests => unit}/apache/kafka/operators/test_produce.py (96%)
copy {airflow/api_connexion => providers/apache/kafka/tests/unit/apache/kafka/sensors}/__init__.py (100%)
rename providers/apache/kafka/tests/{provider_tests => unit}/apache/kafka/sensors/test_kafka.py (100%)
copy {airflow/api_connexion => providers/apache/kafka/tests/unit/apache/kafka/triggers}/__init__.py (100%)
rename providers/apache/kafka/tests/{provider_tests => unit}/apache/kafka/triggers/test_await_message.py (94%)
rename providers/{databricks/tests/provider_tests => apache/kylin/tests/system}/__init__.py (100%)
rename providers/{datadog/tests/provider_tests => apache/kylin/tests/system/apache}/__init__.py (100%)
rename providers/{dbt/cloud/tests/provider_tests => apache/kylin/tests/unit}/__init__.py (100%)
rename providers/{dbt/cloud/tests/provider_tests/dbt => apache/kylin/tests/unit/apache}/__init__.py (100%)
rename providers/apache/kylin/tests/{provider_tests => unit}/apache/kylin/__init__.py (100%)
rename providers/apache/kylin/tests/{provider_tests => unit}/apache/kylin/hooks/__init__.py (100%)
rename providers/apache/kylin/tests/{provider_tests => unit}/apache/kylin/hooks/test_kylin.py (100%)
rename providers/apache/kylin/tests/{provider_tests => unit}/apache/kylin/operators/__init__.py (100%)
rename providers/apache/kylin/tests/{provider_tests => unit}/apache/kylin/operators/test_kylin_cube.py (100%)
delete mode 100644 providers/apache/livy/tests/provider_tests/apache/livy/__init__.py
delete mode 100644 providers/apache/livy/tests/provider_tests/apache/livy/hooks/__init__.py
delete mode 100644 providers/apache/livy/tests/provider_tests/apache/livy/operators/__init__.py
delete mode 100644 providers/apache/livy/tests/provider_tests/apache/livy/sensors/__init__.py
delete mode 100644 providers/apache/livy/tests/provider_tests/apache/livy/triggers/__init__.py
rename providers/{dingding/tests/provider_tests => apache/livy/tests/system}/__init__.py (100%)
rename providers/{discord/tests/provider_tests => apache/livy/tests/system/apache}/__init__.py (100%)
rename providers/{docker/tests/provider_tests => apache/livy/tests/unit}/__init__.py (100%)
rename providers/{edge/tests/provider_tests => apache/livy/tests/unit/apache}/__init__.py (100%)
copy {airflow/api_connexion => providers/apache/livy/tests/unit/apache/livy}/__init__.py (100%)
copy {airflow/api_connexion => providers/apache/livy/tests/unit/apache/livy/hooks}/__init__.py (100%)
rename providers/apache/livy/tests/{provider_tests => unit}/apache/livy/hooks/test_livy.py (100%)
copy {airflow/api_connexion => providers/apache/livy/tests/unit/apache/livy/operators}/__init__.py (100%)
rename providers/apache/livy/tests/{provider_tests => unit}/apache/livy/operators/test_livy.py (100%)
copy {airflow/api_connexion => providers/apache/livy/tests/unit/apache/livy/sensors}/__init__.py (100%)
rename providers/apache/livy/tests/{provider_tests => unit}/apache/livy/sensors/test_livy.py (100%)
copy {airflow/api_connexion => providers/apache/livy/tests/unit/apache/livy/triggers}/__init__.py (100%)
rename providers/apache/livy/tests/{provider_tests => unit}/apache/livy/triggers/test_livy.py (100%)
delete mode 100644 providers/apache/pig/tests/provider_tests/apache/pig/operators/__init__.py
rename providers/{elasticsearch/tests/provider_tests => apache/pig/tests/system}/__init__.py (100%)
rename providers/{exasol/tests/provider_tests => apache/pig/tests/system/apache}/__init__.py (100%)
rename providers/{fab/tests/provider_tests => apache/pig/tests/unit}/__init__.py (100%)
rename providers/{facebook/tests/provider_tests => apache/pig/tests/unit/apache}/__init__.py (100%)
rename providers/apache/pig/tests/{provider_tests => unit}/apache/pig/__init__.py (100%)
rename providers/apache/pig/tests/{provider_tests => unit}/apache/pig/hooks/__init__.py (100%)
rename providers/apache/pig/tests/{provider_tests => unit}/apache/pig/hooks/test_pig.py (100%)
copy {airflow/api_connexion => providers/apache/pig/tests/unit/apache/pig/operators}/__init__.py (100%)
rename providers/apache/pig/tests/{provider_tests => unit}/apache/pig/operators/test_pig.py (100%)
rename providers/{ftp/tests/provider_tests => apache/pinot/tests/integration}/__init__.py (100%)
rename providers/{github/tests/provider_tests => apache/pinot/tests/integration/apache}/__init__.py (100%)
rename providers/{google/tests/provider_tests => apache/pinot/tests/integration/apache/pinot}/__init__.py (100%)
copy {airflow/api_connexion => providers/apache/pinot/tests/integration/apache/pinot/hooks}/__init__.py (100%)
rename providers/{ => apache/pinot}/tests/integration/apache/pinot/hooks/test_pinot.py (100%)
rename providers/{grpc/tests/provider_tests => apache/pinot/tests/system}/__init__.py (100%)
rename providers/{hashicorp/tests/provider_tests => apache/pinot/tests/system/apache}/__init__.py (100%)
rename providers/{http/tests/provider_tests => apache/pinot/tests/unit}/__init__.py (100%)
rename providers/{imap/tests/provider_tests => apache/pinot/tests/unit/apache}/__init__.py (100%)
rename providers/apache/pinot/tests/{provider_tests => unit}/apache/pinot/__init__.py (100%)
rename providers/apache/pinot/tests/{provider_tests => unit}/apache/pinot/hooks/__init__.py (100%)
rename providers/apache/pinot/tests/{provider_tests => unit}/apache/pinot/hooks/test_pinot.py (100%)
delete mode 100644 providers/apache/spark/tests/provider_tests/apache/spark/decorators/__init__.py
rename providers/{influxdb/tests/provider_tests => apache/spark/tests/system}/__init__.py (100%)
rename providers/{jdbc/tests/provider_tests => apache/spark/tests/system/apache}/__init__.py (100%)
rename providers/{jenkins/tests/provider_tests => apache/spark/tests/unit}/__init__.py (100%)
rename providers/{microsoft/azure/tests/provider_tests => apache/spark/tests/unit/apache}/__init__.py (100%)
rename providers/apache/spark/tests/{provider_tests => unit}/apache/spark/__init__.py (100%)
copy {airflow/api_connexion => providers/apache/spark/tests/unit/apache/spark/decorators}/__init__.py (100%)
rename providers/apache/spark/tests/{provider_tests => unit}/apache/spark/decorators/test_pyspark.py (100%)
rename providers/apache/spark/tests/{provider_tests => unit}/apache/spark/hooks/__init__.py (100%)
rename providers/apache/spark/tests/{provider_tests => unit}/apache/spark/hooks/test_spark_connect.py (100%)
rename providers/apache/spark/tests/{provider_tests => unit}/apache/spark/hooks/test_spark_jdbc.py (100%)
rename providers/apache/spark/tests/{provider_tests => unit}/apache/spark/hooks/test_spark_jdbc_script.py (100%)
rename providers/apache/spark/tests/{provider_tests => unit}/apache/spark/hooks/test_spark_sql.py (100%)
rename providers/apache/spark/tests/{provider_tests => unit}/apache/spark/hooks/test_spark_submit.py (100%)
rename providers/apache/spark/tests/{provider_tests => unit}/apache/spark/operators/__init__.py (100%)
rename providers/apache/spark/tests/{provider_tests => unit}/apache/spark/operators/test_spark_jdbc.py (100%)
rename providers/apache/spark/tests/{provider_tests => unit}/apache/spark/operators/test_spark_sql.py (100%)
rename providers/apache/spark/tests/{provider_tests => unit}/apache/spark/operators/test_spark_submit.py (100%)
delete mode 100644 providers/apprise/tests/provider_tests/apprise/__init__.py
rename providers/{microsoft/azure/tests/provider_tests/microsoft => apprise/tests/unit}/__init__.py (100%)
copy {airflow/api_connexion => providers/apprise/tests/unit/apprise}/__init__.py (100%)
rename providers/apprise/tests/{provider_tests => unit}/apprise/hooks/__init__.py (100%)
rename providers/apprise/tests/{provider_tests => unit}/apprise/hooks/test_apprise.py (100%)
rename providers/apprise/tests/{provider_tests => unit}/apprise/notifications/__init__.py (100%)
rename providers/apprise/tests/{provider_tests => unit}/apprise/notifications/test_apprise.py (100%)
delete mode 100644 providers/arangodb/tests/provider_tests/arangodb/__init__.py
delete mode 100644 providers/arangodb/tests/provider_tests/arangodb/hooks/__init__.py
delete mode 100644 providers/arangodb/tests/provider_tests/arangodb/operators/__init__.py
delete mode 100644 providers/arangodb/tests/provider_tests/arangodb/sensors/__init__.py
rename providers/{microsoft/mssql/tests/provider_tests => arangodb/tests/unit}/__init__.py (100%)
copy {airflow/api_connexion => providers/arangodb/tests/unit/arangodb}/__init__.py (100%)
copy {airflow/api_connexion => providers/arangodb/tests/unit/arangodb/hooks}/__init__.py (100%)
rename providers/arangodb/tests/{provider_tests => unit}/arangodb/hooks/test_arangodb.py (100%)
copy {airflow/api_connexion => providers/arangodb/tests/unit/arangodb/operators}/__init__.py (100%)
rename providers/arangodb/tests/{provider_tests => unit}/arangodb/operators/test_arangodb.py (100%)
copy {airflow/api_connexion => providers/arangodb/tests/unit/arangodb/sensors}/__init__.py (100%)
rename providers/arangodb/tests/{provider_tests => unit}/arangodb/sensors/test_arangodb.py (100%)
rename providers/{microsoft/mssql/tests/provider_tests/microsoft => asana/tests/system}/__init__.py (100%)
rename providers/{microsoft/psrp/tests/provider_tests => asana/tests/unit}/__init__.py (100%)
rename providers/asana/tests/{provider_tests => unit}/asana/__init__.py (100%)
rename providers/asana/tests/{provider_tests => unit}/asana/hooks/__init__.py (100%)
rename providers/asana/tests/{provider_tests => unit}/asana/hooks/test_asana.py (100%)
rename providers/asana/tests/{provider_tests => unit}/asana/operators/__init__.py (100%)
rename providers/asana/tests/{provider_tests => unit}/asana/operators/test_asana_tasks.py (100%)
delete mode 100644 providers/atlassian/jira/tests/provider_tests/atlassian/jira/__init__.py
delete mode 100644 providers/atlassian/jira/tests/provider_tests/atlassian/jira/hooks/__init__.py
delete mode 100644 providers/atlassian/jira/tests/provider_tests/atlassian/jira/notifications/__init__.py
delete mode 100644 providers/atlassian/jira/tests/provider_tests/atlassian/jira/operators/__init__.py
delete mode 100644 providers/atlassian/jira/tests/provider_tests/atlassian/jira/sensors/__init__.py
rename providers/{microsoft/psrp/tests/provider_tests/microsoft => atlassian/jira/tests/unit}/__init__.py (100%)
rename providers/{microsoft/winrm/tests/provider_tests => atlassian/jira/tests/unit/atlassian}/__init__.py (100%)
copy {airflow/api_connexion => providers/atlassian/jira/tests/unit/atlassian/jira}/__init__.py (100%)
copy {airflow/api_connexion => providers/atlassian/jira/tests/unit/atlassian/jira/hooks}/__init__.py (100%)
rename providers/atlassian/jira/tests/{provider_tests => unit}/atlassian/jira/hooks/test_jira.py (100%)
copy {airflow/api_connexion => providers/atlassian/jira/tests/unit/atlassian/jira/notifications}/__init__.py (100%)
rename providers/atlassian/jira/tests/{provider_tests => unit}/atlassian/jira/notifications/test_jira.py (100%)
copy {airflow/api_connexion => providers/atlassian/jira/tests/unit/atlassian/jira/operators}/__init__.py (100%)
rename providers/atlassian/jira/tests/{provider_tests => unit}/atlassian/jira/operators/test_jira.py (100%)
copy {airflow/api_connexion => providers/atlassian/jira/tests/unit/atlassian/jira/sensors}/__init__.py (100%)
rename providers/atlassian/jira/tests/{provider_tests => unit}/atlassian/jira/sensors/test_jira.py (100%)
delete mode 100644 providers/celery/tests/provider_tests/celery/__init__.py
delete mode 100644 providers/celery/tests/provider_tests/celery/cli/__init__.py
delete mode 100644 providers/celery/tests/provider_tests/celery/log_handlers/__init__.py
rename providers/{microsoft/winrm/tests/provider_tests/microsoft => celery/tests/unit}/__init__.py (100%)
copy {airflow/api_connexion => providers/celery/tests/unit/celery}/__init__.py (100%)
copy {airflow/api_connexion => providers/celery/tests/unit/celery/cli}/__init__.py (100%)
rename providers/celery/tests/{provider_tests => unit}/celery/cli/test_celery_command.py (100%)
rename providers/celery/tests/{provider_tests => unit}/celery/executors/__init__.py (100%)
rename providers/celery/tests/{provider_tests => unit}/celery/executors/test_celery_executor.py (100%)
rename providers/celery/tests/{provider_tests => unit}/celery/executors/test_celery_kubernetes_executor.py (100%)
copy {airflow/api_connexion => providers/celery/tests/unit/celery/log_handlers}/__init__.py (100%)
rename providers/celery/tests/{provider_tests => unit}/celery/log_handlers/test_log_handlers.py (100%)
rename providers/celery/tests/{provider_tests => unit}/celery/sensors/__init__.py (100%)
rename providers/celery/tests/{provider_tests => unit}/celery/sensors/test_celery_queue.py (100%)
delete mode 100644 providers/cloudant/tests/provider_tests/cloudant/hooks/__init__.py
rename providers/{mongo/tests/provider_tests => cloudant/tests/unit}/__init__.py (100%)
rename providers/cloudant/tests/{provider_tests => unit}/cloudant/__init__.py (100%)
copy {airflow/api/auth => providers/cloudant/tests/unit/cloudant/hooks}/__init__.py (100%)
rename providers/cloudant/tests/{provider_tests => unit}/cloudant/hooks/test_cloudant.py (100%)
delete mode 100644 providers/cncf/kubernetes/tests/provider_tests/cncf/kubernetes/__init__.py
delete mode 100644 providers/cncf/kubernetes/tests/provider_tests/cncf/kubernetes/backcompat/__init__.py
delete mode 100644 providers/cncf/kubernetes/tests/provider_tests/cncf/kubernetes/cli/__init__.py
delete mode 100644 providers/cncf/kubernetes/tests/provider_tests/cncf/kubernetes/data_files/__init__.py
delete mode 100644 providers/cncf/kubernetes/tests/provider_tests/cncf/kubernetes/data_files/executor/__init__.py
delete mode 100644 providers/cncf/kubernetes/tests/provider_tests/cncf/kubernetes/data_files/pods/__init__.py
delete mode 100644 providers/cncf/kubernetes/tests/provider_tests/cncf/kubernetes/data_files/spark/__init__.py
delete mode 100644 providers/cncf/kubernetes/tests/provider_tests/cncf/kubernetes/decorators/__init__.py
delete mode 100644 providers/cncf/kubernetes/tests/provider_tests/cncf/kubernetes/executors/__init__.py
delete mode 100644 providers/cncf/kubernetes/tests/provider_tests/cncf/kubernetes/hooks/__init__.py
delete mode 100644 providers/cncf/kubernetes/tests/provider_tests/cncf/kubernetes/log_handlers/__init__.py
delete mode 100644 providers/cncf/kubernetes/tests/provider_tests/cncf/kubernetes/models/__init__.py
delete mode 100644 providers/cncf/kubernetes/tests/provider_tests/cncf/kubernetes/operators/__init__.py
delete mode 100644 providers/cncf/kubernetes/tests/provider_tests/cncf/kubernetes/resource_convert/__init__.py
delete mode 100644 providers/cncf/kubernetes/tests/provider_tests/cncf/kubernetes/resource_convert/test_configmap.py
delete mode 100644 providers/cncf/kubernetes/tests/provider_tests/cncf/kubernetes/resource_convert/test_env_variable.py
delete mode 100644 providers/cncf/kubernetes/tests/provider_tests/cncf/kubernetes/resource_convert/test_secret.py
delete mode 100644 providers/cncf/kubernetes/tests/provider_tests/cncf/kubernetes/sensors/__init__.py
delete mode 100644 providers/cncf/kubernetes/tests/provider_tests/cncf/kubernetes/triggers/__init__.py
delete mode 100644 providers/cncf/kubernetes/tests/provider_tests/cncf/kubernetes/utils/__init__.py
rename providers/{mysql/tests/provider_tests => cncf/kubernetes/tests/system}/__init__.py (100%)
rename providers/{neo4j/tests/provider_tests => cncf/kubernetes/tests/system/cncf}/__init__.py (100%)
rename providers/{odbc/tests/provider_tests => cncf/kubernetes/tests/unit}/__init__.py (100%)
rename providers/{openai/tests/provider_tests => cncf/kubernetes/tests/unit/cncf}/__init__.py (100%)
copy {airflow/api/auth => providers/cncf/kubernetes/tests/unit/cncf/kubernetes}/__init__.py (100%)
copy {airflow/api_connexion => providers/cncf/kubernetes/tests/unit/cncf/kubernetes/backcompat}/__init__.py (100%)
rename providers/cncf/kubernetes/tests/{provider_tests => unit}/cncf/kubernetes/backcompat/test_backwards_compat_converters.py (100%)
copy {airflow/api_connexion => providers/cncf/kubernetes/tests/unit/cncf/kubernetes/cli}/__init__.py (100%)
rename providers/cncf/kubernetes/tests/{provider_tests => unit}/cncf/kubernetes/cli/test_kubernetes_command.py (100%)
rename providers/cncf/kubernetes/tests/{provider_tests => unit}/cncf/kubernetes/conftest.py (100%)
copy {airflow/api_connexion => providers/cncf/kubernetes/tests/unit/cncf/kubernetes/data_files}/__init__.py (100%)
copy {airflow/api_connexion => providers/cncf/kubernetes/tests/unit/cncf/kubernetes/data_files/executor}/__init__.py (100%)
rename providers/cncf/kubernetes/tests/{provider_tests => unit}/cncf/kubernetes/data_files/executor/basic_template.yaml (100%)
rename providers/cncf/kubernetes/tests/{provider_tests => unit}/cncf/kubernetes/data_files/kube_config (100%)
copy {airflow/api_connexion => providers/cncf/kubernetes/tests/unit/cncf/kubernetes/data_files/pods}/__init__.py (100%)
rename providers/cncf/kubernetes/tests/{provider_tests => unit}/cncf/kubernetes/data_files/pods/generator_base.yaml (100%)
rename providers/cncf/kubernetes/tests/{provider_tests => unit}/cncf/kubernetes/data_files/pods/generator_base_with_secrets.yaml (100%)
rename providers/cncf/kubernetes/tests/{provider_tests => unit}/cncf/kubernetes/data_files/pods/template.yaml (100%)
copy {airflow/api_connexion => providers/cncf/kubernetes/tests/unit/cncf/kubernetes/data_files/spark}/__init__.py (100%)
rename providers/cncf/kubernetes/tests/{provider_tests => unit}/cncf/kubernetes/data_files/spark/application_template.yaml (100%)
rename providers/cncf/kubernetes/tests/{provider_tests => unit}/cncf/kubernetes/data_files/spark/application_test.json (100%)
rename providers/cncf/kubernetes/tests/{provider_tests => unit}/cncf/kubernetes/data_files/spark/application_test.yaml (100%)
rename providers/cncf/kubernetes/tests/{provider_tests => unit}/cncf/kubernetes/data_files/spark/application_test_with_no_name_from_config.json (100%)
rename providers/cncf/kubernetes/tests/{provider_tests => unit}/cncf/kubernetes/data_files/spark/application_test_with_no_name_from_config.yaml (100%)
copy {airflow/api_connexion => providers/cncf/kubernetes/tests/unit/cncf/kubernetes/decorators}/__init__.py (100%)
rename providers/cncf/kubernetes/tests/{provider_tests => unit}/cncf/kubernetes/decorators/test_kubernetes.py (100%)
copy {airflow/api_connexion => providers/cncf/kubernetes/tests/unit/cncf/kubernetes/executors}/__init__.py (100%)
rename providers/cncf/kubernetes/tests/{provider_tests => unit}/cncf/kubernetes/executors/test_kubernetes_executor.py (100%)
rename providers/cncf/kubernetes/tests/{provider_tests => unit}/cncf/kubernetes/executors/test_local_kubernetes_executor.py (100%)
copy {airflow/api_connexion => providers/cncf/kubernetes/tests/unit/cncf/kubernetes/hooks}/__init__.py (100%)
rename providers/cncf/kubernetes/tests/{provider_tests => unit}/cncf/kubernetes/hooks/test_kubernetes.py (100%)
copy {airflow/api_connexion => providers/cncf/kubernetes/tests/unit/cncf/kubernetes/log_handlers}/__init__.py (100%)
rename providers/cncf/kubernetes/tests/{provider_tests => unit}/cncf/kubernetes/log_handlers/test_log_handlers.py (100%)
copy {airflow/api/auth => providers/cncf/kubernetes/tests/unit/cncf/kubernetes/models}/__init__.py (100%)
rename providers/cncf/kubernetes/tests/{provider_tests => unit}/cncf/kubernetes/models/test_secret.py (100%)
copy {airflow/api_connexion => providers/cncf/kubernetes/tests/unit/cncf/kubernetes/operators}/__init__.py (100%)
rename providers/cncf/kubernetes/tests/{provider_tests => unit}/cncf/kubernetes/operators/test_custom_object_launcher.py (100%)
rename providers/cncf/kubernetes/tests/{provider_tests => unit}/cncf/kubernetes/operators/test_job.py (100%)
rename providers/cncf/kubernetes/tests/{provider_tests => unit}/cncf/kubernetes/operators/test_kueue.py (100%)
rename providers/cncf/kubernetes/tests/{provider_tests => unit}/cncf/kubernetes/operators/test_pod.py (99%)
rename providers/cncf/kubernetes/tests/{provider_tests => unit}/cncf/kubernetes/operators/test_resource.py (100%)
rename providers/cncf/kubernetes/tests/{provider_tests => unit}/cncf/kubernetes/operators/test_spark_kubernetes.py (100%)
copy {airflow/api_connexion => providers/cncf/kubernetes/tests/unit/cncf/kubernetes/resource_convert}/__init__.py (100%)
copy airflow/api_connexion/__init__.py => providers/cncf/kubernetes/tests/unit/cncf/kubernetes/resource_convert/test_configmap.py (100%)
copy airflow/api_connexion/__init__.py => providers/cncf/kubernetes/tests/unit/cncf/kubernetes/resource_convert/test_env_variable.py (100%)
copy airflow/api_connexion/__init__.py => providers/cncf/kubernetes/tests/unit/cncf/kubernetes/resource_convert/test_secret.py (100%)
copy {airflow/api_connexion => providers/cncf/kubernetes/tests/unit/cncf/kubernetes/sensors}/__init__.py (100%)
rename providers/cncf/kubernetes/tests/{provider_tests => unit}/cncf/kubernetes/sensors/test_spark_kubernetes.py (100%)
rename providers/cncf/kubernetes/tests/{provider_tests => unit}/cncf/kubernetes/test_callbacks.py (100%)
rename providers/cncf/kubernetes/tests/{provider_tests => unit}/cncf/kubernetes/test_client.py (100%)
rename providers/cncf/kubernetes/tests/{provider_tests => unit}/cncf/kubernetes/test_kubernetes_helper_functions.py (100%)
rename providers/cncf/kubernetes/tests/{provider_tests => unit}/cncf/kubernetes/test_pod_generator.py (89%)
rename providers/cncf/kubernetes/tests/{provider_tests => unit}/cncf/kubernetes/test_template_rendering.py (100%)
copy {airflow/api_connexion => providers/cncf/kubernetes/tests/unit/cncf/kubernetes/triggers}/__init__.py (100%)
rename providers/cncf/kubernetes/tests/{provider_tests => unit}/cncf/kubernetes/triggers/test_job.py (100%)
rename providers/cncf/kubernetes/tests/{provider_tests => unit}/cncf/kubernetes/triggers/test_pod.py (100%)
copy {airflow/api_connexion => providers/cncf/kubernetes/tests/unit/cncf/kubernetes/utils}/__init__.py (100%)
rename providers/cncf/kubernetes/tests/{provider_tests => unit}/cncf/kubernetes/utils/test_k8s_resource_iterator.py (100%)
rename providers/cncf/kubernetes/tests/{provider_tests => unit}/cncf/kubernetes/utils/test_pod_manager.py (99%)
delete mode 100644 providers/cohere/tests/provider_tests/cohere/__init__.py
delete mode 100644 providers/cohere/tests/provider_tests/cohere/hooks/__init__.py
delete mode 100644 providers/cohere/tests/provider_tests/cohere/operators/__init__.py
rename providers/{openfaas/tests/provider_tests => cohere/tests/system}/__init__.py (100%)
rename providers/{openlineage/tests/provider_tests => cohere/tests/unit}/__init__.py (100%)
copy {airflow/api_connexion => providers/cohere/tests/unit/cohere}/__init__.py (100%)
copy {airflow/api_connexion => providers/cohere/tests/unit/cohere/hooks}/__init__.py (100%)
rename providers/cohere/tests/{provider_tests => unit}/cohere/hooks/test_cohere.py (100%)
copy {airflow/api_connexion => providers/cohere/tests/unit/cohere/operators}/__init__.py (100%)
rename providers/cohere/tests/{provider_tests => unit}/cohere/operators/test_embedding.py (100%)
delete mode 100644 providers/common/compat/tests/provider_tests/common/compat/__init__.py
delete mode 100644 providers/common/compat/tests/provider_tests/common/compat/lineage/__init__.py
delete mode 100644 providers/common/compat/tests/provider_tests/common/compat/openlineage/__init__.py
delete mode 100644 providers/common/compat/tests/provider_tests/common/compat/openlineage/utils/__init__.py
delete mode 100644 providers/common/compat/tests/provider_tests/common/compat/security/__init__.py
rename providers/{opensearch/tests/provider_tests => common/compat/tests/unit}/__init__.py (100%)
rename providers/{opsgenie/tests/provider_tests => common/compat/tests/unit/common}/__init__.py (100%)
copy {airflow/api_connexion => providers/common/compat/tests/unit/common/compat}/__init__.py (100%)
copy {airflow/api_connexion => providers/common/compat/tests/unit/common/compat/lineage}/__init__.py (100%)
rename providers/common/compat/tests/{provider_tests => unit}/common/compat/lineage/test_hook.py (100%)
copy {airflow/api_connexion => providers/common/compat/tests/unit/common/compat/openlineage}/__init__.py (100%)
rename providers/common/compat/tests/{provider_tests => unit}/common/compat/openlineage/test_facet.py (100%)
copy {airflow/api_connexion => providers/common/compat/tests/unit/common/compat/openlineage/utils}/__init__.py (100%)
rename providers/common/compat/tests/{provider_tests => unit}/common/compat/openlineage/utils/test_spark.py (100%)
rename providers/common/compat/tests/{provider_tests => unit}/common/compat/openlineage/utils/test_sql.py (100%)
rename providers/common/compat/tests/{provider_tests => unit}/common/compat/openlineage/utils/test_utils.py (100%)
copy {airflow/api_connexion => providers/common/compat/tests/unit/common/compat/security}/__init__.py (100%)
rename providers/common/compat/tests/{provider_tests => unit}/common/compat/security/test_permissions.py (100%)
delete mode 100644 providers/common/io/tests/provider_tests/common/io/__init__.py
delete mode 100644 providers/common/io/tests/provider_tests/common/io/assets/__init__.py
delete mode 100644 providers/common/io/tests/provider_tests/common/io/operators/__init__.py
delete mode 100644 providers/common/io/tests/provider_tests/common/io/xcom/__init__.py
rename providers/{oracle/tests/provider_tests => common/io/tests/system}/__init__.py (100%)
rename providers/{pagerduty/tests/provider_tests => common/io/tests/system/common}/__init__.py (100%)
rename providers/{papermill/tests/provider_tests => common/io/tests/unit}/__init__.py (100%)
rename providers/{pgvector/tests/provider_tests => common/io/tests/unit/common}/__init__.py (100%)
copy {airflow/api_connexion => providers/common/io/tests/unit/common/io}/__init__.py (100%)
copy {airflow/api_connexion => providers/common/io/tests/unit/common/io/assets}/__init__.py (100%)
rename providers/common/io/tests/{provider_tests => unit}/common/io/assets/test_file.py (100%)
copy {airflow/api_connexion => providers/common/io/tests/unit/common/io/operators}/__init__.py (100%)
rename providers/common/io/tests/{provider_tests => unit}/common/io/operators/test_file_transfer.py (100%)
copy {airflow/api_connexion => providers/common/io/tests/unit/common/io/xcom}/__init__.py (100%)
rename providers/common/io/tests/{provider_tests => unit}/common/io/xcom/test_backend.py (100%)
delete mode 100644 providers/common/sql/tests/provider_tests/common/sql/__init__.py
delete mode 100644 providers/common/sql/tests/provider_tests/common/sql/dialects/__init__.py
delete mode 100644 providers/common/sql/tests/provider_tests/common/sql/hooks/__init__.py
delete mode 100644 providers/common/sql/tests/provider_tests/common/sql/operators/__init__.py
delete mode 100644 providers/common/sql/tests/provider_tests/common/sql/sensors/__init__.py
rename providers/{pinecone/tests/provider_tests => common/sql/tests/system}/__init__.py (100%)
rename providers/{postgres/tests/provider_tests => common/sql/tests/system/common}/__init__.py (100%)
rename providers/{presto/tests/provider_tests => common/sql/tests/unit}/__init__.py (100%)
rename providers/{qdrant/tests/provider_tests => common/sql/tests/unit/common}/__init__.py (100%)
copy {airflow/api_connexion => providers/common/sql/tests/unit/common/sql}/__init__.py (100%)
copy {airflow/api_connexion => providers/common/sql/tests/unit/common/sql/dialects}/__init__.py (100%)
rename providers/common/sql/tests/{provider_tests => unit}/common/sql/dialects/test_dialect.py (100%)
copy {airflow/api_connexion => providers/common/sql/tests/unit/common/sql/hooks}/__init__.py (100%)
rename providers/common/sql/tests/{provider_tests => unit}/common/sql/hooks/test_dbapi.py (100%)
rename providers/common/sql/tests/{provider_tests => unit}/common/sql/hooks/test_handlers.py (100%)
rename providers/common/sql/tests/{provider_tests => unit}/common/sql/hooks/test_sql.py (100%)
rename providers/common/sql/tests/{provider_tests => unit}/common/sql/hooks/test_sqlparse.py (100%)
copy {airflow/api_connexion => providers/common/sql/tests/unit/common/sql/operators}/__init__.py (100%)
rename providers/common/sql/tests/{provider_tests => unit}/common/sql/operators/test_sql.py (100%)
rename providers/common/sql/tests/{provider_tests => unit}/common/sql/operators/test_sql_execute.py (100%)
copy {airflow/api_connexion => providers/common/sql/tests/unit/common/sql/sensors}/__init__.py (100%)
rename providers/common/sql/tests/{provider_tests => unit}/common/sql/sensors/test_sql.py (100%)
delete mode 100644 providers/databricks/tests/provider_tests/databricks/__init__.py
delete mode 100644 providers/databricks/tests/provider_tests/databricks/hooks/__init__.py
delete mode 100644 providers/databricks/tests/provider_tests/databricks/operators/__init__.py
delete mode 100644 providers/databricks/tests/provider_tests/databricks/plugins/__init__.py
delete mode 100644 providers/databricks/tests/provider_tests/databricks/sensors/__init__.py
delete mode 100644 providers/databricks/tests/provider_tests/databricks/triggers/__init__.py
delete mode 100644 providers/databricks/tests/provider_tests/databricks/utils/__init__.py
rename providers/{redis/tests/provider_tests => databricks/tests/system}/__init__.py (100%)
rename providers/{salesforce/tests/provider_tests => databricks/tests/unit}/__init__.py (100%)
copy {airflow/api/auth => providers/databricks/tests/unit/databricks}/__init__.py (100%)
copy {airflow/api/auth => providers/databricks/tests/unit/databricks/hooks}/__init__.py (100%)
rename providers/databricks/tests/{provider_tests => unit}/databricks/hooks/test_databricks.py (100%)
rename providers/databricks/tests/{provider_tests => unit}/databricks/hooks/test_databricks_azure_workload_identity.py (100%)
rename providers/databricks/tests/{provider_tests => unit}/databricks/hooks/test_databricks_azure_workload_identity_async.py (100%)
rename providers/databricks/tests/{provider_tests => unit}/databricks/hooks/test_databricks_base.py (100%)
rename providers/databricks/tests/{provider_tests => unit}/databricks/hooks/test_databricks_sql.py (100%)
copy {airflow/api/auth => providers/databricks/tests/unit/databricks/operators}/__init__.py (100%)
rename providers/databricks/tests/{provider_tests => unit}/databricks/operators/test_databricks.py (96%)
rename providers/databricks/tests/{provider_tests => unit}/databricks/operators/test_databricks_copy.py (100%)
rename providers/databricks/tests/{provider_tests => unit}/databricks/operators/test_databricks_repos.py (100%)
rename providers/databricks/tests/{provider_tests => unit}/databricks/operators/test_databricks_sql.py (100%)
rename providers/databricks/tests/{provider_tests => unit}/databricks/operators/test_databricks_workflow.py (96%)
copy {airflow/api_connexion => providers/databricks/tests/unit/databricks/plugins}/__init__.py (100%)
rename providers/databricks/tests/{provider_tests => unit}/databricks/plugins/test_databricks_workflow.py (100%)
copy {airflow/api_connexion => providers/databricks/tests/unit/databricks/sensors}/__init__.py (100%)
rename providers/databricks/tests/{provider_tests => unit}/databricks/sensors/test_databricks_partition.py (100%)
rename providers/databricks/tests/{provider_tests => unit}/databricks/sensors/test_databricks_sql.py (100%)
rename providers/databricks/tests/{provider_tests => unit}/databricks/test_exceptions.py (100%)
copy {airflow/api/auth => providers/databricks/tests/unit/databricks/triggers}/__init__.py (100%)
rename providers/databricks/tests/{provider_tests => unit}/databricks/triggers/test_databricks.py (100%)
copy {airflow/api_connexion => providers/databricks/tests/unit/databricks/utils}/__init__.py (100%)
rename providers/databricks/tests/{provider_tests => unit}/databricks/utils/test_databricks.py (100%)
delete mode 100644 providers/datadog/tests/provider_tests/datadog/__init__.py
delete mode 100644 providers/datadog/tests/provider_tests/datadog/hooks/__init__.py
delete mode 100644 providers/datadog/tests/provider_tests/datadog/sensors/__init__.py
rename providers/{samba/tests/provider_tests => datadog/tests/unit}/__init__.py (100%)
copy {airflow/api/auth => providers/datadog/tests/unit/datadog}/__init__.py (100%)
copy {airflow/api/auth => providers/datadog/tests/unit/datadog/hooks}/__init__.py (100%)
rename providers/datadog/tests/{provider_tests => unit}/datadog/hooks/test_datadog.py (100%)
copy {airflow/api/auth => providers/datadog/tests/unit/datadog/sensors}/__init__.py (100%)
rename providers/datadog/tests/{provider_tests => unit}/datadog/sensors/test_datadog.py (100%)
delete mode 100644 providers/dbt/cloud/tests/provider_tests/dbt/cloud/__init__.py
delete mode 100644 providers/dbt/cloud/tests/provider_tests/dbt/cloud/hooks/__init__.py
delete mode 100644 providers/dbt/cloud/tests/provider_tests/dbt/cloud/operators/__init__.py
delete mode 100644 providers/dbt/cloud/tests/provider_tests/dbt/cloud/sensors/__init__.py
delete mode 100644 providers/dbt/cloud/tests/provider_tests/dbt/cloud/test_data/__init__.py
delete mode 100644 providers/dbt/cloud/tests/provider_tests/dbt/cloud/triggers/__init__.py
delete mode 100644 providers/dbt/cloud/tests/provider_tests/dbt/cloud/utils/__init__.py
copy providers/{ => dbt/cloud/tests/system}/__init__.py (100%)
copy providers/{ => dbt/cloud/tests/system/dbt}/__init__.py (100%)
copy providers/{ => dbt/cloud/tests/unit}/__init__.py (100%)
copy providers/{ => dbt/cloud/tests/unit/dbt}/__init__.py (100%)
copy {airflow/api_connexion => providers/dbt/cloud/tests/unit/dbt/cloud}/__init__.py (100%)
copy {airflow/api_connexion => providers/dbt/cloud/tests/unit/dbt/cloud/hooks}/__init__.py (100%)
rename providers/dbt/cloud/tests/{provider_tests => unit}/dbt/cloud/hooks/test_dbt.py (100%)
copy {airflow/api_connexion => providers/dbt/cloud/tests/unit/dbt/cloud/operators}/__init__.py (100%)
rename providers/dbt/cloud/tests/{provider_tests => unit}/dbt/cloud/operators/test_dbt.py (99%)
copy {airflow/api_connexion => providers/dbt/cloud/tests/unit/dbt/cloud/sensors}/__init__.py (100%)
rename providers/dbt/cloud/tests/{provider_tests => unit}/dbt/cloud/sensors/test_dbt.py (100%)
copy {airflow/api_connexion => providers/dbt/cloud/tests/unit/dbt/cloud/test_data}/__init__.py (100%)
rename providers/dbt/cloud/tests/{provider_tests => unit}/dbt/cloud/test_data/catalog.json (100%)
rename providers/dbt/cloud/tests/{provider_tests => unit}/dbt/cloud/test_data/job_run.json (100%)
rename providers/dbt/cloud/tests/{provider_tests => unit}/dbt/cloud/test_data/manifest.json (100%)
rename providers/dbt/cloud/tests/{provider_tests => unit}/dbt/cloud/test_data/run_results.json (100%)
copy {airflow/api_connexion => providers/dbt/cloud/tests/unit/dbt/cloud/triggers}/__init__.py (100%)
rename providers/dbt/cloud/tests/{provider_tests => unit}/dbt/cloud/triggers/test_dbt.py (100%)
copy {airflow/api_connexion => providers/dbt/cloud/tests/unit/dbt/cloud/utils}/__init__.py (100%)
rename providers/dbt/cloud/tests/{provider_tests => unit}/dbt/cloud/utils/test_openlineage.py (100%)
delete mode 100644 providers/dingding/tests/provider_tests/dingding/__init__.py
delete mode 100644 providers/dingding/tests/provider_tests/dingding/hooks/__init__.py
delete mode 100644 providers/dingding/tests/provider_tests/dingding/operators/__init__.py
copy providers/{ => dingding/tests/system}/__init__.py (100%)
copy providers/{ => dingding/tests/unit}/__init__.py (100%)
copy {airflow/api/auth => providers/dingding/tests/unit/dingding}/__init__.py (100%)
copy {airflow/api/auth => providers/dingding/tests/unit/dingding/hooks}/__init__.py (100%)
rename providers/dingding/tests/{provider_tests => unit}/dingding/hooks/test_dingding.py (100%)
copy {airflow/api/auth => providers/dingding/tests/unit/dingding/operators}/__init__.py (100%)
rename providers/dingding/tests/{provider_tests => unit}/dingding/operators/test_dingding.py (100%)
delete mode 100644 providers/discord/tests/provider_tests/discord/__init__.py
delete mode 100644 providers/discord/tests/provider_tests/discord/hooks/__init__.py
delete mode 100644 providers/discord/tests/provider_tests/discord/notifications/__init__.py
delete mode 100644 providers/discord/tests/provider_tests/discord/operators/__init__.py
copy providers/{ => discord/tests/unit}/__init__.py (100%)
copy {airflow/api/auth => providers/discord/tests/unit/discord}/__init__.py (100%)
copy {airflow/api/auth => providers/discord/tests/unit/discord/hooks}/__init__.py (100%)
rename providers/discord/tests/{provider_tests => unit}/discord/hooks/test_discord_webhook.py (100%)
copy {airflow/api_connexion => providers/discord/tests/unit/discord/notifications}/__init__.py (100%)
rename providers/discord/tests/{provider_tests => unit}/discord/notifications/test_discord.py (100%)
copy {airflow/api/auth => providers/discord/tests/unit/discord/operators}/__init__.py (100%)
rename providers/discord/tests/{provider_tests => unit}/discord/operators/test_discord_webhook.py (100%)
delete mode 100644 providers/docker/tests/provider_tests/docker/__init__.py
delete mode 100644 providers/docker/tests/provider_tests/docker/decorators/__init__.py
delete mode 100644 providers/docker/tests/provider_tests/docker/hooks/__init__.py
delete mode 100644 providers/docker/tests/provider_tests/docker/operators/__init__.py
copy providers/{ => docker/tests/system}/__init__.py (100%)
copy providers/{ => docker/tests/unit}/__init__.py (100%)
copy {airflow/api/auth => providers/docker/tests/unit/docker}/__init__.py (100%)
rename providers/docker/tests/{provider_tests => unit}/docker/conftest.py (100%)
copy {airflow/api_connexion => providers/docker/tests/unit/docker/decorators}/__init__.py (100%)
rename providers/docker/tests/{provider_tests => unit}/docker/decorators/test_docker.py (100%)
copy {airflow/api/auth => providers/docker/tests/unit/docker/hooks}/__init__.py (100%)
rename providers/docker/tests/{provider_tests => unit}/docker/hooks/test_docker.py (100%)
copy {airflow/api/auth => providers/docker/tests/unit/docker/operators}/__init__.py (100%)
rename providers/docker/tests/{provider_tests => unit}/docker/operators/test_docker.py (100%)
rename providers/docker/tests/{provider_tests => unit}/docker/operators/test_docker_swarm.py (100%)
rename providers/docker/tests/{provider_tests => unit}/docker/test_exceptions.py (100%)
delete mode 100644 providers/edge/tests/provider_tests/edge/__init__.py
delete mode 100644 providers/edge/tests/provider_tests/edge/cli/__init__.py
delete mode 100644 providers/edge/tests/provider_tests/edge/executors/__init__.py
delete mode 100644 providers/edge/tests/provider_tests/edge/models/__init__.py
delete mode 100644 providers/edge/tests/provider_tests/edge/plugins/__init__.py
delete mode 100644 providers/edge/tests/provider_tests/edge/worker_api/__init__.py
delete mode 100644 providers/edge/tests/provider_tests/edge/worker_api/routes/__init__.py
copy providers/{ => edge/tests/unit}/__init__.py (100%)
copy {airflow/api_connexion => providers/edge/tests/unit/edge}/__init__.py (100%)
copy {airflow/api/auth => providers/edge/tests/unit/edge/cli}/__init__.py (100%)
rename providers/edge/tests/{provider_tests => unit}/edge/cli/test_api_client.py (100%)
rename providers/edge/tests/{provider_tests => unit}/edge/cli/test_edge_command.py (93%)
copy {airflow/api_connexion => providers/edge/tests/unit/edge/executors}/__init__.py (100%)
rename providers/edge/tests/{provider_tests => unit}/edge/executors/test_edge_executor.py (100%)
copy {airflow/api/auth => providers/edge/tests/unit/edge/models}/__init__.py (100%)
copy {airflow/api/auth => providers/edge/tests/unit/edge/plugins}/__init__.py (100%)
rename providers/edge/tests/{provider_tests => unit}/edge/plugins/test_edge_executor_plugin.py (67%)
copy {airflow/api/auth => providers/edge/tests/unit/edge/worker_api}/__init__.py (100%)
copy {airflow/api/auth => providers/edge/tests/unit/edge/worker_api/routes}/__init__.py (100%)
rename providers/edge/tests/{provider_tests => unit}/edge/worker_api/routes/test_health.py (100%)
rename providers/edge/tests/{provider_tests => unit}/edge/worker_api/routes/test_logs.py (100%)
rename providers/edge/tests/{provider_tests => unit}/edge/worker_api/routes/test_worker.py (100%)
delete mode 100644 providers/elasticsearch/tests/provider_tests/elasticsearch/__init__.py
delete mode 100644 providers/elasticsearch/tests/provider_tests/elasticsearch/hooks/__init__.py
delete mode 100644 providers/elasticsearch/tests/provider_tests/elasticsearch/log/__init__.py
copy providers/{ => elasticsearch/tests/system}/__init__.py (100%)
copy providers/{ => elasticsearch/tests/unit}/__init__.py (100%)
copy {airflow/api/auth => providers/elasticsearch/tests/unit/elasticsearch}/__init__.py (100%)
copy {airflow/api/auth => providers/elasticsearch/tests/unit/elasticsearch/hooks}/__init__.py (100%)
rename providers/elasticsearch/tests/{provider_tests => unit}/elasticsearch/hooks/test_elasticsearch.py (100%)
copy {airflow/api_connexion => providers/elasticsearch/tests/unit/elasticsearch/log}/__init__.py (100%)
rename providers/elasticsearch/tests/{provider_tests => unit}/elasticsearch/log/elasticmock/__init__.py (97%)
rename providers/elasticsearch/tests/{provider_tests => unit}/elasticsearch/log/elasticmock/fake_elasticsearch.py (99%)
rename providers/elasticsearch/tests/{provider_tests => unit}/elasticsearch/log/elasticmock/utilities/__init__.py (100%)
rename providers/elasticsearch/tests/{provider_tests => unit}/elasticsearch/log/test_es_json_formatter.py (100%)
rename providers/elasticsearch/tests/{provider_tests => unit}/elasticsearch/log/test_es_response.py (100%)
rename providers/elasticsearch/tests/{provider_tests => unit}/elasticsearch/log/test_es_task_handler.py (99%)
delete mode 100644 providers/exasol/tests/provider_tests/exasol/__init__.py
delete mode 100644 providers/exasol/tests/provider_tests/exasol/hooks/__init__.py
delete mode 100644 providers/exasol/tests/provider_tests/exasol/operators/__init__.py
copy providers/{ => exasol/tests/unit}/__init__.py (100%)
copy {airflow/api/auth => providers/exasol/tests/unit/exasol}/__init__.py (100%)
copy {airflow/api/auth => providers/exasol/tests/unit/exasol/hooks}/__init__.py (100%)
rename providers/exasol/tests/{provider_tests => unit}/exasol/hooks/test_exasol.py (100%)
rename providers/exasol/tests/{provider_tests => unit}/exasol/hooks/test_sql.py (100%)
copy {airflow/api/auth => providers/exasol/tests/unit/exasol/operators}/__init__.py (100%)
rename providers/exasol/tests/{provider_tests => unit}/exasol/operators/test_exasol.py (100%)
rename providers/exasol/tests/{provider_tests => unit}/exasol/operators/test_exasol_sql.py (100%)
create mode 100644 providers/fab/src/airflow/providers/3rd-party-licenses/LICENSES-ui.txt
create mode 100644 providers/fab/src/airflow/providers/fab/www/static/dist/airflowDefaultTheme.feec4a4075c2f3d6ae01.css
create mode 100644 providers/fab/src/airflow/providers/fab/www/static/dist/airflowDefaultTheme.feec4a4075c2f3d6ae01.js
create mode 100644 providers/fab/src/airflow/providers/fab/www/static/dist/d3-tip.js
create mode 100644 providers/fab/src/airflow/providers/fab/www/static/dist/loadingDots.48ab7d5b04e66f2686b0.css
create mode 100644 providers/fab/src/airflow/providers/fab/www/static/dist/loadingDots.48ab7d5b04e66f2686b0.js
create mode 100644 providers/fab/src/airflow/providers/fab/www/static/dist/main.b585926afc96bd076c4f.css
create mode 100644 providers/fab/src/airflow/providers/fab/www/static/dist/main.b585926afc96bd076c4f.js
copy airflow/ui/src/utils/advancedSelectStyles.ts => providers/fab/src/airflow/providers/fab/www/static/dist/main.b585926afc96bd076c4f.js.LICENSE.txt (100%)
create mode 100644 providers/fab/src/airflow/providers/fab/www/static/dist/manifest.json
create mode 100644 providers/fab/src/airflow/providers/fab/www/static/dist/materialIcons.57390fa60d8f61175334.css
create mode 100644 providers/fab/src/airflow/providers/fab/www/static/dist/materialIcons.57390fa60d8f61175334.js
create mode 100644 providers/fab/src/airflow/providers/fab/www/static/dist/moment.4d28b37c229bdfc54575.js
create mode 100644 providers/fab/src/airflow/providers/fab/www/static/dist/moment.4d28b37c229bdfc54575.js.LICENSE.txt
create mode 100644 providers/fab/src/airflow/providers/fab/www/static/dist/oss-licenses.json
delete mode 100644 providers/fab/tests/provider_tests/fab/__init__.py
delete mode 100644 providers/fab/tests/provider_tests/fab/auth_manager/__init__.py
delete mode 100644 providers/fab/tests/provider_tests/fab/auth_manager/api/__init__.py
delete mode 100644 providers/fab/tests/provider_tests/fab/auth_manager/api/auth/__init__.py
delete mode 100644 providers/fab/tests/provider_tests/fab/auth_manager/api/auth/backend/__init__.py
delete mode 100644 providers/fab/tests/provider_tests/fab/auth_manager/api_endpoints/__init__.py
delete mode 100644 providers/fab/tests/provider_tests/fab/auth_manager/cli_commands/__init__.py
delete mode 100644 providers/fab/tests/provider_tests/fab/auth_manager/models/__init__.py
delete mode 100644 providers/fab/tests/provider_tests/fab/auth_manager/schemas/__init__.py
delete mode 100644 providers/fab/tests/provider_tests/fab/auth_manager/security_manager/__init__.py
delete mode 100644 providers/fab/tests/provider_tests/fab/www/__init__.py
delete mode 100644 providers/fab/tests/provider_tests/fab/www/views/__init__.py
copy providers/{ => fab/tests/unit}/__init__.py (100%)
copy {airflow/api/auth => providers/fab/tests/unit/fab}/__init__.py (100%)
copy {airflow/api/auth => providers/fab/tests/unit/fab/auth_manager}/__init__.py (100%)
copy {airflow/api/auth => providers/fab/tests/unit/fab/auth_manager/api}/__init__.py (100%)
copy {airflow/api_connexion => providers/fab/tests/unit/fab/auth_manager/api/auth}/__init__.py (100%)
copy {airflow/api_connexion => providers/fab/tests/unit/fab/auth_manager/api/auth/backend}/__init__.py (100%)
rename providers/fab/tests/{provider_tests => unit}/fab/auth_manager/api/auth/backend/test_basic_auth.py (100%)
rename providers/fab/tests/{provider_tests => unit}/fab/auth_manager/api/auth/backend/test_kerberos_auth.py (100%)
rename providers/fab/tests/{provider_tests => unit}/fab/auth_manager/api/auth/backend/test_session.py (100%)
copy {airflow/api_connexion => providers/fab/tests/unit/fab/auth_manager/api_endpoints}/__init__.py (100%)
rename providers/fab/tests/{provider_tests => unit}/fab/auth_manager/api_endpoints/api_connexion_utils.py (99%)
rename providers/fab/tests/{provider_tests => unit}/fab/auth_manager/api_endpoints/remote_user_api_auth_backend.py (100%)
rename providers/fab/tests/{provider_tests => unit}/fab/auth_manager/api_endpoints/test_asset_endpoint.py (99%)
rename providers/fab/tests/{provider_tests => unit}/fab/auth_manager/api_endpoints/test_auth.py (100%)
rename providers/fab/tests/{provider_tests => unit}/fab/auth_manager/api_endpoints/test_cors.py (100%)
rename providers/fab/tests/{provider_tests => unit}/fab/auth_manager/api_endpoints/test_dag_endpoint.py (98%)
rename providers/fab/tests/{provider_tests => unit}/fab/auth_manager/api_endpoints/test_dag_run_endpoint.py (99%)
rename providers/fab/tests/{provider_tests => unit}/fab/auth_manager/api_endpoints/test_dag_source_endpoint.py (97%)
rename providers/fab/tests/{provider_tests => unit}/fab/auth_manager/api_endpoints/test_dag_warning_endpoint.py (96%)
rename providers/fab/tests/{provider_tests => unit}/fab/auth_manager/api_endpoints/test_event_log_endpoint.py (98%)
rename providers/fab/tests/{provider_tests => unit}/fab/auth_manager/api_endpoints/test_import_error_endpoint.py (98%)
rename providers/fab/tests/{provider_tests => unit}/fab/auth_manager/api_endpoints/test_role_and_permission_endpoint.py (99%)
rename providers/fab/tests/{provider_tests => unit}/fab/auth_manager/api_endpoints/test_task_instance_endpoint.py (99%)
rename providers/fab/tests/{provider_tests => unit}/fab/auth_manager/api_endpoints/test_user_endpoint.py (99%)
rename providers/fab/tests/{provider_tests => unit}/fab/auth_manager/api_endpoints/test_variable_endpoint.py (96%)
rename providers/fab/tests/{provider_tests => unit}/fab/auth_manager/api_endpoints/test_xcom_endpoint.py (98%)
copy {airflow/api_connexion => providers/fab/tests/unit/fab/auth_manager/cli_commands}/__init__.py (100%)
rename providers/fab/tests/{provider_tests => unit}/fab/auth_manager/cli_commands/test_db_command.py (100%)
rename providers/fab/tests/{provider_tests => unit}/fab/auth_manager/cli_commands/test_definition.py (100%)
rename providers/fab/tests/{provider_tests => unit}/fab/auth_manager/cli_commands/test_role_command.py (100%)
rename providers/fab/tests/{provider_tests => unit}/fab/auth_manager/cli_commands/test_sync_perm_command.py (100%)
rename providers/fab/tests/{provider_tests => unit}/fab/auth_manager/cli_commands/test_user_command.py (100%)
rename providers/fab/tests/{provider_tests => unit}/fab/auth_manager/cli_commands/test_utils.py (100%)
rename providers/fab/tests/{provider_tests => unit}/fab/auth_manager/conftest.py (95%)
copy {airflow/api/auth => providers/fab/tests/unit/fab/auth_manager/models}/__init__.py (100%)
rename providers/fab/tests/{provider_tests => unit}/fab/auth_manager/models/test_anonymous_user.py (100%)
rename providers/fab/tests/{provider_tests => unit}/fab/auth_manager/models/test_db.py (98%)
copy {airflow/api/auth => providers/fab/tests/unit/fab/auth_manager/schemas}/__init__.py (100%)
rename providers/fab/tests/{provider_tests => unit}/fab/auth_manager/schemas/test_role_and_permission_schema.py (97%)
rename providers/fab/tests/{provider_tests => unit}/fab/auth_manager/schemas/test_user_schema.py (97%)
copy {airflow/api_connexion => providers/fab/tests/unit/fab/auth_manager/security_manager}/__init__.py (100%)
rename providers/fab/tests/{provider_tests => unit}/fab/auth_manager/security_manager/test_constants.py (100%)
rename providers/fab/tests/{provider_tests => unit}/fab/auth_manager/security_manager/test_override.py (100%)
rename providers/fab/tests/{provider_tests => unit}/fab/auth_manager/test_fab_auth_manager.py (99%)
rename providers/fab/tests/{provider_tests => unit}/fab/auth_manager/test_models.py (100%)
rename providers/fab/tests/{provider_tests => unit}/fab/auth_manager/test_security.py (99%)
rename providers/fab/tests/{provider_tests => unit}/fab/auth_manager/views/__init__.py (100%)
rename providers/fab/tests/{provider_tests => unit}/fab/auth_manager/views/test_permissions.py (93%)
rename providers/fab/tests/{provider_tests => unit}/fab/auth_manager/views/test_roles_list.py (91%)
rename providers/fab/tests/{provider_tests => unit}/fab/auth_manager/views/test_user.py (91%)
rename providers/fab/tests/{provider_tests => unit}/fab/auth_manager/views/test_user_edit.py (91%)
rename providers/fab/tests/{provider_tests => unit}/fab/auth_manager/views/test_user_stats.py (91%)
copy {airflow/api/auth => providers/fab/tests/unit/fab/www}/__init__.py (100%)
copy {airflow/api/auth => providers/fab/tests/unit/fab/www/views}/__init__.py (100%)
rename providers/fab/tests/{provider_tests => unit}/fab/www/views/conftest.py (97%)
rename providers/fab/tests/{provider_tests => unit}/fab/www/views/test_views_acl.py (59%)
rename providers/fab/tests/{provider_tests => unit}/fab/www/views/test_views_custom_user_views.py (99%)
delete mode 100644 providers/facebook/tests/provider_tests/facebook/__init__.py
delete mode 100644 providers/facebook/tests/provider_tests/facebook/ads/__init__.py
delete mode 100644 providers/facebook/tests/provider_tests/facebook/ads/hooks/__init__.py
copy providers/{ => facebook/tests/unit}/__init__.py (100%)
copy {airflow/api_connexion => providers/facebook/tests/unit/facebook}/__init__.py (100%)
copy {airflow/api_connexion => providers/facebook/tests/unit/facebook/ads}/__init__.py (100%)
copy {airflow/api_connexion => providers/facebook/tests/unit/facebook/ads/hooks}/__init__.py (100%)
rename providers/facebook/tests/{provider_tests => unit}/facebook/ads/hooks/test_ads.py (100%)
delete mode 100644 providers/ftp/tests/provider_tests/ftp/__init__.py
delete mode 100644 providers/ftp/tests/provider_tests/ftp/hooks/__init__.py
delete mode 100644 providers/ftp/tests/provider_tests/ftp/operators/__init__.py
delete mode 100644 providers/ftp/tests/provider_tests/ftp/sensors/__init__.py
copy providers/{ => ftp/tests/system}/__init__.py (100%)
copy providers/{ => ftp/tests/unit}/__init__.py (100%)
copy {airflow/api/auth => providers/ftp/tests/unit/ftp}/__init__.py (100%)
copy {airflow/api/auth => providers/ftp/tests/unit/ftp/hooks}/__init__.py (100%)
rename providers/ftp/tests/{provider_tests => unit}/ftp/hooks/test_ftp.py (100%)
copy {airflow/api_connexion => providers/ftp/tests/unit/ftp/operators}/__init__.py (100%)
rename providers/ftp/tests/{provider_tests => unit}/ftp/operators/test_ftp.py (100%)
copy {airflow/api/auth => providers/ftp/tests/unit/ftp/sensors}/__init__.py (100%)
rename providers/ftp/tests/{provider_tests => unit}/ftp/sensors/test_ftp.py (100%)
delete mode 100644 providers/github/tests/provider_tests/github/__init__.py
delete mode 100644 providers/github/tests/provider_tests/github/hooks/__init__.py
delete mode 100644 providers/github/tests/provider_tests/github/operators/__init__.py
delete mode 100644 providers/github/tests/provider_tests/github/sensors/__init__.py
copy providers/{ => github/tests/system}/__init__.py (100%)
copy providers/{ => github/tests/unit}/__init__.py (100%)
copy {airflow/api_connexion => providers/github/tests/unit/github}/__init__.py (100%)
copy {airflow/api_connexion => providers/github/tests/unit/github/hooks}/__init__.py (100%)
rename providers/github/tests/{provider_tests => unit}/github/hooks/test_github.py (100%)
copy {airflow/api_connexion => providers/github/tests/unit/github/operators}/__init__.py (100%)
rename providers/github/tests/{provider_tests => unit}/github/operators/test_github.py (100%)
copy {airflow/api_connexion => providers/github/tests/unit/github/sensors}/__init__.py (100%)
rename providers/github/tests/{provider_tests => unit}/github/sensors/test_github.py (100%)
create mode 100644 providers/google/docs/operators/cloud/managed_kafka.rst
create mode 100644 providers/google/src/airflow/providers/google/cloud/hooks/managed_kafka.py
create mode 100644 providers/google/src/airflow/providers/google/cloud/links/managed_kafka.py
create mode 100644 providers/google/src/airflow/providers/google/cloud/operators/managed_kafka.py
delete mode 100644 providers/google/src/airflow/providers/google/marketing_platform/example_dags/__init__.py
create mode 100644 providers/google/tests/deprecations_ignore.yml
copy providers/{ => google/tests/integration}/__init__.py (100%)
copy {airflow/api_connexion => providers/google/tests/integration/google}/__init__.py (100%)
copy {airflow/api_connexion => providers/google/tests/integration/google/cloud}/__init__.py (100%)
copy {airflow/api_connexion => providers/google/tests/integration/google/cloud/transfers}/__init__.py (100%)
rename providers/{ => google}/tests/integration/google/cloud/transfers/test_bigquery_to_mssql.py (100%)
rename providers/{ => google}/tests/integration/google/cloud/transfers/test_mssql_to_gcs.py (100%)
rename providers/{ => google}/tests/integration/google/cloud/transfers/test_trino_to_gcs.py (100%)
delete mode 100644 providers/google/tests/provider_tests/google/__init__.py
delete mode 100644 providers/google/tests/provider_tests/google/ads/__init__.py
delete mode 100644 providers/google/tests/provider_tests/google/ads/hooks/__init__.py
delete mode 100644 providers/google/tests/provider_tests/google/ads/operators/__init__.py
delete mode 100644 providers/google/tests/provider_tests/google/ads/transfers/__init__.py
delete mode 100644 providers/google/tests/provider_tests/google/assets/__init__.py
delete mode 100644 providers/google/tests/provider_tests/google/cloud/__init__.py
delete mode 100644 providers/google/tests/provider_tests/google/cloud/_internal_client/__init__.py
delete mode 100644 providers/google/tests/provider_tests/google/cloud/hooks/__init__.py
delete mode 100644 providers/google/tests/provider_tests/google/cloud/hooks/vertex_ai/__init__.py
delete mode 100644 providers/google/tests/provider_tests/google/cloud/links/__init__.py
delete mode 100644 providers/google/tests/provider_tests/google/cloud/log/__init__.py
delete mode 100644 providers/google/tests/provider_tests/google/cloud/openlineage/__init__.py
delete mode 100644 providers/google/tests/provider_tests/google/cloud/operators/__init__.py
delete mode 100644 providers/google/tests/provider_tests/google/cloud/operators/source/__init__.py
delete mode 100644 providers/google/tests/provider_tests/google/cloud/operators/source/source_prefix/__init__.py
delete mode 100644 providers/google/tests/provider_tests/google/cloud/operators/vertex_ai/__init__.py
delete mode 100644 providers/google/tests/provider_tests/google/cloud/secrets/__init__.py
delete mode 100644 providers/google/tests/provider_tests/google/cloud/sensors/__init__.py
delete mode 100644 providers/google/tests/provider_tests/google/cloud/transfers/__init__.py
delete mode 100644 providers/google/tests/provider_tests/google/cloud/transfers/test_facebook_ads_to_gcs_system.py
delete mode 100644 providers/google/tests/provider_tests/google/cloud/transfers/test_salesforce_to_gcs_system.py
delete mode 100644 providers/google/tests/provider_tests/google/cloud/triggers/__init__.py
delete mode 100644 providers/google/tests/provider_tests/google/cloud/utils/__init__.py
delete mode 100644 providers/google/tests/provider_tests/google/common/__init__.py
delete mode 100644 providers/google/tests/provider_tests/google/common/auth_backend/__init__.py
delete mode 100644 providers/google/tests/provider_tests/google/common/hooks/__init__.py
delete mode 100644 providers/google/tests/provider_tests/google/common/utils/__init__.py
delete mode 100644 providers/google/tests/provider_tests/google/firebase/__init__.py
delete mode 100644 providers/google/tests/provider_tests/google/firebase/hooks/__init__.py
delete mode 100644 providers/google/tests/provider_tests/google/firebase/operators/__init__.py
delete mode 100644 providers/google/tests/provider_tests/google/leveldb/__init__.py
delete mode 100644 providers/google/tests/provider_tests/google/leveldb/hooks/__init__.py
delete mode 100644 providers/google/tests/provider_tests/google/leveldb/operators/__init__.py
delete mode 100644 providers/google/tests/provider_tests/google/marketing_platform/__init__.py
delete mode 100644 providers/google/tests/provider_tests/google/marketing_platform/hooks/__init__.py
delete mode 100644 providers/google/tests/provider_tests/google/marketing_platform/links/__init__.py
delete mode 100644 providers/google/tests/provider_tests/google/marketing_platform/operators/__init__.py
delete mode 100644 providers/google/tests/provider_tests/google/marketing_platform/operators/test_display_video_system.py
delete mode 100644 providers/google/tests/provider_tests/google/marketing_platform/sensors/__init__.py
delete mode 100644 providers/google/tests/provider_tests/google/suite/__init__.py
delete mode 100644 providers/google/tests/provider_tests/google/suite/hooks/__init__.py
delete mode 100644 providers/google/tests/provider_tests/google/suite/operators/__init__.py
delete mode 100644 providers/google/tests/provider_tests/google/suite/sensors/__init__.py
delete mode 100644 providers/google/tests/provider_tests/google/suite/transfers/__init__.py
copy providers/{ => google/tests/system}/__init__.py (100%)
delete mode 100644 providers/google/tests/system/google/cloud/bigquery/example_bigquery_operations_location.py
delete mode 100644 providers/google/tests/system/google/cloud/bigquery/example_bigquery_queries_location.py
delete mode 100644 providers/google/tests/system/google/cloud/bigquery/example_bigquery_to_gcs_async.py
rename providers/google/{src/airflow/providers/google/cloud/example_dags => tests/system/google/cloud/gcs}/example_presto_to_gcs.py (73%)
rename providers/google/{src/airflow/providers/google/cloud/example_dags => tests/system/google/cloud/gcs}/example_salesforce_to_gcs.py (56%)
copy {airflow/api_connexion => providers/google/tests/system/google/cloud/looker}/__init__.py (100%)
rename providers/google/{src/airflow/providers/google/cloud/example_dags => tests/system/google/cloud/looker}/example_looker.py (69%)
copy {airflow/api_connexion => providers/google/tests/system/google/cloud/managed_kafka}/__init__.py (100%)
create mode 100644 providers/google/tests/system/google/cloud/managed_kafka/example_managed_kafka_cluster.py
create mode 100644 providers/google/tests/system/google/cloud/managed_kafka/example_managed_kafka_topic.py
rename providers/google/{src/airflow/providers/google/cloud/example_dags => tests/system/google/cloud/transfers}/example_facebook_ads_to_gcs.py (63%)
rename providers/google/{src/airflow/providers/google/marketing_platform/example_dags => tests/system/google/marketing_platform}/example_display_video.py (85%)
copy providers/{ => google/tests/unit}/__init__.py (100%)
copy {airflow/api_connexion => providers/google/tests/unit/google}/__init__.py (100%)
copy {airflow/api_connexion => providers/google/tests/unit/google/ads}/__init__.py (100%)
copy {airflow/api_connexion => providers/google/tests/unit/google/ads/hooks}/__init__.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/ads/hooks/test_ads.py (100%)
copy {airflow/api_connexion => providers/google/tests/unit/google/ads/operators}/__init__.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/ads/operators/test_ads.py (100%)
copy {airflow/api_connexion => providers/google/tests/unit/google/ads/transfers}/__init__.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/ads/transfers/test_ads_to_gcs.py (98%)
copy {airflow/api_connexion => providers/google/tests/unit/google/assets}/__init__.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/assets/test_bigquery.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/assets/test_gcs.py (100%)
copy {airflow/api_connexion => providers/google/tests/unit/google/cloud}/__init__.py (100%)
copy {airflow/api_connexion => providers/google/tests/unit/google/cloud/_internal_client}/__init__.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/_internal_client/test_secret_manager_client.py (100%)
copy {airflow/api_connexion => providers/google/tests/unit/google/cloud/hooks}/__init__.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/hooks/test_alloy_db.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/hooks/test_automl.py (98%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/hooks/test_bigquery.py (94%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/hooks/test_bigquery_dts.py (98%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/hooks/test_bigquery_system.py (96%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/hooks/test_bigtable.py (99%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/hooks/test_cloud_batch.py (99%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/hooks/test_cloud_build.py (99%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/hooks/test_cloud_composer.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/hooks/test_cloud_memorystore.py (99%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/hooks/test_cloud_run.py (99%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/hooks/test_cloud_sql.py (99%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/hooks/test_cloud_storage_transfer_service.py (99%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/hooks/test_cloud_storage_transfer_service_async.py (98%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/hooks/test_compute.py (99%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/hooks/test_compute_ssh.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/hooks/test_datacatalog.py (99%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/hooks/test_dataflow.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/hooks/test_dataform.py (99%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/hooks/test_datafusion.py (99%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/hooks/test_dataplex.py (78%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/hooks/test_dataprep.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/hooks/test_dataproc.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/hooks/test_dataproc_metastore.py (99%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/hooks/test_datastore.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/hooks/test_dlp.py (99%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/hooks/test_functions.py (99%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/hooks/test_gcs.py (99%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/hooks/test_gdm.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/hooks/test_kms.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/hooks/test_kms_system.py (98%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/hooks/test_kubernetes_engine.py (99%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/hooks/test_life_sciences.py (99%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/hooks/test_looker.py (100%)
create mode 100644 providers/google/tests/unit/google/cloud/hooks/test_managed_kafka.py
rename providers/google/tests/{provider_tests => unit}/google/cloud/hooks/test_mlengine.py (99%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/hooks/test_natural_language.py (98%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/hooks/test_os_login.py (99%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/hooks/test_pubsub.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/hooks/test_secret_manager.py (99%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/hooks/test_secret_manager_system.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/hooks/test_spanner.py (99%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/hooks/test_speech_to_text.py (96%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/hooks/test_stackdriver.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/hooks/test_tasks.py (99%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/hooks/test_text_to_speech.py (96%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/hooks/test_translate.py (98%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/hooks/test_video_intelligence.py (97%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/hooks/test_vision.py (99%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/hooks/test_workflows.py (100%)
copy {airflow/api_connexion => providers/google/tests/unit/google/cloud/hooks/vertex_ai}/__init__.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/hooks/vertex_ai/test_auto_ml.py (99%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/hooks/vertex_ai/test_batch_prediction_job.py (99%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/hooks/vertex_ai/test_custom_job.py (99%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/hooks/vertex_ai/test_dataset.py (99%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/hooks/vertex_ai/test_endpoint_service.py (99%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/hooks/vertex_ai/test_feature_store.py (98%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/hooks/vertex_ai/test_generative_model.py (99%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/hooks/vertex_ai/test_hyperparameter_tuning_job.py (99%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/hooks/vertex_ai/test_model_service.py (99%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/hooks/vertex_ai/test_pipeline_job.py (99%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/hooks/vertex_ai/test_prediction_service.py (98%)
copy {airflow/api_connexion => providers/google/tests/unit/google/cloud/links}/__init__.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/links/test_alloy_db.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/links/test_dataplex.py (90%)
create mode 100644 providers/google/tests/unit/google/cloud/links/test_managed_kafka.py
rename providers/google/tests/{provider_tests => unit}/google/cloud/links/test_translate.py (100%)
copy {airflow/api_connexion => providers/google/tests/unit/google/cloud/log}/__init__.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/log/test_gcs_task_handler.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/log/test_gcs_task_handler_system.py (98%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/log/test_stackdriver_task_handler.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/log/test_stackdriver_task_handler_system.py (98%)
copy {airflow/api_connexion => providers/google/tests/unit/google/cloud/openlineage}/__init__.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/openlineage/test_facets.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/openlineage/test_mixins.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/openlineage/test_utils.py (99%)
copy {airflow/api_connexion => providers/google/tests/unit/google/cloud/operators}/__init__.py (100%)
copy {airflow/api_connexion => providers/google/tests/unit/google/cloud/operators/source}/__init__.py (100%)
copy {airflow/api_connexion => providers/google/tests/unit/google/cloud/operators/source/source_prefix}/__init__.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/operators/test_alloy_db.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/operators/test_automl.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/operators/test_bigquery.py (87%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/operators/test_bigquery_dts.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/operators/test_bigtable.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/operators/test_cloud_base.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/operators/test_cloud_batch.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/operators/test_cloud_build.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/operators/test_cloud_composer.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/operators/test_cloud_memorystore.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/operators/test_cloud_run.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/operators/test_cloud_sql.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/operators/test_cloud_storage_transfer_service.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/operators/test_compute.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/operators/test_datacatalog.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/operators/test_dataflow.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/operators/test_dataform.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/operators/test_datafusion.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/operators/test_datapipeline.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/operators/test_dataplex.py (82%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/operators/test_dataprep.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/operators/test_dataprep_system.py (94%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/operators/test_dataproc.py (96%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/operators/test_dataproc_metastore.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/operators/test_datastore.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/operators/test_datastore_system.py (95%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/operators/test_dlp.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/operators/test_functions.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/operators/test_gcs.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/operators/test_kubernetes_engine.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/operators/test_life_sciences.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/operators/test_looker.py (100%)
create mode 100644 providers/google/tests/unit/google/cloud/operators/test_managed_kafka.py
rename providers/google/tests/{provider_tests => unit}/google/cloud/operators/test_mlengine.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/operators/test_natural_language.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/operators/test_pubsub.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/operators/test_spanner.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/operators/test_speech_to_text.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/operators/test_stackdriver.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/operators/test_tasks.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/operators/test_text_to_speech.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/operators/test_translate.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/operators/test_translate_speech.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/operators/test_vertex_ai.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/operators/test_video_intelligence.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/operators/test_vision.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/operators/test_workflows.py (100%)
copy {airflow/api_connexion => providers/google/tests/unit/google/cloud/operators/vertex_ai}/__init__.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/operators/vertex_ai/test_feature_store.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/operators/vertex_ai/test_generative_model.py (100%)
copy {airflow/api_connexion => providers/google/tests/unit/google/cloud/secrets}/__init__.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/secrets/test_secret_manager.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/secrets/test_secret_manager_system.py (97%)
copy {airflow/api_connexion => providers/google/tests/unit/google/cloud/sensors}/__init__.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/sensors/test_bigquery.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/sensors/test_bigquery_dts.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/sensors/test_bigtable.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/sensors/test_cloud_composer.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/sensors/test_cloud_storage_transfer_service.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/sensors/test_dataflow.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/sensors/test_dataform.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/sensors/test_datafusion.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/sensors/test_dataplex.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/sensors/test_dataprep.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/sensors/test_dataproc.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/sensors/test_dataproc_metastore.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/sensors/test_gcs.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/sensors/test_looker.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/sensors/test_pubsub.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/sensors/test_tasks.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/sensors/test_vertex_ai.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/sensors/test_workflows.py (100%)
copy {airflow/api_connexion => providers/google/tests/unit/google/cloud/transfers}/__init__.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/transfers/test_adls_to_gcs.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/transfers/test_azure_blob_to_gcs.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/transfers/test_azure_fileshare_to_gcs.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/transfers/test_bigquery_to_bigquery.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/transfers/test_bigquery_to_gcs.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/transfers/test_bigquery_to_mssql.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/transfers/test_bigquery_to_mysql.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/transfers/test_bigquery_to_postgres.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/transfers/test_calendar_to_gcs.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/transfers/test_cassandra_to_gcs.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/transfers/test_facebook_ads_to_gcs.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/transfers/test_gcs_to_bigquery.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/transfers/test_gcs_to_gcs.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/transfers/test_gcs_to_local.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/transfers/test_gcs_to_sftp.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/transfers/test_gdrive_to_gcs.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/transfers/test_gdrive_to_local.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/transfers/test_local_to_gcs.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/transfers/test_mssql_to_gcs.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/transfers/test_mysql_to_gcs.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/transfers/test_oracle_to_gcs.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/transfers/test_postgres_to_gcs.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/transfers/test_s3_to_gcs.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/transfers/test_salesforce_to_gcs.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/transfers/test_sftp_to_gcs.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/transfers/test_sheets_to_gcs.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/transfers/test_sql_to_gcs.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/transfers/test_trino_to_gcs.py (100%)
copy {airflow/api_connexion => providers/google/tests/unit/google/cloud/triggers}/__init__.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/triggers/test_bigquery.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/triggers/test_bigquery_dts.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/triggers/test_cloud_batch.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/triggers/test_cloud_build.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/triggers/test_cloud_composer.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/triggers/test_cloud_run.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/triggers/test_cloud_sql.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/triggers/test_cloud_storage_transfer_service.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/triggers/test_dataflow.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/triggers/test_datafusion.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/triggers/test_dataplex.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/triggers/test_dataproc.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/triggers/test_gcs.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/triggers/test_kubernetes_engine.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/triggers/test_mlengine.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/triggers/test_pubsub.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/triggers/test_vertex_ai.py (99%)
copy {airflow/api/auth => providers/google/tests/unit/google/cloud/utils}/__init__.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/utils/airflow_util.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/utils/base_gcp_mock.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/utils/copy_job_details.json (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/utils/extract_job_details.json (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/utils/gcp_authenticator.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/utils/load_job_details.json (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/utils/out_table_details.json (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/utils/query_job_details.json (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/utils/script_job_details.json (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/utils/table_details.json (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/utils/test_credentials_provider.py (100%)
copy {tests => providers/google/tests/unit/google/cloud}/utils/test_dataform.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/utils/test_datafusion.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/utils/test_dataproc.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/utils/test_external_token_supplier.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/utils/test_field_sanitizer.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/utils/test_field_validator.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/utils/test_helpers.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/utils/test_mlengine_operator_utils.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/cloud/utils/test_mlengine_prediction_summary.py (100%)
copy {airflow/api_connexion => providers/google/tests/unit/google/common}/__init__.py (100%)
copy {airflow/api_connexion => providers/google/tests/unit/google/common/auth_backend}/__init__.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/common/auth_backend/test_google_openid.py (100%)
copy {airflow/api_connexion => providers/google/tests/unit/google/common/hooks}/__init__.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/common/hooks/test_base_google.py (99%)
rename providers/google/tests/{provider_tests => unit}/google/common/hooks/test_discovery_api.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/common/test_deprecated.py (100%)
copy {airflow/api_connexion => providers/google/tests/unit/google/common/utils}/__init__.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/common/utils/test_id_token_credentials.py (100%)
copy {airflow/api_connexion => providers/google/tests/unit/google/firebase}/__init__.py (100%)
copy {airflow/api_connexion => providers/google/tests/unit/google/firebase/hooks}/__init__.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/firebase/hooks/test_firestore.py (99%)
copy {airflow/api_connexion => providers/google/tests/unit/google/firebase/operators}/__init__.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/firebase/operators/test_firestore.py (100%)
copy {airflow/api/auth => providers/google/tests/unit/google/leveldb}/__init__.py (100%)
copy {airflow/api/auth => providers/google/tests/unit/google/leveldb/hooks}/__init__.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/leveldb/hooks/test_leveldb.py (100%)
copy {airflow/api/auth => providers/google/tests/unit/google/leveldb/operators}/__init__.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/leveldb/operators/test_leveldb.py (100%)
copy {airflow/api_connexion => providers/google/tests/unit/google/marketing_platform}/__init__.py (100%)
copy {airflow/api_connexion => providers/google/tests/unit/google/marketing_platform/hooks}/__init__.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/marketing_platform/hooks/test_analytics_admin.py (98%)
rename providers/google/tests/{provider_tests => unit}/google/marketing_platform/hooks/test_campaign_manager.py (99%)
rename providers/google/tests/{provider_tests => unit}/google/marketing_platform/hooks/test_display_video.py (99%)
rename providers/google/tests/{provider_tests => unit}/google/marketing_platform/hooks/test_search_ads.py (98%)
copy {airflow/api/auth => providers/google/tests/unit/google/marketing_platform/links}/__init__.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/marketing_platform/links/test_analytics_admin.py (100%)
copy {airflow/api_connexion => providers/google/tests/unit/google/marketing_platform/operators}/__init__.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/marketing_platform/operators/test_analytics_admin.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/marketing_platform/operators/test_campaign_manager.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/marketing_platform/operators/test_display_video.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/marketing_platform/operators/test_search_ads.py (100%)
copy {airflow/api_connexion => providers/google/tests/unit/google/marketing_platform/sensors}/__init__.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/marketing_platform/sensors/test_campaign_manager.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/marketing_platform/sensors/test_display_video.py (100%)
copy {airflow/api/auth => providers/google/tests/unit/google/suite}/__init__.py (100%)
copy {airflow/api/auth => providers/google/tests/unit/google/suite/hooks}/__init__.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/suite/hooks/test_calendar.py (97%)
rename providers/google/tests/{provider_tests => unit}/google/suite/hooks/test_drive.py (99%)
rename providers/google/tests/{provider_tests => unit}/google/suite/hooks/test_sheets.py (99%)
copy {airflow/api/auth => providers/google/tests/unit/google/suite/operators}/__init__.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/suite/operators/test_sheets.py (100%)
copy {airflow/api/auth => providers/google/tests/unit/google/suite/sensors}/__init__.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/suite/sensors/test_drive.py (100%)
copy {airflow/api_connexion => providers/google/tests/unit/google/suite/transfers}/__init__.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/suite/transfers/test_gcs_to_gdrive.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/suite/transfers/test_gcs_to_sheets.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/suite/transfers/test_local_to_drive.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/suite/transfers/test_sql_to_sheets.py (100%)
rename providers/google/tests/{provider_tests => unit}/google/test_go_module.py (100%)
delete mode 100644 providers/grpc/tests/provider_tests/grpc/__init__.py
delete mode 100644 providers/grpc/tests/provider_tests/grpc/hooks/__init__.py
delete mode 100644 providers/grpc/tests/provider_tests/grpc/operators/__init__.py
copy providers/{ => grpc/tests/unit}/__init__.py (100%)
copy {airflow/api/auth => providers/grpc/tests/unit/grpc}/__init__.py (100%)
copy {airflow/api/auth => providers/grpc/tests/unit/grpc/hooks}/__init__.py (100%)
rename providers/grpc/tests/{provider_tests => unit}/grpc/hooks/test_grpc.py (100%)
copy {airflow/api/auth => providers/grpc/tests/unit/grpc/operators}/__init__.py (100%)
rename providers/grpc/tests/{provider_tests => unit}/grpc/operators/test_grpc.py (100%)
delete mode 100644 providers/hashicorp/tests/provider_tests/hashicorp/__init__.py
delete mode 100644 providers/hashicorp/tests/provider_tests/hashicorp/_internal_client/__init__.py
delete mode 100644 providers/hashicorp/tests/provider_tests/hashicorp/hooks/__init__.py
delete mode 100644 providers/hashicorp/tests/provider_tests/hashicorp/secrets/__init__.py
copy providers/{ => hashicorp/tests/unit}/__init__.py (100%)
copy {airflow/api_connexion => providers/hashicorp/tests/unit/hashicorp}/__init__.py (100%)
copy {airflow/api_connexion => providers/hashicorp/tests/unit/hashicorp/_internal_client}/__init__.py (100%)
rename providers/hashicorp/tests/{provider_tests => unit}/hashicorp/_internal_client/test_vault_client.py (100%)
copy {airflow/api_connexion => providers/hashicorp/tests/unit/hashicorp/hooks}/__init__.py (100%)
rename providers/hashicorp/tests/{provider_tests => unit}/hashicorp/hooks/test_vault.py (100%)
copy {airflow/api_connexion => providers/hashicorp/tests/unit/hashicorp/secrets}/__init__.py (100%)
rename providers/hashicorp/tests/{provider_tests => unit}/hashicorp/secrets/test_vault.py (100%)
delete mode 100644 providers/http/tests/provider_tests/http/__init__.py
delete mode 100644 providers/http/tests/provider_tests/http/hooks/__init__.py
delete mode 100644 providers/http/tests/provider_tests/http/operators/__init__.py
delete mode 100644 providers/http/tests/provider_tests/http/sensors/__init__.py
delete mode 100644 providers/http/tests/provider_tests/http/triggers/__init__.py
copy providers/{ => http/tests/system}/__init__.py (100%)
copy providers/{ => http/tests/unit}/__init__.py (100%)
copy {airflow/api/auth => providers/http/tests/unit/http}/__init__.py (100%)
copy {airflow/api/auth => providers/http/tests/unit/http/hooks}/__init__.py (100%)
rename providers/http/tests/{provider_tests => unit}/http/hooks/test_http.py (91%)
copy {airflow/api/auth => providers/http/tests/unit/http/operators}/__init__.py (100%)
rename providers/http/tests/{provider_tests => unit}/http/operators/test_http.py (100%)
copy {airflow/api/auth => providers/http/tests/unit/http/sensors}/__init__.py (100%)
rename providers/http/tests/{provider_tests => unit}/http/sensors/test_http.py (95%)
copy {airflow/api/auth => providers/http/tests/unit/http/triggers}/__init__.py (100%)
rename providers/http/tests/{provider_tests => unit}/http/triggers/test_http.py (100%)
delete mode 100644 providers/imap/tests/provider_tests/imap/__init__.py
delete mode 100644 providers/imap/tests/provider_tests/imap/hooks/__init__.py
delete mode 100644 providers/imap/tests/provider_tests/imap/sensors/__init__.py
copy providers/{ => imap/tests/unit}/__init__.py (100%)
copy {airflow/api/auth => providers/imap/tests/unit/imap}/__init__.py (100%)
copy {airflow/api/auth => providers/imap/tests/unit/imap/hooks}/__init__.py (100%)
rename providers/imap/tests/{provider_tests => unit}/imap/hooks/test_imap.py (100%)
copy {airflow/api/auth => providers/imap/tests/unit/imap/sensors}/__init__.py (100%)
rename providers/imap/tests/{provider_tests => unit}/imap/sensors/test_imap_attachment.py (100%)
delete mode 100644 providers/influxdb/tests/provider_tests/influxdb/__init__.py
delete mode 100644 providers/influxdb/tests/provider_tests/influxdb/hooks/__init__.py
delete mode 100644 providers/influxdb/tests/provider_tests/influxdb/operators/__init__.py
copy providers/{ => influxdb/tests/system}/__init__.py (100%)
copy providers/{ => influxdb/tests/unit}/__init__.py (100%)
copy {airflow/api_connexion => providers/influxdb/tests/unit/influxdb}/__init__.py (100%)
copy {airflow/api_connexion => providers/influxdb/tests/unit/influxdb/hooks}/__init__.py (100%)
rename providers/influxdb/tests/{provider_tests => unit}/influxdb/hooks/test_influxdb.py (100%)
copy {airflow/api_connexion => providers/influxdb/tests/unit/influxdb/operators}/__init__.py (100%)
rename providers/influxdb/tests/{provider_tests => unit}/influxdb/operators/test_influxdb.py (100%)
delete mode 100644 providers/jdbc/tests/provider_tests/jdbc/__init__.py
delete mode 100644 providers/jdbc/tests/provider_tests/jdbc/hooks/__init__.py
copy providers/{ => jdbc/tests/system}/__init__.py (100%)
copy providers/{ => jdbc/tests/unit}/__init__.py (100%)
copy {airflow/api/auth => providers/jdbc/tests/unit/jdbc}/__init__.py (100%)
copy {airflow/api/auth => providers/jdbc/tests/unit/jdbc/hooks}/__init__.py (100%)
rename providers/jdbc/tests/{provider_tests => unit}/jdbc/hooks/test_jdbc.py (100%)
delete mode 100644 providers/jenkins/tests/provider_tests/jenkins/__init__.py
delete mode 100644 providers/jenkins/tests/provider_tests/jenkins/hooks/__init__.py
delete mode 100644 providers/jenkins/tests/provider_tests/jenkins/operators/__init__.py
delete mode 100644 providers/jenkins/tests/provider_tests/jenkins/sensors/__init__.py
copy providers/{ => jenkins/tests/system}/__init__.py (100%)
copy providers/{ => jenkins/tests/unit}/__init__.py (100%)
copy {airflow/api/auth => providers/jenkins/tests/unit/jenkins}/__init__.py (100%)
copy {airflow/api_connexion => providers/jenkins/tests/unit/jenkins/hooks}/__init__.py (100%)
rename providers/jenkins/tests/{provider_tests => unit}/jenkins/hooks/test_jenkins.py (100%)
copy {airflow/api/auth => providers/jenkins/tests/unit/jenkins/operators}/__init__.py (100%)
rename providers/jenkins/tests/{provider_tests => unit}/jenkins/operators/test_jenkins_job_trigger.py (100%)
copy {airflow/api/auth => providers/jenkins/tests/unit/jenkins/sensors}/__init__.py (100%)
rename providers/jenkins/tests/{provider_tests => unit}/jenkins/sensors/test_jenkins.py (100%)
delete mode 100644 providers/microsoft/azure/tests/provider_tests/microsoft/azure/__init__.py
delete mode 100644 providers/microsoft/azure/tests/provider_tests/microsoft/azure/fs/__init__.py
delete mode 100644 providers/microsoft/azure/tests/provider_tests/microsoft/azure/hooks/__init__.py
delete mode 100644 providers/microsoft/azure/tests/provider_tests/microsoft/azure/log/__init__.py
delete mode 100644 providers/microsoft/azure/tests/provider_tests/microsoft/azure/operators/__init__.py
delete mode 100644 providers/microsoft/azure/tests/provider_tests/microsoft/azure/resources/__init__.py
delete mode 100644 providers/microsoft/azure/tests/provider_tests/microsoft/azure/secrets/__init__.py
delete mode 100644 providers/microsoft/azure/tests/provider_tests/microsoft/azure/sensors/__init__.py
delete mode 100644 providers/microsoft/azure/tests/provider_tests/microsoft/azure/transfers/__init__.py
delete mode 100644 providers/microsoft/azure/tests/provider_tests/microsoft/azure/triggers/__init__.py
copy providers/{ => microsoft/azure/tests/system}/__init__.py (100%)
copy providers/{ => microsoft/azure/tests/system/microsoft}/__init__.py (100%)
copy providers/{ => microsoft/azure/tests/unit}/__init__.py (100%)
copy providers/{ => microsoft/azure/tests/unit/microsoft}/__init__.py (100%)
copy {airflow/api/auth => providers/microsoft/azure/tests/unit/microsoft/azure}/__init__.py (100%)
rename providers/microsoft/azure/tests/{provider_tests => unit}/microsoft/azure/base.py (95%)
copy {airflow/api/auth => providers/microsoft/azure/tests/unit/microsoft/azure/fs}/__init__.py (100%)
rename providers/microsoft/azure/tests/{provider_tests => unit}/microsoft/azure/fs/test_adls.py (100%)
copy {airflow/api/auth => providers/microsoft/azure/tests/unit/microsoft/azure/hooks}/__init__.py (100%)
rename providers/microsoft/azure/tests/{provider_tests => unit}/microsoft/azure/hooks/test_adx.py (100%)
rename providers/microsoft/azure/tests/{provider_tests => unit}/microsoft/azure/hooks/test_asb.py (100%)
rename providers/microsoft/azure/tests/{provider_tests => unit}/microsoft/azure/hooks/test_base_azure.py (100%)
rename providers/microsoft/azure/tests/{provider_tests => unit}/microsoft/azure/hooks/test_batch.py (100%)
rename providers/microsoft/azure/tests/{provider_tests => unit}/microsoft/azure/hooks/test_container_instance.py (100%)
rename providers/microsoft/azure/tests/{provider_tests => unit}/microsoft/azure/hooks/test_container_registry.py (100%)
rename providers/microsoft/azure/tests/{provider_tests => unit}/microsoft/azure/hooks/test_container_volume.py (100%)
rename providers/microsoft/azure/tests/{provider_tests => unit}/microsoft/azure/hooks/test_cosmos.py (100%)
rename providers/microsoft/azure/tests/{provider_tests => unit}/microsoft/azure/hooks/test_data_factory.py (100%)
rename providers/microsoft/azure/tests/{provider_tests => unit}/microsoft/azure/hooks/test_data_lake.py (100%)
rename providers/microsoft/azure/tests/{provider_tests => unit}/microsoft/azure/hooks/test_fileshare.py (100%)
rename providers/microsoft/azure/tests/{provider_tests => unit}/microsoft/azure/hooks/test_msgraph.py (91%)
rename providers/microsoft/azure/tests/{provider_tests => unit}/microsoft/azure/hooks/test_powerbi.py (100%)
rename providers/microsoft/azure/tests/{provider_tests => unit}/microsoft/azure/hooks/test_synapse.py (100%)
rename providers/microsoft/azure/tests/{provider_tests => unit}/microsoft/azure/hooks/test_synapse_pipeline.py (100%)
rename providers/microsoft/azure/tests/{provider_tests => unit}/microsoft/azure/hooks/test_wasb.py (100%)
copy {airflow/api_connexion => providers/microsoft/azure/tests/unit/microsoft/azure/log}/__init__.py (100%)
rename providers/microsoft/azure/tests/{provider_tests => unit}/microsoft/azure/log/test_wasb_task_handler.py (100%)
copy {airflow/api/auth => providers/microsoft/azure/tests/unit/microsoft/azure/operators}/__init__.py (100%)
rename providers/microsoft/azure/tests/{provider_tests => unit}/microsoft/azure/operators/test_adls_create.py (100%)
rename providers/microsoft/azure/tests/{provider_tests => unit}/microsoft/azure/operators/test_adls_delete.py (100%)
rename providers/microsoft/azure/tests/{provider_tests => unit}/microsoft/azure/operators/test_adls_list.py (100%)
rename providers/microsoft/azure/tests/{provider_tests => unit}/microsoft/azure/operators/test_adx.py (100%)
rename providers/microsoft/azure/tests/{provider_tests => unit}/microsoft/azure/operators/test_asb.py (100%)
rename providers/microsoft/azure/tests/{provider_tests => unit}/microsoft/azure/operators/test_batch.py (100%)
rename providers/microsoft/azure/tests/{provider_tests => unit}/microsoft/azure/operators/test_container_instances.py (100%)
rename providers/microsoft/azure/tests/{provider_tests => unit}/microsoft/azure/operators/test_cosmos.py (100%)
rename providers/microsoft/azure/tests/{provider_tests => unit}/microsoft/azure/operators/test_data_factory.py (99%)
rename providers/microsoft/azure/tests/{provider_tests => unit}/microsoft/azure/operators/test_msgraph.py (62%)
rename providers/microsoft/azure/tests/{provider_tests => unit}/microsoft/azure/operators/test_powerbi.py (97%)
rename providers/microsoft/azure/tests/{provider_tests => unit}/microsoft/azure/operators/test_synapse.py (99%)
rename providers/microsoft/azure/tests/{provider_tests => unit}/microsoft/azure/operators/test_wasb_delete_blob.py (100%)
copy {airflow/api_connexion => providers/microsoft/azure/tests/unit/microsoft/azure/resources}/__init__.py (100%)
rename providers/microsoft/azure/tests/{provider_tests => unit}/microsoft/azure/resources/dummy.pdf (100%)
rename providers/microsoft/azure/tests/{provider_tests => unit}/microsoft/azure/resources/next_users.json (100%)
rename providers/microsoft/azure/tests/{provider_tests => unit}/microsoft/azure/resources/status.json (100%)
rename providers/microsoft/azure/tests/{provider_tests => unit}/microsoft/azure/resources/users.json (100%)
copy {airflow/api_connexion => providers/microsoft/azure/tests/unit/microsoft/azure/secrets}/__init__.py (100%)
rename providers/microsoft/azure/tests/{provider_tests => unit}/microsoft/azure/secrets/test_key_vault.py (100%)
copy {airflow/api/auth => providers/microsoft/azure/tests/unit/microsoft/azure/sensors}/__init__.py (100%)
rename providers/microsoft/azure/tests/{provider_tests => unit}/microsoft/azure/sensors/test_cosmos.py (100%)
rename providers/microsoft/azure/tests/{provider_tests => unit}/microsoft/azure/sensors/test_data_factory.py (100%)
rename providers/microsoft/azure/tests/{provider_tests => unit}/microsoft/azure/sensors/test_msgraph.py (62%)
rename providers/microsoft/azure/tests/{provider_tests => unit}/microsoft/azure/sensors/test_wasb.py (100%)
rename providers/microsoft/azure/tests/{provider_tests => unit}/microsoft/azure/test_utils.py (74%)
copy {airflow/api_connexion => providers/microsoft/azure/tests/unit/microsoft/azure/transfers}/__init__.py (100%)
rename providers/microsoft/azure/tests/{provider_tests => unit}/microsoft/azure/transfers/test_local_to_adls.py (100%)
rename providers/microsoft/azure/tests/{provider_tests => unit}/microsoft/azure/transfers/test_local_to_wasb.py (100%)
rename providers/microsoft/azure/tests/{provider_tests => unit}/microsoft/azure/transfers/test_oracle_to_azure_data_lake.py (100%)
rename providers/microsoft/azure/tests/{provider_tests => unit}/microsoft/azure/transfers/test_s3_to_wasb.py (100%)
rename providers/microsoft/azure/tests/{provider_tests => unit}/microsoft/azure/transfers/test_sftp_to_wasb.py (100%)
copy {airflow/api_connexion => providers/microsoft/azure/tests/unit/microsoft/azure/triggers}/__init__.py (100%)
rename providers/microsoft/azure/tests/{provider_tests => unit}/microsoft/azure/triggers/test_data_factory.py (100%)
rename providers/microsoft/azure/tests/{provider_tests => unit}/microsoft/azure/triggers/test_msgraph.py (87%)
rename providers/microsoft/azure/tests/{provider_tests => unit}/microsoft/azure/triggers/test_powerbi.py (99%)
rename providers/microsoft/azure/tests/{provider_tests => unit}/microsoft/azure/triggers/test_wasb.py (100%)
copy providers/{ => microsoft/mssql/tests/integration}/__init__.py (100%)
copy providers/{ => microsoft/mssql/tests/integration/microsoft}/__init__.py (100%)
copy {airflow/api_connexion => providers/microsoft/mssql/tests/integration/microsoft/mssql}/__init__.py (100%)
copy {airflow/api_connexion => providers/microsoft/mssql/tests/integration/microsoft/mssql/hooks}/__init__.py (100%)
rename providers/{ => microsoft/mssql}/tests/integration/microsoft/mssql/hooks/test_mssql.py (100%)
delete mode 100644 providers/microsoft/mssql/tests/provider_tests/microsoft/mssql/__init__.py
delete mode 100644 providers/microsoft/mssql/tests/provider_tests/microsoft/mssql/dialects/__init__.py
delete mode 100644 providers/microsoft/mssql/tests/provider_tests/microsoft/mssql/hooks/__init__.py
delete mode 100644 providers/microsoft/mssql/tests/provider_tests/microsoft/mssql/resources/__init__.py
copy providers/{ => microsoft/mssql/tests/system}/__init__.py (100%)
copy providers/{ => microsoft/mssql/tests/system/microsoft}/__init__.py (100%)
copy providers/{ => microsoft/mssql/tests/unit}/__init__.py (100%)
copy providers/{ => microsoft/mssql/tests/unit/microsoft}/__init__.py (100%)
copy {airflow/api/auth => providers/microsoft/mssql/tests/unit/microsoft/mssql}/__init__.py (100%)
copy {airflow/api_connexion => providers/microsoft/mssql/tests/unit/microsoft/mssql/dialects}/__init__.py (100%)
rename providers/microsoft/mssql/tests/{provider_tests => unit}/microsoft/mssql/dialects/test_mssql.py (100%)
copy {airflow/api/auth => providers/microsoft/mssql/tests/unit/microsoft/mssql/hooks}/__init__.py (100%)
rename providers/microsoft/mssql/tests/{provider_tests => unit}/microsoft/mssql/hooks/test_mssql.py (98%)
copy {airflow/api/auth => providers/microsoft/mssql/tests/unit/microsoft/mssql/resources}/__init__.py (100%)
rename providers/microsoft/mssql/tests/{provider_tests => unit}/microsoft/mssql/resources/replace.sql (100%)
copy providers/microsoft/mssql/tests/{conftest.py => unit/microsoft/mssql/test_utils.py} (62%)
delete mode 100644 providers/microsoft/psrp/tests/provider_tests/microsoft/psrp/__init__.py
delete mode 100644 providers/microsoft/psrp/tests/provider_tests/microsoft/psrp/hooks/__init__.py
delete mode 100644 providers/microsoft/psrp/tests/provider_tests/microsoft/psrp/operators/__init__.py
copy providers/{ => microsoft/psrp/tests/unit}/__init__.py (100%)
copy providers/{ => microsoft/psrp/tests/unit/microsoft}/__init__.py (100%)
copy {airflow/api/auth => providers/microsoft/psrp/tests/unit/microsoft/psrp}/__init__.py (100%)
copy {airflow/api/auth => providers/microsoft/psrp/tests/unit/microsoft/psrp/hooks}/__init__.py (100%)
rename providers/microsoft/psrp/tests/{provider_tests => unit}/microsoft/psrp/hooks/test_psrp.py (100%)
copy {airflow/api/auth => providers/microsoft/psrp/tests/unit/microsoft/psrp/operators}/__init__.py (100%)
rename providers/microsoft/psrp/tests/{provider_tests => unit}/microsoft/psrp/operators/test_psrp.py (100%)
delete mode 100644 providers/microsoft/winrm/tests/provider_tests/microsoft/winrm/__init__.py
delete mode 100644 providers/microsoft/winrm/tests/provider_tests/microsoft/winrm/hooks/__init__.py
delete mode 100644 providers/microsoft/winrm/tests/provider_tests/microsoft/winrm/operators/__init__.py
copy providers/{ => microsoft/winrm/tests/system}/__init__.py (100%)
copy providers/{ => microsoft/winrm/tests/system/microsoft}/__init__.py (100%)
copy providers/{ => microsoft/winrm/tests/unit}/__init__.py (100%)
copy providers/{ => microsoft/winrm/tests/unit/microsoft}/__init__.py (100%)
copy {airflow/api/auth => providers/microsoft/winrm/tests/unit/microsoft/winrm}/__init__.py (100%)
copy {airflow/api/auth => providers/microsoft/winrm/tests/unit/microsoft/winrm/hooks}/__init__.py (100%)
rename providers/microsoft/winrm/tests/{provider_tests => unit}/microsoft/winrm/hooks/test_winrm.py (100%)
copy {airflow/api/auth => providers/microsoft/winrm/tests/unit/microsoft/winrm/operators}/__init__.py (100%)
rename providers/microsoft/winrm/tests/{provider_tests => unit}/microsoft/winrm/operators/test_winrm.py (100%)
copy providers/{ => mongo/tests/integration}/__init__.py (100%)
copy {airflow/api_connexion => providers/mongo/tests/integration/mongo}/__init__.py (100%)
copy {airflow/api_connexion => providers/mongo/tests/integration/mongo/sensors}/__init__.py (100%)
rename providers/{ => mongo}/tests/integration/mongo/sensors/test_mongo.py (100%)
delete mode 100644 providers/mongo/tests/provider_tests/mongo/__init__.py
delete mode 100644 providers/mongo/tests/provider_tests/mongo/hooks/__init__.py
delete mode 100644 providers/mongo/tests/provider_tests/mongo/sensors/__init__.py
copy providers/{ => mongo/tests/unit}/__init__.py (100%)
copy {airflow/api/auth => providers/mongo/tests/unit/mongo}/__init__.py (100%)
copy {airflow/api/auth => providers/mongo/tests/unit/mongo/hooks}/__init__.py (100%)
rename providers/mongo/tests/{provider_tests => unit}/mongo/hooks/test_mongo.py (100%)
copy {airflow/api/auth => providers/mongo/tests/unit/mongo/sensors}/__init__.py (100%)
rename providers/mongo/tests/{provider_tests => unit}/mongo/sensors/test_mongo.py (100%)
delete mode 100644 providers/mysql/tests/provider_tests/mysql/__init__.py
delete mode 100644 providers/mysql/tests/provider_tests/mysql/assets/__init__.py
delete mode 100644 providers/mysql/tests/provider_tests/mysql/hooks/__init__.py
delete mode 100644 providers/mysql/tests/provider_tests/mysql/transfers/__init__.py
copy providers/{ => mysql/tests/system}/__init__.py (100%)
copy providers/{ => mysql/tests/unit}/__init__.py (100%)
copy {airflow/api/auth => providers/mysql/tests/unit/mysql}/__init__.py (100%)
copy {airflow/api_connexion => providers/mysql/tests/unit/mysql/assets}/__init__.py (100%)
rename providers/mysql/tests/{provider_tests => unit}/mysql/assets/test_mysql.py (100%)
copy {airflow/api/auth => providers/mysql/tests/unit/mysql/hooks}/__init__.py (100%)
rename providers/mysql/tests/{provider_tests => unit}/mysql/hooks/test_mysql.py (100%)
rename providers/mysql/tests/{provider_tests => unit}/mysql/hooks/test_mysql_connector_python.py (100%)
copy {airflow/api_connexion => providers/mysql/tests/unit/mysql/transfers}/__init__.py (100%)
rename providers/mysql/tests/{provider_tests => unit}/mysql/transfers/test_presto_to_mysql.py (100%)
rename providers/mysql/tests/{provider_tests => unit}/mysql/transfers/test_s3_to_mysql.py (100%)
rename providers/mysql/tests/{provider_tests => unit}/mysql/transfers/test_trino_to_mysql.py (100%)
rename providers/mysql/tests/{provider_tests => unit}/mysql/transfers/test_vertica_to_mysql.py (100%)
delete mode 100644 providers/neo4j/tests/provider_tests/neo4j/__init__.py
delete mode 100644 providers/neo4j/tests/provider_tests/neo4j/hooks/__init__.py
delete mode 100644 providers/neo4j/tests/provider_tests/neo4j/operators/__init__.py
copy providers/{ => neo4j/tests/system}/__init__.py (100%)
copy providers/{ => neo4j/tests/unit}/__init__.py (100%)
copy {airflow/api/auth => providers/neo4j/tests/unit/neo4j}/__init__.py (100%)
copy {airflow/api/auth => providers/neo4j/tests/unit/neo4j/hooks}/__init__.py (100%)
rename providers/neo4j/tests/{provider_tests => unit}/neo4j/hooks/test_neo4j.py (100%)
copy {airflow/api/auth => providers/neo4j/tests/unit/neo4j/operators}/__init__.py (100%)
rename providers/neo4j/tests/{provider_tests => unit}/neo4j/operators/test_neo4j.py (100%)
delete mode 100644 providers/odbc/tests/provider_tests/odbc/__init__.py
delete mode 100644 providers/odbc/tests/provider_tests/odbc/hooks/__init__.py
copy providers/{ => odbc/tests/system}/__init__.py (100%)
copy providers/{ => odbc/tests/unit}/__init__.py (100%)
copy {airflow/api_connexion => providers/odbc/tests/unit/odbc}/__init__.py (100%)
copy {airflow/api_connexion => providers/odbc/tests/unit/odbc/hooks}/__init__.py (100%)
rename providers/odbc/tests/{provider_tests => unit}/odbc/hooks/test_odbc.py (100%)
delete mode 100644 providers/openai/tests/provider_tests/openai/__init__.py
delete mode 100644 providers/openai/tests/provider_tests/openai/hooks/__init__.py
delete mode 100644 providers/openai/tests/provider_tests/openai/operators/__init__.py
delete mode 100644 providers/openai/tests/provider_tests/openai/triggers/__init__.py
copy providers/{ => openai/tests/system}/__init__.py (100%)
copy providers/{ => openai/tests/unit}/__init__.py (100%)
copy {airflow/api_connexion => providers/openai/tests/unit/openai}/__init__.py (100%)
copy {airflow/api_connexion => providers/openai/tests/unit/openai/hooks}/__init__.py (100%)
rename providers/openai/tests/{provider_tests => unit}/openai/hooks/test_openai.py (100%)
copy {airflow/api_connexion => providers/openai/tests/unit/openai/operators}/__init__.py (100%)
rename providers/openai/tests/{provider_tests => unit}/openai/operators/test_openai.py (100%)
rename providers/openai/tests/{provider_tests => unit}/openai/test_exceptions.py (100%)
copy {airflow/api_connexion => providers/openai/tests/unit/openai/triggers}/__init__.py (100%)
rename providers/openai/tests/{provider_tests => unit}/openai/triggers/test_openai.py (100%)
delete mode 100644 providers/openfaas/tests/provider_tests/openfaas/__init__.py
delete mode 100644 providers/openfaas/tests/provider_tests/openfaas/hooks/__init__.py
copy providers/{ => openfaas/tests/unit}/__init__.py (100%)
copy {airflow/api/auth => providers/openfaas/tests/unit/openfaas}/__init__.py (100%)
copy {airflow/api/auth => providers/openfaas/tests/unit/openfaas/hooks}/__init__.py (100%)
rename providers/openfaas/tests/{provider_tests => unit}/openfaas/hooks/test_openfaas.py (100%)
copy providers/{ => openlineage/tests/integration}/__init__.py (100%)
copy {airflow/api_connexion => providers/openlineage/tests/integration/openlineage}/__init__.py (100%)
copy {airflow/api_connexion => providers/openlineage/tests/integration/openlineage/operators}/__init__.py (100%)
delete mode 100644 providers/openlineage/tests/provider_tests/openlineage/__init__.py
delete mode 100644 providers/openlineage/tests/provider_tests/openlineage/extractors/__init__.py
delete mode 100644 providers/openlineage/tests/provider_tests/openlineage/plugins/__init__.py
delete mode 100644 providers/openlineage/tests/provider_tests/openlineage/plugins/openlineage_configs/__init__.py
delete mode 100644 providers/openlineage/tests/provider_tests/openlineage/utils/__init__.py
copy providers/{ => openlineage/tests/system}/__init__.py (100%)
copy providers/{ => openlineage/tests/unit}/__init__.py (100%)
copy {airflow/api_connexion => providers/openlineage/tests/unit/openlineage}/__init__.py (100%)
copy {airflow/api_connexion => providers/openlineage/tests/unit/openlineage/extractors}/__init__.py (100%)
rename providers/openlineage/tests/{provider_tests => unit}/openlineage/extractors/test_base.py (99%)
rename providers/openlineage/tests/{provider_tests => unit}/openlineage/extractors/test_bash.py (100%)
rename providers/openlineage/tests/{provider_tests => unit}/openlineage/extractors/test_manager.py (100%)
rename providers/openlineage/tests/{provider_tests => unit}/openlineage/extractors/test_python.py (100%)
rename providers/openlineage/tests/{provider_tests => unit}/openlineage/log_config.py (100%)
copy {airflow/api_connexion => providers/openlineage/tests/unit/openlineage/plugins}/__init__.py (100%)
copy {airflow/api_connexion => providers/openlineage/tests/unit/openlineage/plugins/openlineage_configs}/__init__.py (100%)
rename providers/openlineage/tests/{provider_tests => unit}/openlineage/plugins/openlineage_configs/http.yaml (100%)
rename providers/openlineage/tests/{provider_tests => unit}/openlineage/plugins/test_adapter.py (100%)
rename providers/openlineage/tests/{provider_tests => unit}/openlineage/plugins/test_execution.py (99%)
rename providers/openlineage/tests/{provider_tests => unit}/openlineage/plugins/test_facets.py (100%)
rename providers/openlineage/tests/{provider_tests => unit}/openlineage/plugins/test_listener.py (100%)
rename providers/openlineage/tests/{provider_tests => unit}/openlineage/plugins/test_macros.py (100%)
rename providers/openlineage/tests/{provider_tests => unit}/openlineage/plugins/test_openlineage.py (100%)
rename providers/openlineage/tests/{provider_tests => unit}/openlineage/plugins/test_utils.py (100%)
rename providers/openlineage/tests/{provider_tests => unit}/openlineage/test_conf.py (100%)
rename providers/openlineage/tests/{provider_tests => unit}/openlineage/test_sqlparser.py (100%)
copy {airflow/api_connexion => providers/openlineage/tests/unit/openlineage/utils}/__init__.py (100%)
rename providers/openlineage/tests/{provider_tests => unit}/openlineage/utils/custom_facet_fixture.py (100%)
rename providers/openlineage/tests/{provider_tests => unit}/openlineage/utils/test_selective_enable.py (100%)
rename providers/openlineage/tests/{provider_tests => unit}/openlineage/utils/test_spark.py (100%)
rename providers/openlineage/tests/{provider_tests => unit}/openlineage/utils/test_sql.py (100%)
rename providers/openlineage/tests/{provider_tests => unit}/openlineage/utils/test_utils.py (96%)
delete mode 100644 providers/opensearch/tests/provider_tests/opensearch/__init__.py
delete mode 100644 providers/opensearch/tests/provider_tests/opensearch/hooks/__init__.py
delete mode 100644 providers/opensearch/tests/provider_tests/opensearch/log/__init__.py
delete mode 100644 providers/opensearch/tests/provider_tests/opensearch/operators/__init__.py
copy providers/{ => opensearch/tests/system}/__init__.py (100%)
copy providers/{ => opensearch/tests/unit}/__init__.py (100%)
copy {airflow/api_connexion => providers/opensearch/tests/unit/opensearch}/__init__.py (100%)
rename providers/opensearch/tests/{provider_tests => unit}/opensearch/conftest.py (100%)
copy {airflow/api_connexion => providers/opensearch/tests/unit/opensearch/hooks}/__init__.py (100%)
rename providers/opensearch/tests/{provider_tests => unit}/opensearch/hooks/test_opensearch.py (100%)
copy {airflow/api_connexion => providers/opensearch/tests/unit/opensearch/log}/__init__.py (100%)
rename providers/opensearch/tests/{provider_tests => unit}/opensearch/log/test_os_json_formatter.py (100%)
rename providers/opensearch/tests/{provider_tests => unit}/opensearch/log/test_os_response.py (100%)
rename providers/opensearch/tests/{provider_tests => unit}/opensearch/log/test_os_task_handler.py (99%)
copy {airflow/api_connexion => providers/opensearch/tests/unit/opensearch/operators}/__init__.py (100%)
rename providers/opensearch/tests/{provider_tests => unit}/opensearch/operators/test_opensearch.py (100%)
delete mode 100644 providers/opsgenie/tests/provider_tests/opsgenie/__init__.py
delete mode 100644 providers/opsgenie/tests/provider_tests/opsgenie/hooks/__init__.py
delete mode 100644 providers/opsgenie/tests/provider_tests/opsgenie/notifications/__init__.py
delete mode 100644 providers/opsgenie/tests/provider_tests/opsgenie/operators/__init__.py
delete mode 100644 providers/opsgenie/tests/provider_tests/opsgenie/typing/__init__.py
copy providers/{ => opsgenie/tests/system}/__init__.py (100%)
copy providers/{ => opsgenie/tests/unit}/__init__.py (100%)
copy {airflow/api/auth => providers/opsgenie/tests/unit/opsgenie}/__init__.py (100%)
copy {airflow/api/auth => providers/opsgenie/tests/unit/opsgenie/hooks}/__init__.py (100%)
rename providers/opsgenie/tests/{provider_tests => unit}/opsgenie/hooks/test_opsgenie.py (100%)
copy {airflow/api_connexion => providers/opsgenie/tests/unit/opsgenie/notifications}/__init__.py (100%)
rename providers/opsgenie/tests/{provider_tests => unit}/opsgenie/notifications/test_opsgenie.py (100%)
copy {airflow/api/auth => providers/opsgenie/tests/unit/opsgenie/operators}/__init__.py (100%)
rename providers/opsgenie/tests/{provider_tests => unit}/opsgenie/operators/test_opsgenie.py (100%)
copy {airflow/api_connexion => providers/opsgenie/tests/unit/opsgenie/typing}/__init__.py (100%)
rename providers/opsgenie/tests/{provider_tests => unit}/opsgenie/typing/test_opsgenie.py (100%)
delete mode 100644 providers/oracle/tests/provider_tests/oracle/__init__.py
delete mode 100644 providers/oracle/tests/provider_tests/oracle/hooks/__init__.py
delete mode 100644 providers/oracle/tests/provider_tests/oracle/operators/__init__.py
delete mode 100644 providers/oracle/tests/provider_tests/oracle/transfers/__init__.py
copy providers/{ => oracle/tests/system}/__init__.py (100%)
copy providers/{ => oracle/tests/unit}/__init__.py (100%)
copy {airflow/api/auth => providers/oracle/tests/unit/oracle}/__init__.py (100%)
copy {airflow/api/auth => providers/oracle/tests/unit/oracle/hooks}/__init__.py (100%)
rename providers/oracle/tests/{provider_tests => unit}/oracle/hooks/test_oracle.py (100%)
copy {airflow/api_connexion => providers/oracle/tests/unit/oracle/operators}/__init__.py (100%)
rename providers/oracle/tests/{provider_tests => unit}/oracle/operators/test_oracle.py (100%)
copy {airflow/api/auth => providers/oracle/tests/unit/oracle/transfers}/__init__.py (100%)
rename providers/oracle/tests/{provider_tests => unit}/oracle/transfers/test_oracle_to_oracle.py (100%)
delete mode 100644 providers/pagerduty/tests/provider_tests/pagerduty/__init__.py
delete mode 100644 providers/pagerduty/tests/provider_tests/pagerduty/hooks/__init__.py
delete mode 100644 providers/pagerduty/tests/provider_tests/pagerduty/notifications/__init__.py
copy providers/{ => pagerduty/tests/unit}/__init__.py (100%)
copy {airflow/api/auth => providers/pagerduty/tests/unit/pagerduty}/__init__.py (100%)
copy {airflow/api/auth => providers/pagerduty/tests/unit/pagerduty/hooks}/__init__.py (100%)
rename providers/pagerduty/tests/{provider_tests => unit}/pagerduty/hooks/test_pagerduty.py (100%)
rename providers/pagerduty/tests/{provider_tests => unit}/pagerduty/hooks/test_pagerduty_events.py (100%)
copy {airflow/api_connexion => providers/pagerduty/tests/unit/pagerduty/notifications}/__init__.py (100%)
rename providers/pagerduty/tests/{provider_tests => unit}/pagerduty/notifications/test_pagerduty.py (100%)
delete mode 100644 providers/papermill/tests/provider_tests/papermill/__init__.py
delete mode 100644 providers/papermill/tests/provider_tests/papermill/hooks/__init__.py
delete mode 100644 providers/papermill/tests/provider_tests/papermill/operators/__init__.py
copy providers/{ => papermill/tests/system}/__init__.py (100%)
copy providers/{ => papermill/tests/unit}/__init__.py (100%)
copy {airflow/api/auth => providers/papermill/tests/unit/papermill}/__init__.py (100%)
copy {airflow/api_connexion => providers/papermill/tests/unit/papermill/hooks}/__init__.py (100%)
rename providers/papermill/tests/{provider_tests => unit}/papermill/hooks/test_kernel.py (100%)
copy {airflow/api/auth => providers/papermill/tests/unit/papermill/operators}/__init__.py (100%)
rename providers/papermill/tests/{provider_tests => unit}/papermill/operators/test_papermill.py (100%)
delete mode 100644 providers/pgvector/tests/provider_tests/pgvector/__init__.py
delete mode 100644 providers/pgvector/tests/provider_tests/pgvector/hooks/__init__.py
delete mode 100644 providers/pgvector/tests/provider_tests/pgvector/operators/__init__.py
copy providers/{ => pgvector/tests/system}/__init__.py (100%)
copy providers/{ => pgvector/tests/unit}/__init__.py (100%)
copy {airflow/api_connexion => providers/pgvector/tests/unit/pgvector}/__init__.py (100%)
copy {airflow/api_connexion => providers/pgvector/tests/unit/pgvector/hooks}/__init__.py (100%)
rename providers/pgvector/tests/{provider_tests => unit}/pgvector/hooks/test_pgvector.py (100%)
copy {airflow/api_connexion => providers/pgvector/tests/unit/pgvector/operators}/__init__.py (100%)
rename providers/pgvector/tests/{provider_tests => unit}/pgvector/operators/test_pgvector.py (100%)
delete mode 100644 providers/pinecone/tests/provider_tests/pinecone/__init__.py
delete mode 100644 providers/pinecone/tests/provider_tests/pinecone/hooks/__init__.py
delete mode 100644 providers/pinecone/tests/provider_tests/pinecone/operators/__init__.py
copy providers/{ => pinecone/tests/system}/__init__.py (100%)
copy providers/{ => pinecone/tests/unit}/__init__.py (100%)
copy {airflow/api_connexion => providers/pinecone/tests/unit/pinecone}/__init__.py (100%)
copy {airflow/api_connexion => providers/pinecone/tests/unit/pinecone/hooks}/__init__.py (100%)
rename providers/pinecone/tests/{provider_tests => unit}/pinecone/hooks/test_pinecone.py (100%)
copy {airflow/api_connexion => providers/pinecone/tests/unit/pinecone/operators}/__init__.py (100%)
rename providers/pinecone/tests/{provider_tests => unit}/pinecone/operators/test_pinecone.py (100%)
delete mode 100644 providers/postgres/tests/provider_tests/postgres/__init__.py
delete mode 100644 providers/postgres/tests/provider_tests/postgres/assets/__init__.py
delete mode 100644 providers/postgres/tests/provider_tests/postgres/dialects/__init__.py
delete mode 100644 providers/postgres/tests/provider_tests/postgres/hooks/__init__.py
copy providers/{ => postgres/tests/system}/__init__.py (100%)
copy providers/{ => postgres/tests/unit}/__init__.py (100%)
copy {airflow/api/auth => providers/postgres/tests/unit/postgres}/__init__.py (100%)
copy {airflow/api_connexion => providers/postgres/tests/unit/postgres/assets}/__init__.py (100%)
rename providers/postgres/tests/{provider_tests => unit}/postgres/assets/test_postgres.py (100%)
copy {airflow/api_connexion => providers/postgres/tests/unit/postgres/dialects}/__init__.py (100%)
rename providers/postgres/tests/{provider_tests => unit}/postgres/dialects/test_postgres.py (100%)
copy {airflow/api/auth => providers/postgres/tests/unit/postgres/hooks}/__init__.py (100%)
rename providers/postgres/tests/{provider_tests => unit}/postgres/hooks/test_postgres.py (100%)
delete mode 100644 providers/presto/tests/provider_tests/presto/__init__.py
delete mode 100644 providers/presto/tests/provider_tests/presto/hooks/__init__.py
delete mode 100644 providers/presto/tests/provider_tests/presto/transfers/__init__.py
copy providers/{ => presto/tests/system}/__init__.py (100%)
copy providers/{ => presto/tests/unit}/__init__.py (100%)
copy {airflow/api/auth => providers/presto/tests/unit/presto}/__init__.py (100%)
copy {airflow/api/auth => providers/presto/tests/unit/presto/hooks}/__init__.py (100%)
rename providers/presto/tests/{provider_tests => unit}/presto/hooks/test_presto.py (100%)
copy {airflow/api/auth => providers/presto/tests/unit/presto/transfers}/__init__.py (100%)
rename providers/presto/tests/{provider_tests => unit}/presto/transfers/test_gcs_to_presto.py (100%)
delete mode 100644 providers/pyproject.toml
copy providers/{ => qdrant/tests/integration}/__init__.py (100%)
copy {airflow/api_connexion => providers/qdrant/tests/integration/qdrant}/__init__.py (100%)
copy {airflow/api_connexion => providers/qdrant/tests/integration/qdrant/hooks}/__init__.py (100%)
rename providers/{ => qdrant}/tests/integration/qdrant/hooks/test_qdrant.py (100%)
copy {airflow/api_connexion => providers/qdrant/tests/integration/qdrant/operators}/__init__.py (100%)
rename providers/{ => qdrant}/tests/integration/qdrant/operators/test_qdrant_ingest.py (100%)
delete mode 100644 providers/qdrant/tests/provider_tests/qdrant/__init__.py
delete mode 100644 providers/qdrant/tests/provider_tests/qdrant/hooks/__init__.py
delete mode 100644 providers/qdrant/tests/provider_tests/qdrant/operators/__init__.py
copy providers/{ => qdrant/tests/system}/__init__.py (100%)
copy providers/{ => qdrant/tests/unit}/__init__.py (100%)
copy {airflow/api_connexion => providers/qdrant/tests/unit/qdrant}/__init__.py (100%)
copy {airflow/api_connexion => providers/qdrant/tests/unit/qdrant/hooks}/__init__.py (100%)
rename providers/qdrant/tests/{provider_tests => unit}/qdrant/hooks/test_qdrant.py (100%)
copy {airflow/api_connexion => providers/qdrant/tests/unit/qdrant/operators}/__init__.py (100%)
rename providers/qdrant/tests/{provider_tests => unit}/qdrant/operators/test_qdrant.py (100%)
copy providers/{ => redis/tests/integration}/__init__.py (100%)
copy {airflow/api_connexion => providers/redis/tests/integration/redis}/__init__.py (100%)
copy {airflow/api_connexion => providers/redis/tests/integration/redis/hooks}/__init__.py (100%)
rename providers/{ => redis}/tests/integration/redis/hooks/test_redis.py (100%)
copy {airflow/api_connexion => providers/redis/tests/integration/redis/operators}/__init__.py (100%)
rename providers/{ => redis}/tests/integration/redis/operators/test_redis_publish.py (100%)
copy {airflow/api_connexion => providers/redis/tests/integration/redis/sensors}/__init__.py (100%)
rename providers/{ => redis}/tests/integration/redis/sensors/test_redis_key.py (100%)
rename providers/{ => redis}/tests/integration/redis/sensors/test_redis_pub_sub.py (100%)
delete mode 100644 providers/redis/tests/provider_tests/redis/__init__.py
delete mode 100644 providers/redis/tests/provider_tests/redis/hooks/__init__.py
delete mode 100644 providers/redis/tests/provider_tests/redis/log/__init__.py
delete mode 100644 providers/redis/tests/provider_tests/redis/operators/__init__.py
delete mode 100644 providers/redis/tests/provider_tests/redis/sensors/__init__.py
copy providers/{ => redis/tests/system}/__init__.py (100%)
copy providers/{ => redis/tests/unit}/__init__.py (100%)
copy {airflow/api/auth => providers/redis/tests/unit/redis}/__init__.py (100%)
copy {airflow/api/auth => providers/redis/tests/unit/redis/hooks}/__init__.py (100%)
rename providers/redis/tests/{provider_tests => unit}/redis/hooks/test_redis.py (100%)
copy {airflow/api/auth => providers/redis/tests/unit/redis/log}/__init__.py (100%)
rename providers/redis/tests/{provider_tests => unit}/redis/log/test_redis_task_handler.py (100%)
copy {airflow/api/auth => providers/redis/tests/unit/redis/operators}/__init__.py (100%)
rename providers/redis/tests/{provider_tests => unit}/redis/operators/test_redis_publish.py (100%)
copy {airflow/api/auth => providers/redis/tests/unit/redis/sensors}/__init__.py (100%)
rename providers/redis/tests/{provider_tests => unit}/redis/sensors/test_redis_key.py (100%)
rename providers/redis/tests/{provider_tests => unit}/redis/sensors/test_redis_pub_sub.py (100%)
delete mode 100644 providers/salesforce/tests/provider_tests/salesforce/__init__.py
delete mode 100644 providers/salesforce/tests/provider_tests/salesforce/hooks/__init__.py
delete mode 100644 providers/salesforce/tests/provider_tests/salesforce/operators/__init__.py
copy providers/{ => salesforce/tests/system}/__init__.py (100%)
copy providers/{ => salesforce/tests/unit}/__init__.py (100%)
copy {airflow/api/auth => providers/salesforce/tests/unit/salesforce}/__init__.py (100%)
copy {airflow/api/auth => providers/salesforce/tests/unit/salesforce/hooks}/__init__.py (100%)
rename providers/salesforce/tests/{provider_tests => unit}/salesforce/hooks/test_salesforce.py (100%)
copy {airflow/api_connexion => providers/salesforce/tests/unit/salesforce/operators}/__init__.py (100%)
rename providers/salesforce/tests/{provider_tests => unit}/salesforce/operators/test_bulk.py (100%)
rename providers/salesforce/tests/{provider_tests => unit}/salesforce/operators/test_salesforce_apex_rest.py (100%)
delete mode 100644 providers/samba/tests/provider_tests/samba/__init__.py
delete mode 100644 providers/samba/tests/provider_tests/samba/hooks/__init__.py
delete mode 100644 providers/samba/tests/provider_tests/samba/transfers/__init__.py
copy providers/{ => samba/tests/system}/__init__.py (100%)
copy providers/{ => samba/tests/unit}/__init__.py (100%)
copy {airflow/api/auth => providers/samba/tests/unit/samba}/__init__.py (100%)
copy {airflow/api/auth => providers/samba/tests/unit/samba/hooks}/__init__.py (100%)
rename providers/samba/tests/{provider_tests => unit}/samba/hooks/test_samba.py (100%)
copy {airflow/api/auth => providers/samba/tests/unit/samba/transfers}/__init__.py (100%)
rename providers/samba/tests/{provider_tests => unit}/samba/transfers/test_gcs_to_samba.py (100%)
delete mode 100644 providers/segment/tests/provider_tests/__init__.py
delete mode 100644 providers/segment/tests/provider_tests/segment/__init__.py
delete mode 100644 providers/segment/tests/provider_tests/segment/hooks/__init__.py
delete mode 100644 providers/segment/tests/provider_tests/segment/operators/__init__.py
copy providers/{ => segment/tests/unit}/__init__.py (100%)
copy {airflow/api/auth => providers/segment/tests/unit/segment}/__init__.py (100%)
copy {airflow/api/auth => providers/segment/tests/unit/segment/hooks}/__init__.py (100%)
rename providers/segment/tests/{provider_tests => unit}/segment/hooks/test_segment.py (100%)
copy {airflow/api/auth => providers/segment/tests/unit/segment/operators}/__init__.py (100%)
rename providers/segment/tests/{provider_tests => unit}/segment/operators/test_segment_track_event.py (100%)
delete mode 100644 providers/sendgrid/tests/provider_tests/__init__.py
delete mode 100644 providers/sendgrid/tests/provider_tests/sendgrid/__init__.py
delete mode 100644 providers/sendgrid/tests/provider_tests/sendgrid/utils/__init__.py
copy providers/{ => sendgrid/tests/unit}/__init__.py (100%)
copy {airflow/api_connexion => providers/sendgrid/tests/unit/sendgrid}/__init__.py (100%)
copy {airflow/api_connexion => providers/sendgrid/tests/unit/sendgrid/utils}/__init__.py (100%)
rename providers/sendgrid/tests/{provider_tests => unit}/sendgrid/utils/test_emailer.py (100%)
delete mode 100644 providers/sftp/tests/provider_tests/__init__.py
delete mode 100644 providers/sftp/tests/provider_tests/sftp/__init__.py
delete mode 100644 providers/sftp/tests/provider_tests/sftp/decorators/__init__.py
delete mode 100644 providers/sftp/tests/provider_tests/sftp/decorators/sensors/__init__.py
delete mode 100644 providers/sftp/tests/provider_tests/sftp/hooks/__init__.py
delete mode 100644 providers/sftp/tests/provider_tests/sftp/operators/__init__.py
delete mode 100644 providers/sftp/tests/provider_tests/sftp/sensors/__init__.py
delete mode 100644 providers/sftp/tests/provider_tests/sftp/triggers/__init__.py
copy providers/{ => sftp/tests/system}/__init__.py (100%)
copy providers/{ => sftp/tests/unit}/__init__.py (100%)
copy {airflow/api_connexion => providers/sftp/tests/unit/sftp}/__init__.py (100%)
copy {airflow/api_connexion => providers/sftp/tests/unit/sftp/decorators}/__init__.py (100%)
copy {airflow/api_connexion => providers/sftp/tests/unit/sftp/decorators/sensors}/__init__.py (100%)
rename providers/sftp/tests/{provider_tests => unit}/sftp/decorators/sensors/test_sftp.py (100%)
copy {airflow/api_connexion => providers/sftp/tests/unit/sftp/hooks}/__init__.py (100%)
rename providers/sftp/tests/{provider_tests => unit}/sftp/hooks/test_sftp.py (99%)
copy {airflow/api_connexion => providers/sftp/tests/unit/sftp/operators}/__init__.py (100%)
rename providers/sftp/tests/{provider_tests => unit}/sftp/operators/test_sftp.py (100%)
copy {airflow/api_connexion => providers/sftp/tests/unit/sftp/sensors}/__init__.py (100%)
rename providers/sftp/tests/{provider_tests => unit}/sftp/sensors/test_sftp.py (100%)
copy {airflow/api_connexion => providers/sftp/tests/unit/sftp/triggers}/__init__.py (100%)
rename providers/sftp/tests/{provider_tests => unit}/sftp/triggers/test_sftp.py (100%)
delete mode 100644 providers/singularity/tests/provider_tests/__init__.py
delete mode 100644 providers/singularity/tests/provider_tests/singularity/__init__.py
delete mode 100644 providers/singularity/tests/provider_tests/singularity/operators/__init__.py
copy providers/{ => singularity/tests/system}/__init__.py (100%)
copy providers/{ => singularity/tests/unit}/__init__.py (100%)
copy {airflow/api/auth => providers/singularity/tests/unit/singularity}/__init__.py (100%)
copy {airflow/api/auth => providers/singularity/tests/unit/singularity/operators}/__init__.py (100%)
rename providers/singularity/tests/{provider_tests => unit}/singularity/operators/test_singularity.py (100%)
delete mode 100644 providers/slack/tests/provider_tests/__init__.py
delete mode 100644 providers/slack/tests/provider_tests/slack/__init__.py
delete mode 100644 providers/slack/tests/provider_tests/slack/hooks/__init__.py
delete mode 100644 providers/slack/tests/provider_tests/slack/notifications/__init__.py
delete mode 100644 providers/slack/tests/provider_tests/slack/operators/__init__.py
delete mode 100644 providers/slack/tests/provider_tests/slack/transfers/__init__.py
delete mode 100644 providers/slack/tests/provider_tests/slack/utils/__init__.py
copy providers/{ => slack/tests/system}/__init__.py (100%)
copy providers/{ => slack/tests/unit}/__init__.py (100%)
copy {airflow/api/auth => providers/slack/tests/unit/slack}/__init__.py (100%)
copy {airflow/api/auth => providers/slack/tests/unit/slack/hooks}/__init__.py (100%)
rename providers/slack/tests/{provider_tests => unit}/slack/hooks/test_slack.py (100%)
rename providers/slack/tests/{provider_tests => unit}/slack/hooks/test_slack_webhook.py (100%)
copy {airflow/api_connexion => providers/slack/tests/unit/slack/notifications}/__init__.py (100%)
rename providers/slack/tests/{provider_tests => unit}/slack/notifications/test_slack.py (100%)
rename providers/slack/tests/{provider_tests => unit}/slack/notifications/test_slack_webhook.py (100%)
copy {airflow/api/auth => providers/slack/tests/unit/slack/operators}/__init__.py (100%)
rename providers/slack/tests/{provider_tests => unit}/slack/operators/test_slack.py (100%)
rename providers/slack/tests/{provider_tests => unit}/slack/operators/test_slack_webhook.py (100%)
copy {airflow/api/auth => providers/slack/tests/unit/slack/transfers}/__init__.py (100%)
rename providers/slack/tests/{provider_tests => unit}/slack/transfers/conftest.py (100%)
rename providers/slack/tests/{provider_tests => unit}/slack/transfers/test_base_sql_to_slack.py (100%)
rename providers/slack/tests/{provider_tests => unit}/slack/transfers/test_sql_to_slack.py (100%)
rename providers/slack/tests/{provider_tests => unit}/slack/transfers/test_sql_to_slack_webhook.py (100%)
copy {airflow/api_connexion => providers/slack/tests/unit/slack/utils}/__init__.py (100%)
rename providers/slack/tests/{provider_tests => unit}/slack/utils/test_utils.py (100%)
delete mode 100644 providers/smtp/tests/provider_tests/__init__.py
delete mode 100644 providers/smtp/tests/provider_tests/smtp/__init__.py
delete mode 100644 providers/smtp/tests/provider_tests/smtp/hooks/__init__.py
delete mode 100644 providers/smtp/tests/provider_tests/smtp/notifications/__init__.py
delete mode 100644 providers/smtp/tests/provider_tests/smtp/operators/__init__.py
copy providers/{ => smtp/tests/unit}/__init__.py (100%)
copy {airflow/api/auth => providers/smtp/tests/unit/smtp}/__init__.py (100%)
copy {airflow/api/auth => providers/smtp/tests/unit/smtp/hooks}/__init__.py (100%)
rename providers/smtp/tests/{provider_tests => unit}/smtp/hooks/test_smtp.py (100%)
copy {airflow/api_connexion => providers/smtp/tests/unit/smtp/notifications}/__init__.py (100%)
rename providers/smtp/tests/{provider_tests => unit}/smtp/notifications/test_smtp.py (100%)
copy {airflow/api/auth => providers/smtp/tests/unit/smtp/operators}/__init__.py (100%)
rename providers/smtp/tests/{provider_tests => unit}/smtp/operators/test_smtp.py (100%)
delete mode 100644 providers/snowflake/tests/provider_tests/__init__.py
delete mode 100644 providers/snowflake/tests/provider_tests/snowflake/__init__.py
delete mode 100644 providers/snowflake/tests/provider_tests/snowflake/decorators/__init__.py
delete mode 100644 providers/snowflake/tests/provider_tests/snowflake/hooks/__init__.py
delete mode 100644 providers/snowflake/tests/provider_tests/snowflake/operators/__init__.py
delete mode 100644 providers/snowflake/tests/provider_tests/snowflake/transfers/__init__.py
delete mode 100644 providers/snowflake/tests/provider_tests/snowflake/triggers/__init__.py
delete mode 100644 providers/snowflake/tests/provider_tests/snowflake/utils/__init__.py
copy providers/{ => snowflake/tests/system}/__init__.py (100%)
copy providers/{ => snowflake/tests/unit}/__init__.py (100%)
copy {airflow/api_connexion => providers/snowflake/tests/unit/snowflake}/__init__.py (100%)
copy {airflow/api_connexion => providers/snowflake/tests/unit/snowflake/decorators}/__init__.py (100%)
rename providers/snowflake/tests/{provider_tests => unit}/snowflake/decorators/test_snowpark.py (100%)
copy {airflow/api_connexion => providers/snowflake/tests/unit/snowflake/hooks}/__init__.py (100%)
rename providers/snowflake/tests/{provider_tests => unit}/snowflake/hooks/test_snowflake.py (100%)
rename providers/snowflake/tests/{provider_tests => unit}/snowflake/hooks/test_snowflake_sql_api.py (100%)
rename providers/snowflake/tests/{provider_tests => unit}/snowflake/hooks/test_sql.py (100%)
copy {airflow/api_connexion => providers/snowflake/tests/unit/snowflake/operators}/__init__.py (100%)
rename providers/snowflake/tests/{provider_tests => unit}/snowflake/operators/test_snowflake.py (100%)
rename providers/snowflake/tests/{provider_tests => unit}/snowflake/operators/test_snowflake_sql.py (100%)
rename providers/snowflake/tests/{provider_tests => unit}/snowflake/operators/test_snowpark.py (100%)
copy {airflow/api_connexion => providers/snowflake/tests/unit/snowflake/transfers}/__init__.py (100%)
rename providers/snowflake/tests/{provider_tests => unit}/snowflake/transfers/test_copy_into_snowflake.py (100%)
copy {airflow/api_connexion => providers/snowflake/tests/unit/snowflake/triggers}/__init__.py (100%)
rename providers/snowflake/tests/{provider_tests => unit}/snowflake/triggers/test_snowflake.py (100%)
copy {airflow/api_connexion => providers/snowflake/tests/unit/snowflake/utils}/__init__.py (100%)
rename providers/snowflake/tests/{provider_tests => unit}/snowflake/utils/test_common.py (100%)
rename providers/snowflake/tests/{provider_tests => unit}/snowflake/utils/test_openlineage.py (100%)
rename providers/snowflake/tests/{provider_tests => unit}/snowflake/utils/test_snowpark.py (100%)
rename providers/snowflake/tests/{provider_tests => unit}/snowflake/utils/test_sql_api_generate_jwt.py (100%)
delete mode 100644 providers/sqlite/tests/provider_tests/__init__.py
delete mode 100644 providers/sqlite/tests/provider_tests/sqlite/__init__.py
delete mode 100644 providers/sqlite/tests/provider_tests/sqlite/hooks/__init__.py
copy providers/{ => sqlite/tests/system}/__init__.py (100%)
copy providers/{ => sqlite/tests/unit}/__init__.py (100%)
copy {airflow/api/auth => providers/sqlite/tests/unit/sqlite}/__init__.py (100%)
copy {airflow/api/auth => providers/sqlite/tests/unit/sqlite/hooks}/__init__.py (100%)
rename providers/sqlite/tests/{provider_tests => unit}/sqlite/hooks/test_sqlite.py (100%)
delete mode 100644 providers/src/README.md
delete mode 100644 providers/src/airflow/__init__.py
delete mode 100644 providers/src/airflow/providers/.gitignore
delete mode 100644 providers/src/airflow/providers/__init__.py
delete mode 100644 providers/ssh/tests/provider_tests/__init__.py
delete mode 100644 providers/ssh/tests/provider_tests/ssh/__init__.py
delete mode 100644 providers/ssh/tests/provider_tests/ssh/hooks/__init__.py
delete mode 100644 providers/ssh/tests/provider_tests/ssh/operators/__init__.py
copy providers/{ => ssh/tests/unit}/__init__.py (100%)
copy {airflow/api/auth => providers/ssh/tests/unit/ssh}/__init__.py (100%)
copy {airflow/api/auth => providers/ssh/tests/unit/ssh/hooks}/__init__.py (100%)
rename providers/ssh/tests/{provider_tests => unit}/ssh/hooks/test_ssh.py (100%)
copy {airflow/api/auth => providers/ssh/tests/unit/ssh/operators}/__init__.py (100%)
rename providers/ssh/tests/{provider_tests => unit}/ssh/operators/test_ssh.py (100%)
delete mode 100644 providers/standard/tests/provider_tests/__init__.py
delete mode 100644 providers/standard/tests/provider_tests/standard/__init__.py
delete mode 100644 providers/standard/tests/provider_tests/standard/decorators/__init__.py
delete mode 100644 providers/standard/tests/provider_tests/standard/hooks/__init__.py
delete mode 100644 providers/standard/tests/provider_tests/standard/operators/__init__.py
delete mode 100644 providers/standard/tests/provider_tests/standard/sensors/__init__.py
delete mode 100644 providers/standard/tests/provider_tests/standard/triggers/__init__.py
delete mode 100644 providers/standard/tests/provider_tests/standard/utils/__init__.py
copy providers/{ => standard/tests/unit}/__init__.py (100%)
copy {airflow/api_connexion => providers/standard/tests/unit/standard}/__init__.py (100%)
copy {airflow/api_connexion => providers/standard/tests/unit/standard/decorators}/__init__.py (100%)
rename providers/standard/tests/{provider_tests => unit}/standard/decorators/test_python.py (99%)
copy {airflow/api_connexion => providers/standard/tests/unit/standard/hooks}/__init__.py (100%)
rename providers/standard/tests/{provider_tests => unit}/standard/hooks/test_filesystem.py (100%)
rename providers/standard/tests/{provider_tests => unit}/standard/hooks/test_package_index.py (100%)
rename providers/standard/tests/{provider_tests => unit}/standard/hooks/test_subprocess.py (100%)
copy {airflow/api_connexion => providers/standard/tests/unit/standard/operators}/__init__.py (100%)
rename providers/standard/tests/{provider_tests => unit}/standard/operators/test_bash.py (100%)
rename providers/standard/tests/{provider_tests => unit}/standard/operators/test_datetime.py (100%)
rename providers/standard/tests/{provider_tests => unit}/standard/operators/test_generic_transfer.py (100%)
rename providers/standard/tests/{provider_tests => unit}/standard/operators/test_latest_only_operator.py (100%)
rename providers/standard/tests/{provider_tests => unit}/standard/operators/test_python.py (100%)
rename providers/standard/tests/{provider_tests => unit}/standard/operators/test_weekday.py (100%)
copy {airflow/api_connexion => providers/standard/tests/unit/standard/sensors}/__init__.py (100%)
rename providers/standard/tests/{provider_tests => unit}/standard/sensors/test_bash.py (100%)
rename providers/standard/tests/{provider_tests => unit}/standard/sensors/test_date_time.py (100%)
rename providers/standard/tests/{provider_tests => unit}/standard/sensors/test_python.py (97%)
rename providers/standard/tests/{provider_tests => unit}/standard/sensors/test_time.py (100%)
rename providers/standard/tests/{provider_tests => unit}/standard/sensors/test_time_delta.py (100%)
rename providers/standard/tests/{provider_tests => unit}/standard/sensors/test_weekday.py (100%)
copy {airflow/api_connexion => providers/standard/tests/unit/standard/triggers}/__init__.py (100%)
rename providers/standard/tests/{provider_tests => unit}/standard/triggers/test_external_task.py (94%)
rename providers/standard/tests/{provider_tests => unit}/standard/triggers/test_file.py (58%)
rename providers/standard/tests/{provider_tests => unit}/standard/triggers/test_temporal.py (100%)
copy {airflow/api_connexion => providers/standard/tests/unit/standard/utils}/__init__.py (100%)
rename providers/standard/tests/{provider_tests => unit}/standard/utils/test_python_virtualenv.py (100%)
delete mode 100644 providers/tableau/tests/provider_tests/__init__.py
delete mode 100644 providers/tableau/tests/provider_tests/tableau/__init__.py
delete mode 100644 providers/tableau/tests/provider_tests/tableau/hooks/__init__.py
delete mode 100644 providers/tableau/tests/provider_tests/tableau/operators/__init__.py
delete mode 100644 providers/tableau/tests/provider_tests/tableau/sensors/__init__.py
copy providers/{ => tableau/tests/system}/__init__.py (100%)
copy providers/{ => tableau/tests/unit}/__init__.py (100%)
copy {airflow/api_connexion => providers/tableau/tests/unit/tableau}/__init__.py (100%)
copy {airflow/api/auth => providers/tableau/tests/unit/tableau/hooks}/__init__.py (100%)
rename providers/tableau/tests/{provider_tests => unit}/tableau/hooks/test_tableau.py (100%)
copy {airflow/api_connexion => providers/tableau/tests/unit/tableau/operators}/__init__.py (100%)
rename providers/tableau/tests/{provider_tests => unit}/tableau/operators/test_tableau.py (100%)
copy {airflow/api_connexion => providers/tableau/tests/unit/tableau/sensors}/__init__.py (100%)
rename providers/tableau/tests/{provider_tests => unit}/tableau/sensors/test_tableau.py (100%)
delete mode 100644 providers/telegram/tests/provider_tests/__init__.py
delete mode 100644 providers/telegram/tests/provider_tests/telegram/__init__.py
delete mode 100644 providers/telegram/tests/provider_tests/telegram/hooks/__init__.py
delete mode 100644 providers/telegram/tests/provider_tests/telegram/operators/__init__.py
copy providers/{ => telegram/tests/system}/__init__.py (100%)
copy providers/{ => telegram/tests/unit}/__init__.py (100%)
copy {airflow/api/auth => providers/telegram/tests/unit/telegram}/__init__.py (100%)
copy {airflow/api/auth => providers/telegram/tests/unit/telegram/hooks}/__init__.py (100%)
rename providers/telegram/tests/{provider_tests => unit}/telegram/hooks/test_telegram.py (100%)
copy {airflow/api/auth => providers/telegram/tests/unit/telegram/operators}/__init__.py (100%)
rename providers/telegram/tests/{provider_tests => unit}/telegram/operators/test_telegram.py (100%)
delete mode 100644 providers/teradata/tests/provider_tests/__init__.py
delete mode 100644 providers/teradata/tests/provider_tests/teradata/__init__.py
delete mode 100644 providers/teradata/tests/provider_tests/teradata/hooks/__init__.py
delete mode 100644 providers/teradata/tests/provider_tests/teradata/operators/__init__.py
delete mode 100644 providers/teradata/tests/provider_tests/teradata/transfers/__init__.py
delete mode 100644 providers/teradata/tests/provider_tests/teradata/triggers/__init__.py
delete mode 100644 providers/teradata/tests/provider_tests/teradata/utils/__init__.py
copy providers/{ => teradata/tests/system}/__init__.py (100%)
copy providers/{ => teradata/tests/unit}/__init__.py (100%)
copy {airflow/api_connexion => providers/teradata/tests/unit/teradata}/__init__.py (100%)
copy {airflow/api/auth => providers/teradata/tests/unit/teradata/hooks}/__init__.py (100%)
rename providers/teradata/tests/{provider_tests => unit}/teradata/hooks/test_teradata.py (100%)
copy {airflow/api/auth => providers/teradata/tests/unit/teradata/operators}/__init__.py (100%)
rename providers/teradata/tests/{provider_tests => unit}/teradata/operators/test_teradata.py (100%)
rename providers/teradata/tests/{provider_tests => unit}/teradata/operators/test_teradata_compute_cluster.py (100%)
copy {airflow/api/auth => providers/teradata/tests/unit/teradata/transfers}/__init__.py (100%)
rename providers/teradata/tests/{provider_tests => unit}/teradata/transfers/test_azure_blob_to_teradata.py (100%)
rename providers/teradata/tests/{provider_tests => unit}/teradata/transfers/test_s3_to_teradata.py (100%)
rename providers/teradata/tests/{provider_tests => unit}/teradata/transfers/test_teradata_to_teradata.py (100%)
copy {airflow/api/auth => providers/teradata/tests/unit/teradata/triggers}/__init__.py (100%)
rename providers/teradata/tests/{provider_tests => unit}/teradata/triggers/test_teradata_compute_cluster.py (100%)
copy {airflow/api/auth => providers/teradata/tests/unit/teradata/utils}/__init__.py (100%)
rename providers/teradata/tests/{provider_tests => unit}/teradata/utils/test_constants.py (100%)
delete mode 100644 providers/tests/__init__.py
delete mode 100644 providers/tests/apache/__init__.py
delete mode 100644 providers/tests/atlassian/__init__.py
delete mode 100644 providers/tests/cncf/__init__.py
delete mode 100644 providers/tests/common/__init__.py
delete mode 100644 providers/tests/conftest.py
delete mode 100644 providers/tests/dbt/__init__.py
delete mode 100644 providers/tests/deprecations_ignore.yml
delete mode 100644 providers/tests/email/__init__.py
delete mode 100644 providers/tests/email/operators/__init__.py
delete mode 100644 providers/tests/integration/__init__.py
delete mode 100644 providers/tests/integration/apache/__init__.py
delete mode 100644 providers/tests/integration/apache/cassandra/__init__.py
delete mode 100644 providers/tests/integration/apache/cassandra/hooks/__init__.py
delete mode 100644 providers/tests/integration/apache/drill/__init__.py
delete mode 100644 providers/tests/integration/apache/drill/hooks/__init__.py
delete mode 100644 providers/tests/integration/apache/drill/operators/__init__.py
delete mode 100644 providers/tests/integration/apache/hive/__init__.py
delete mode 100644 providers/tests/integration/apache/hive/transfers/__init__.py
delete mode 100644 providers/tests/integration/apache/kafka/__init__.py
delete mode 100644 providers/tests/integration/apache/kafka/hooks/__init__.py
delete mode 100644 providers/tests/integration/apache/kafka/operators/__init__.py
delete mode 100644 providers/tests/integration/apache/kafka/sensors/__init__.py
delete mode 100644 providers/tests/integration/apache/kafka/triggers/__init__.py
delete mode 100644 providers/tests/integration/apache/pinot/__init__.py
delete mode 100644 providers/tests/integration/apache/pinot/hooks/__init__.py
delete mode 100644 providers/tests/integration/google/__init__.py
delete mode 100644 providers/tests/integration/google/cloud/__init__.py
delete mode 100644 providers/tests/integration/google/cloud/transfers/__init__.py
delete mode 100644 providers/tests/integration/microsoft/__init__.py
delete mode 100644 providers/tests/integration/microsoft/mssql/__init__.py
delete mode 100644 providers/tests/integration/microsoft/mssql/hooks/__init__.py
delete mode 100644 providers/tests/integration/mongo/__init__.py
delete mode 100644 providers/tests/integration/mongo/sensors/__init__.py
delete mode 100644 providers/tests/integration/openlineage/__init__.py
delete mode 100644 providers/tests/integration/openlineage/operators/__init__.py
delete mode 100644 providers/tests/integration/qdrant/__init__.py
delete mode 100644 providers/tests/integration/qdrant/hooks/__init__.py
delete mode 100644 providers/tests/integration/qdrant/operators/__init__.py
delete mode 100644 providers/tests/integration/redis/__init__.py
delete mode 100644 providers/tests/integration/redis/hooks/__init__.py
delete mode 100644 providers/tests/integration/redis/operators/__init__.py
delete mode 100644 providers/tests/integration/redis/sensors/__init__.py
delete mode 100644 providers/tests/integration/trino/__init__.py
delete mode 100644 providers/tests/integration/trino/hooks/__init__.py
delete mode 100644 providers/tests/integration/ydb/__init__.py
delete mode 100644 providers/tests/integration/ydb/hooks/__init__.py
delete mode 100644 providers/tests/integration/ydb/operators/__init__.py
delete mode 100644 providers/tests/system/__init__.py
delete mode 100644 providers/tests/system/cncf/__init__.py
delete mode 100644 providers/tests/system/conftest.py
delete mode 100644 providers/tests/system/dbt/__init__.py
delete mode 100644 providers/tests/system/example_empty.py
delete mode 100644 providers/tests/system/microsoft/__init__.py
copy providers/{ => trino/tests/integration}/__init__.py (100%)
copy {airflow/api_connexion => providers/trino/tests/integration/trino}/__init__.py (100%)
copy {airflow/api_connexion => providers/trino/tests/integration/trino/hooks}/__init__.py (100%)
rename providers/{ => trino}/tests/integration/trino/hooks/test_trino.py (100%)
delete mode 100644 providers/trino/tests/provider_tests/__init__.py
delete mode 100644 providers/trino/tests/provider_tests/trino/__init__.py
delete mode 100644 providers/trino/tests/provider_tests/trino/assets/__init__.py
delete mode 100644 providers/trino/tests/provider_tests/trino/hooks/__init__.py
delete mode 100644 providers/trino/tests/provider_tests/trino/transfers/__init__.py
copy providers/{ => trino/tests/system}/__init__.py (100%)
copy providers/{ => trino/tests/unit}/__init__.py (100%)
copy {airflow/api/auth => providers/trino/tests/unit/trino}/__init__.py (100%)
copy {airflow/api_connexion => providers/trino/tests/unit/trino/assets}/__init__.py (100%)
rename providers/trino/tests/{provider_tests => unit}/trino/assets/test_trino.py (100%)
copy {airflow/api/auth => providers/trino/tests/unit/trino/hooks}/__init__.py (100%)
rename providers/trino/tests/{provider_tests => unit}/trino/hooks/test_trino.py (100%)
copy {airflow/api/auth => providers/trino/tests/unit/trino/transfers}/__init__.py (100%)
rename providers/trino/tests/{provider_tests => unit}/trino/transfers/test_gcs_to_trino.py (100%)
delete mode 100644 providers/vertica/tests/provider_tests/__init__.py
delete mode 100644 providers/vertica/tests/provider_tests/vertica/__init__.py
delete mode 100644 providers/vertica/tests/provider_tests/vertica/hooks/__init__.py
copy providers/{ => vertica/tests/system}/__init__.py (100%)
copy providers/{ => vertica/tests/unit}/__init__.py (100%)
copy {airflow/api/auth => providers/vertica/tests/unit/vertica}/__init__.py (100%)
copy {airflow/api/auth => providers/vertica/tests/unit/vertica/hooks}/__init__.py (100%)
rename providers/vertica/tests/{provider_tests => unit}/vertica/hooks/test_vertica.py (100%)
delete mode 100644 providers/weaviate/tests/provider_tests/__init__.py
delete mode 100644 providers/weaviate/tests/provider_tests/weaviate/__init__.py
delete mode 100644 providers/weaviate/tests/provider_tests/weaviate/hooks/__init__.py
delete mode 100644 providers/weaviate/tests/provider_tests/weaviate/operators/__init__.py
copy providers/{ => weaviate/tests/system}/__init__.py (100%)
copy providers/{ => weaviate/tests/unit}/__init__.py (100%)
copy {airflow/api_connexion => providers/weaviate/tests/unit/weaviate}/__init__.py (100%)
copy {airflow/api_connexion => providers/weaviate/tests/unit/weaviate/hooks}/__init__.py (100%)
rename providers/weaviate/tests/{provider_tests => unit}/weaviate/hooks/test_weaviate.py (100%)
copy {airflow/api_connexion => providers/weaviate/tests/unit/weaviate/operators}/__init__.py (100%)
rename providers/weaviate/tests/{provider_tests => unit}/weaviate/operators/test_weaviate.py (100%)
delete mode 100644 providers/yandex/tests/provider_tests/__init__.py
delete mode 100644 providers/yandex/tests/provider_tests/yandex/__init__.py
delete mode 100644 providers/yandex/tests/provider_tests/yandex/hooks/__init__.py
delete mode 100644 providers/yandex/tests/provider_tests/yandex/links/__init__.py
delete mode 100644 providers/yandex/tests/provider_tests/yandex/operators/__init__.py
delete mode 100644 providers/yandex/tests/provider_tests/yandex/secrets/__init__.py
delete mode 100644 providers/yandex/tests/provider_tests/yandex/utils/__init__.py
delete mode 100644 providers/yandex/tests/provider_tests/yandex/utils/test_defaults.py
copy providers/{ => yandex/tests/system}/__init__.py (100%)
copy providers/{ => yandex/tests/unit}/__init__.py (100%)
copy {airflow/api_connexion => providers/yandex/tests/unit/yandex}/__init__.py (100%)
copy {airflow/api_connexion => providers/yandex/tests/unit/yandex/hooks}/__init__.py (100%)
rename providers/yandex/tests/{provider_tests => unit}/yandex/hooks/test_dataproc.py (100%)
rename providers/yandex/tests/{provider_tests => unit}/yandex/hooks/test_yandex.py (100%)
rename providers/yandex/tests/{provider_tests => unit}/yandex/hooks/test_yq.py (100%)
copy {airflow/api_connexion => providers/yandex/tests/unit/yandex/links}/__init__.py (100%)
rename providers/yandex/tests/{provider_tests => unit}/yandex/links/test_yq.py (100%)
copy {airflow/api_connexion => providers/yandex/tests/unit/yandex/operators}/__init__.py (100%)
rename providers/yandex/tests/{provider_tests => unit}/yandex/operators/test_dataproc.py (100%)
rename providers/yandex/tests/{provider_tests => unit}/yandex/operators/test_yq.py (100%)
copy {airflow/api_connexion => providers/yandex/tests/unit/yandex/secrets}/__init__.py (100%)
rename providers/yandex/tests/{provider_tests => unit}/yandex/secrets/test_lockbox.py (100%)
copy {airflow/api_connexion => providers/yandex/tests/unit/yandex/utils}/__init__.py (100%)
rename providers/yandex/tests/{provider_tests => unit}/yandex/utils/test_credentials.py (100%)
copy airflow/api_connexion/__init__.py => providers/yandex/tests/unit/yandex/utils/test_defaults.py (100%)
rename providers/yandex/tests/{provider_tests => unit}/yandex/utils/test_fields.py (100%)
rename providers/yandex/tests/{provider_tests => unit}/yandex/utils/test_user_agent.py (100%)
copy providers/{ => ydb/tests/integration}/__init__.py (100%)
copy {airflow/api_connexion => providers/ydb/tests/integration/ydb}/__init__.py (100%)
copy {airflow/api_connexion => providers/ydb/tests/integration/ydb/hooks}/__init__.py (100%)
copy {airflow/api_connexion => providers/ydb/tests/integration/ydb/operators}/__init__.py (100%)
rename providers/{ => ydb}/tests/integration/ydb/operators/test_ydb.py (100%)
delete mode 100644 providers/ydb/tests/provider_tests/__init__.py
delete mode 100644 providers/ydb/tests/provider_tests/ydb/__init__.py
delete mode 100644 providers/ydb/tests/provider_tests/ydb/hooks/__init__.py
delete mode 100644 providers/ydb/tests/provider_tests/ydb/operators/__init__.py
delete mode 100644 providers/ydb/tests/provider_tests/ydb/utils/__init__.py
delete mode 100644 providers/ydb/tests/provider_tests/ydb/utils/test_defaults.py
copy providers/{ => ydb/tests/system}/__init__.py (100%)
copy providers/{ => ydb/tests/unit}/__init__.py (100%)
copy {airflow/api_connexion => providers/ydb/tests/unit/ydb}/__init__.py (100%)
copy {airflow/api_connexion => providers/ydb/tests/unit/ydb/hooks}/__init__.py (100%)
rename providers/ydb/tests/{provider_tests => unit}/ydb/hooks/test_ydb.py (100%)
copy {airflow/api_connexion => providers/ydb/tests/unit/ydb/operators}/__init__.py (100%)
rename providers/ydb/tests/{provider_tests => unit}/ydb/operators/test_ydb.py (100%)
copy {airflow/api_connexion => providers/ydb/tests/unit/ydb/utils}/__init__.py (100%)
rename providers/ydb/tests/{provider_tests => unit}/ydb/utils/test_credentials.py (100%)
copy airflow/api_connexion/__init__.py => providers/ydb/tests/unit/ydb/utils/test_defaults.py (100%)
delete mode 100644 providers/zendesk/tests/provider_tests/__init__.py
delete mode 100644 providers/zendesk/tests/provider_tests/zendesk/__init__.py
delete mode 100644 providers/zendesk/tests/provider_tests/zendesk/hooks/__init__.py
copy providers/{ => zendesk/tests/system}/__init__.py (100%)
rename providers/{ => zendesk/tests/unit}/__init__.py (100%)
copy {airflow/api_connexion => providers/zendesk/tests/unit/zendesk}/__init__.py (100%)
copy {airflow/api_connexion => providers/zendesk/tests/unit/zendesk/hooks}/__init__.py (100%)
rename providers/zendesk/tests/{provider_tests => unit}/zendesk/hooks/test_zendesk.py (100%)
rename tests/utils/test_dataform.py => scripts/ci/pre_commit/check_default_configuration.py (63%)
mode change 100644 => 100755
copy scripts/ci/pre_commit/{compile_www_assets.py => compile_fab_assets.py} (84%)
create mode 100755 scripts/in_container/run_check_default_configuration.py
create mode 100644 task_sdk/src/airflow/sdk/execution_time/execute_workload.py
create mode 100644 tests/api_fastapi/core_api/routes/ui/test_dependencies.py
copy tests/auth/managers/simple/{test_user.py => conftest.py} (70%)
copy {airflow/api_connexion => tests/auth/managers/simple/routes}/__init__.py (100%)
create mode 100644 tests/auth/managers/simple/routes/test_login.py
copy {airflow/api_connexion => tests/auth/managers/simple/services}/__init__.py (100%)
create mode 100644 tests/auth/managers/simple/services/test_login.py
delete mode 100644 tests/cli/commands/local_commands/test_celery_command.py
delete mode 100644 tests/jobs/test_triggerer_job_logging.py
delete mode 100644 tests/macros/test_macros.py
copy providers/microsoft/mssql/tests/conftest.py => tests_common/test_utils/file_loading.py (60%)
(airflow) 04/06: Bump celery provider version to 3.11.0
Posted by je...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
jedcunningham pushed a commit to branch v3-0-test
in repository https://gitbox.apache.org/repos/asf/airflow.git
commit 1562521bfb83974408f144b6f919cca7fe3f245e
Author: Jed Cunningham <je...@apache.org>
AuthorDate: Fri Jan 31 16:03:03 2025 -0700
Bump celery provider version to 3.11.0
We are doing this so we can cut a 3.11.0a1, to coincide with the 3.0.0a1
release only. This version is not ending up on pypi, or going up for a
vote, at this time.
---
providers/celery/README.rst | 6 +++---
providers/celery/docs/changelog.rst | 11 +++++++++++
providers/celery/docs/commits.rst | 14 +++++++++++++-
providers/celery/docs/index.rst | 14 +++++++-------
providers/celery/provider.yaml | 3 ++-
providers/celery/pyproject.toml | 6 +++---
providers/celery/src/airflow/providers/celery/__init__.py | 2 +-
.../src/airflow/providers/celery/get_provider_info.py | 3 ++-
8 files changed, 42 insertions(+), 17 deletions(-)
diff --git a/providers/celery/README.rst b/providers/celery/README.rst
index 001620b7289..dccd1b91918 100644
--- a/providers/celery/README.rst
+++ b/providers/celery/README.rst
@@ -24,7 +24,7 @@
Package ``apache-airflow-providers-celery``
-Release: ``3.10.0``
+Release: ``3.11.0``
`Celery <https://docs.celeryq.dev/en/stable/>`__
@@ -37,7 +37,7 @@ This is a provider package for ``celery`` provider. All classes for this provide
are in ``airflow.providers.celery`` python package.
You can find package information and changelog for the provider
-in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-celery/3.10.0/>`_.
+in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-celery/3.11.0/>`_.
Installation
------------
@@ -80,4 +80,4 @@ Dependent package
====================================================================================================================== ===================
The changelog for the provider package can be found in the
-`changelog <https://airflow.apache.org/docs/apache-airflow-providers-celery/3.10.0/changelog.html>`_.
+`changelog <https://airflow.apache.org/docs/apache-airflow-providers-celery/3.11.0/changelog.html>`_.
diff --git a/providers/celery/docs/changelog.rst b/providers/celery/docs/changelog.rst
index 51f13de8bc4..cfd12212129 100644
--- a/providers/celery/docs/changelog.rst
+++ b/providers/celery/docs/changelog.rst
@@ -27,6 +27,17 @@
Changelog
---------
+3.11.0
+......
+
+Features
+~~~~~~~~
+
+* ``Swap CeleryExecutor over to use TaskSDK for execution. (#46265)``
+
+.. Below changes are excluded from the changelog. Move them to
+ appropriate section above if needed. Do not delete the lines(!):
+
3.10.0
......
diff --git a/providers/celery/docs/commits.rst b/providers/celery/docs/commits.rst
index 89d8d723f98..d3dec585e3f 100644
--- a/providers/celery/docs/commits.rst
+++ b/providers/celery/docs/commits.rst
@@ -34,14 +34,26 @@ For high-level changelog, see :doc:`package information including changelog <ind
+3.11.0
+......
+
+Latest change: 2025-01-31
+
+================================================================================================= =========== ===================================================================
+Commit Committed Subject
+================================================================================================= =========== ===================================================================
+`984c61d287 <https://github.com/apache/airflow/commit/984c61d2871167056cc727c82b7ee5d3acf9d54a>`_ 2025-01-31 ``Swap CeleryExecutor over to use TaskSDK for execution. (#46265)``
+================================================================================================= =========== ===================================================================
+
3.10.0
......
-Latest change: 2025-01-25
+Latest change: 2025-01-26
================================================================================================= =========== ================================================================================
Commit Committed Subject
================================================================================================= =========== ================================================================================
+`1018627243 <https://github.com/apache/airflow/commit/1018627243b46c33a9df03bd10fa78b23eff95d3>`_ 2025-01-26 ``Prepare docs for ad hoc release celery provider Jan 2025 (rc2) (#46055)``
`29b9e8ea10 <https://github.com/apache/airflow/commit/29b9e8ea10de7a82ad40a7a2160c64a84004a45e>`_ 2025-01-25 ``move standard, alibaba and common.sql provider to the new structure (#45964)``
`4545ea42ef <https://github.com/apache/airflow/commit/4545ea42efd034686ff26788c6b729ed0a69e358>`_ 2025-01-23 ``Prepare docs for ad hoc release celery provider Jan 2025 (#45942)``
`4dda6ba8c0 <https://github.com/apache/airflow/commit/4dda6ba8c01912db2c2a6518dacd062b10ebf1e0>`_ 2025-01-23 ``Move new provider tests to "provider_tests" submodule (#45955)``
diff --git a/providers/celery/docs/index.rst b/providers/celery/docs/index.rst
index 51164b78383..293ab1fedd7 100644
--- a/providers/celery/docs/index.rst
+++ b/providers/celery/docs/index.rst
@@ -67,7 +67,7 @@ apache-airflow-providers-celery package
`Celery <https://docs.celeryq.dev/en/stable/>`__
-Release: 3.10.0
+Release: 3.11.0
Provider package
----------------
@@ -87,14 +87,14 @@ Requirements
The minimum Apache Airflow version supported by this provider package is ``2.9.0``.
-================== ==============================
+================== ==================
PIP package Version required
-================== ==============================
+================== ==================
``apache-airflow`` ``>=2.9.0``
-``celery[redis]`` ``>=5.3.0,!=5.3.2,!=5.3.3,<6``
+``celery[redis]`` ``>=5.4.0,<6``
``flower`` ``>=1.0.0``
``google-re2`` ``>=1.0``
-================== ==============================
+================== ==================
Cross provider package dependencies
-----------------------------------
@@ -121,5 +121,5 @@ Downloading official packages
You can download officially released packages and verify their checksums and signatures from the
`Official Apache Download site <https://downloads.apache.org/airflow/providers/>`_
-* `The apache-airflow-providers-celery 3.10.0 sdist package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_celery-3.10.0.tar.gz>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_celery-3.10.0.tar.gz.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_celery-3.10.0.tar.gz.sha512>`__)
-* `The apache-airflow-providers-celery 3.10.0 wheel package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_celery-3.10.0-py3-none-any.whl>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_celery-3.10.0-py3-none-any.whl.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_celery-3.10.0-py3-none-any.whl.sha512>`__)
+* `The apache-airflow-providers-celery 3.11.0 sdist package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_celery-3.11.0.tar.gz>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_celery-3.11.0.tar.gz.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_celery-3.11.0.tar.gz.sha512>`__)
+* `The apache-airflow-providers-celery 3.11.0 wheel package <https://downloads.apache.org/airflow/providers/apache_airflow_providers_celery-3.11.0-py3-none-any.whl>`_ (`asc <https://downloads.apache.org/airflow/providers/apache_airflow_providers_celery-3.11.0-py3-none-any.whl.asc>`__, `sha512 <https://downloads.apache.org/airflow/providers/apache_airflow_providers_celery-3.11.0-py3-none-any.whl.sha512>`__)
diff --git a/providers/celery/provider.yaml b/providers/celery/provider.yaml
index 3a829a0d96a..3c5fd0ff859 100644
--- a/providers/celery/provider.yaml
+++ b/providers/celery/provider.yaml
@@ -22,9 +22,10 @@ description: |
`Celery <https://docs.celeryq.dev/en/stable/>`__
state: ready
-source-date-epoch: 1737575943
+source-date-epoch: 1738364543
# note that those versions are maintained by release manager - do not update them manually
versions:
+ - 3.11.0
- 3.10.0
- 3.9.0
- 3.8.5
diff --git a/providers/celery/pyproject.toml b/providers/celery/pyproject.toml
index 959a219c2eb..d1422c4b4e2 100644
--- a/providers/celery/pyproject.toml
+++ b/providers/celery/pyproject.toml
@@ -25,7 +25,7 @@ build-backend = "flit_core.buildapi"
[project]
name = "apache-airflow-providers-celery"
-version = "3.10.0"
+version = "3.11.0"
description = "Provider package apache-airflow-providers-celery for Apache Airflow"
readme = "README.rst"
authors = [
@@ -72,8 +72,8 @@ dependencies = [
]
[project.urls]
-"Documentation" = "https://airflow.apache.org/docs/apache-airflow-providers-celery/3.10.0"
-"Changelog" = "https://airflow.apache.org/docs/apache-airflow-providers-celery/3.10.0/changelog.html"
+"Documentation" = "https://airflow.apache.org/docs/apache-airflow-providers-celery/3.11.0"
+"Changelog" = "https://airflow.apache.org/docs/apache-airflow-providers-celery/3.11.0/changelog.html"
"Bug Tracker" = "https://github.com/apache/airflow/issues"
"Source Code" = "https://github.com/apache/airflow"
"Slack Chat" = "https://s.apache.org/airflow-slack"
diff --git a/providers/celery/src/airflow/providers/celery/__init__.py b/providers/celery/src/airflow/providers/celery/__init__.py
index fab2486cc99..9ae74ed8e5d 100644
--- a/providers/celery/src/airflow/providers/celery/__init__.py
+++ b/providers/celery/src/airflow/providers/celery/__init__.py
@@ -29,7 +29,7 @@ from airflow import __version__ as airflow_version
__all__ = ["__version__"]
-__version__ = "3.10.0"
+__version__ = "3.11.0"
if packaging.version.parse(packaging.version.parse(airflow_version).base_version) < packaging.version.parse(
"2.9.0"
diff --git a/providers/celery/src/airflow/providers/celery/get_provider_info.py b/providers/celery/src/airflow/providers/celery/get_provider_info.py
index 0cc999f5baf..9a077ca6a80 100644
--- a/providers/celery/src/airflow/providers/celery/get_provider_info.py
+++ b/providers/celery/src/airflow/providers/celery/get_provider_info.py
@@ -27,8 +27,9 @@ def get_provider_info():
"name": "Celery",
"description": "`Celery <https://docs.celeryq.dev/en/stable/>`__\n",
"state": "ready",
- "source-date-epoch": 1737575943,
+ "source-date-epoch": 1738364543,
"versions": [
+ "3.11.0",
"3.10.0",
"3.9.0",
"3.8.5",
(airflow) 02/06: Update Airflow version to 3.0.0a4
Posted by je...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
jedcunningham pushed a commit to branch v3-0-test
in repository https://gitbox.apache.org/repos/asf/airflow.git
commit c331bcdb47249617eeb17ddcc1655684e22afaff
Author: Jed Cunningham <je...@apache.org>
AuthorDate: Thu Feb 20 14:34:36 2025 -0700
Update Airflow version to 3.0.0a4
---
README.md | 25 +--
airflow/__init__.py | 2 +-
airflow/api_connexion/openapi/v1.yaml | 2 +-
dev/breeze/doc/images/output_ci-image_build.txt | 2 +-
.../doc/images/output_ci_selective-check.svg | 4 +-
.../doc/images/output_ci_selective-check.txt | 2 +-
dev/breeze/doc/images/output_prod-image_build.txt | 2 +-
...elease-management_install-provider-packages.svg | 90 +++++-----
...elease-management_install-provider-packages.txt | 2 +-
...release-management_verify-provider-packages.svg | 88 +++++-----
...release-management_verify-provider-packages.txt | 2 +-
dev/breeze/doc/images/output_setup.txt | 2 +-
.../output_setup_regenerate-command-images.txt | 2 +-
dev/breeze/doc/images/output_shell.svg | 142 ++++++++--------
dev/breeze/doc/images/output_shell.txt | 2 +-
dev/breeze/doc/images/output_start-airflow.svg | 80 +++++----
dev/breeze/doc/images/output_start-airflow.txt | 2 +-
.../doc/images/output_testing_core-tests.svg | 188 ++++++++++-----------
.../doc/images/output_testing_core-tests.txt | 2 +-
.../doc/images/output_testing_providers-tests.txt | 2 +-
.../installation/supported-versions.rst | 1 +
docs/docker-stack/README.md | 10 +-
.../extending/add-airflow-configuration/Dockerfile | 2 +-
.../extending/add-apt-packages/Dockerfile | 2 +-
.../add-build-essential-extend/Dockerfile | 2 +-
.../extending/add-providers/Dockerfile | 2 +-
.../add-pypi-packages-constraints/Dockerfile | 2 +-
.../extending/add-pypi-packages-uv/Dockerfile | 2 +-
.../extending/add-pypi-packages/Dockerfile | 2 +-
.../extending/add-requirement-packages/Dockerfile | 2 +-
.../extending/custom-providers/Dockerfile | 2 +-
.../extending/embedding-dags/Dockerfile | 2 +-
.../extending/writable-directory/Dockerfile | 2 +-
docs/docker-stack/entrypoint.rst | 14 +-
generated/PYPI_README.md | 24 +--
scripts/ci/pre_commit/supported_versions.py | 1 +
36 files changed, 349 insertions(+), 366 deletions(-)
diff --git a/README.md b/README.md
index f27cbdd1abc..99398411e0e 100644
--- a/README.md
+++ b/README.md
@@ -97,14 +97,14 @@ Airflow is not a streaming solution, but it is often used to process real-time d
Apache Airflow is tested with:
-| | Main version (dev) | Stable version (2.10.5) |
-|------------|------------------------|----------------------------|
-| Python | 3.9, 3.10, 3.11, 3.12 | 3.8, 3.9, 3.10, 3.11, 3.12 |
-| Platform | AMD64/ARM64(\*) | AMD64/ARM64(\*) |
-| Kubernetes | 1.29, 1.30, 1.31, 1.32 | 1.27, 1.28, 1.29, 1.30 |
-| PostgreSQL | 13, 14, 15, 16, 17 | 12, 13, 14, 15, 16 |
-| MySQL | 8.0, 8.4, Innovation | 8.0, 8.4, Innovation |
-| SQLite | 3.15.0+ | 3.15.0+ |
+| | Main version (dev) | Stable version (3.0.0) |
+|------------|------------------------|------------------------|
+| Python | 3.9, 3.10, 3.11, 3.12 | 3.9, 3.10, 3.11, 3.12 |
+| Platform | AMD64/ARM64(\*) | AMD64/ARM64(\*) |
+| Kubernetes | 1.29, 1.30, 1.31, 1.32 | 1.29, 1.30, 1.31, 1.32 |
+| PostgreSQL | 13, 14, 15, 16, 17 | 13, 14, 15, 16, 17 |
+| MySQL | 8.0, 8.4, Innovation | 8.0, 8.4, Innovation |
+| SQLite | 3.15.0+ | 3.15.0+ |
\* Experimental
@@ -175,15 +175,15 @@ them to the appropriate format and workflow that your tool requires.
```bash
-pip install 'apache-airflow==2.10.5' \
- --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-2.10.5/constraints-3.9.txt"
+pip install 'apache-airflow==3.0.0' \
+ --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-3.0.0/constraints-3.9.txt"
```
2. Installing with extras (i.e., postgres, google)
```bash
-pip install 'apache-airflow[postgres,google]==2.10.5' \
- --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-2.10.5/constraints-3.9.txt"
+pip install 'apache-airflow[postgres,google]==3.0.0' \
+ --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-3.0.0/constraints-3.9.txt"
```
For information on installing provider packages, check
@@ -288,6 +288,7 @@ Apache Airflow version life cycle:
| Version | Current Patch/Minor | State | First Release | Limited Support | EOL/Terminated |
|-----------|-----------------------|-----------|-----------------|-------------------|------------------|
+| 3 | 3.0.0 | Supported | Jan 31, 2025 | TBD | TBD |
| 2 | 2.10.5 | Supported | Dec 17, 2020 | TBD | TBD |
| 1.10 | 1.10.15 | EOL | Aug 27, 2018 | Dec 17, 2020 | June 17, 2021 |
| 1.9 | 1.9.0 | EOL | Jan 03, 2018 | Aug 27, 2018 | Aug 27, 2018 |
diff --git a/airflow/__init__.py b/airflow/__init__.py
index fed233f0146..9e59f7c55e4 100644
--- a/airflow/__init__.py
+++ b/airflow/__init__.py
@@ -25,7 +25,7 @@
# lib.) This is required by some IDEs to resolve the import paths.
__path__ = __import__("pkgutil").extend_path(__path__, __name__) # type: ignore
-__version__ = "3.0.0.dev0"
+__version__ = "3.0.0a4"
import os
import sys
diff --git a/airflow/api_connexion/openapi/v1.yaml b/airflow/api_connexion/openapi/v1.yaml
index c63fb72f2a9..717439f4a5e 100644
--- a/airflow/api_connexion/openapi/v1.yaml
+++ b/airflow/api_connexion/openapi/v1.yaml
@@ -231,7 +231,7 @@ info:
This means that the server encountered an unexpected condition that prevented it from
fulfilling the request.
- version: "2.9.0.dev0"
+ version: "3.0.0"
license:
name: Apache 2.0
url: http://www.apache.org/licenses/LICENSE-2.0.html
diff --git a/dev/breeze/doc/images/output_ci-image_build.txt b/dev/breeze/doc/images/output_ci-image_build.txt
index cbce7980554..ae4d9d3a4ff 100644
--- a/dev/breeze/doc/images/output_ci-image_build.txt
+++ b/dev/breeze/doc/images/output_ci-image_build.txt
@@ -1 +1 @@
-01a10df4bebe9c35b046b242e9e6afa5
+6799362df80f5704056b0de6cc3216eb
diff --git a/dev/breeze/doc/images/output_ci_selective-check.svg b/dev/breeze/doc/images/output_ci_selective-check.svg
index 80c443dacf2..79d1c460be5 100644
--- a/dev/breeze/doc/images/output_ci_selective-check.svg
+++ b/dev/breeze/doc/images/output_ci_selective-check.svg
@@ -140,9 +140,9 @@
</text><text class="breeze-ci-selective-check-r5" x="0" y="142" textLength="24.4" clip-path="url(#breeze-ci-selective-check-line-5)">╭─</text><text class="breeze-ci-selective-check-r5" x="24.4" y="142" textLength="280.6" clip-path="url(#breeze-ci-selective-check-line-5)"> Selective check flags </text><text class="breeze-ci-selective-check-r5" x="305" y="142" textLength="1134.6" clip-path="url(#breeze-ci-selective-check-line-5)">──────────────────────────────────────── [...]
</text><text class="breeze-ci-selective-check-r5" x="0" y="166.4" textLength="12.2" clip-path="url(#breeze-ci-selective-check-line-6)">│</text><text class="breeze-ci-selective-check-r4" x="24.4" y="166.4" textLength="146.4" clip-path="url(#breeze-ci-selective-check-line-6)">--commit-ref</text><text class="breeze-ci-selective-check-r1" x="414.8" y="166.4" textLength="695.4" clip-path="url(#breeze-ci-selective-check-line-6)">Commit-ish reference to the commit that& [...]
</text><text class="breeze-ci-selective-check-r5" x="0" y="190.8" textLength="12.2" clip-path="url(#breeze-ci-selective-check-line-7)">│</text><text class="breeze-ci-selective-check-r4" x="24.4" y="190.8" textLength="134.2" clip-path="url(#breeze-ci-selective-check-line-7)">--pr-labels</text><text class="breeze-ci-selective-check-r1" x="414.8" y="190.8" textLength="622.2" clip-path="url(#breeze-ci-selective-check-line-7)">Python array formatted PR labels assigned [...]
-</text><text class="breeze-ci-selective-check-r5" x="0" y="215.2" textLength="12.2" clip-path="url(#breeze-ci-selective-check-line-8)">│</text><text class="breeze-ci-selective-check-r4" x="24.4" y="215.2" textLength="195.2" clip-path="url(#breeze-ci-selective-check-line-8)">--default-branch</text><text class="breeze-ci-selective-check-r1" x="414.8" y="215.2" textLength="500.2" clip-path="url(#breeze-ci-selective-check-line-8)">Branch against which the PR should&# [...]
+</text><text class="breeze-ci-selective-check-r5" x="0" y="215.2" textLength="12.2" clip-path="url(#breeze-ci-selective-check-line-8)">│</text><text class="breeze-ci-selective-check-r4" x="24.4" y="215.2" textLength="195.2" clip-path="url(#breeze-ci-selective-check-line-8)">--default-branch</text><text class="breeze-ci-selective-check-r1" x="414.8" y="215.2" textLength="500.2" clip-path="url(#breeze-ci-selective-check-line-8)">Branch against which the PR should&# [...]
</text><text class="breeze-ci-selective-check-r5" x="0" y="239.6" textLength="12.2" clip-path="url(#breeze-ci-selective-check-line-9)">│</text><text class="breeze-ci-selective-check-r4" x="24.4" y="239.6" textLength="341.6" clip-path="url(#breeze-ci-selective-check-line-9)">--default-constraints-branch</text><text class="breeze-ci-selective-check-r1" x="414.8" y="239.6" textLength="646.6" clip-path="url(#breeze-ci-selective-check-line-9)">Constraints Branch against which&# [...]
-</text><text class="breeze-ci-selective-check-r5" x="0" y="264" textLength="12.2" clip-path="url(#breeze-ci-selective-check-line-10)">│</text><text class="breeze-ci-selective-check-r5" x="414.8" y="264" textLength="646.6" clip-path="url(#breeze-ci-selective-check-line-10)">[default: constraints-main]                          </text><text class="breeze-ci- [...]
+</text><text class="breeze-ci-selective-check-r5" x="0" y="264" textLength="12.2" clip-path="url(#breeze-ci-selective-check-line-10)">│</text><text class="breeze-ci-selective-check-r5" x="414.8" y="264" textLength="646.6" clip-path="url(#breeze-ci-selective-check-line-10)">[default: constraints-3-0]                           </text><text class="breez [...]
</text><text class="breeze-ci-selective-check-r5" x="0" y="288.4" textLength="1464" clip-path="url(#breeze-ci-selective-check-line-11)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-ci-selective-check-r1" x="1464" y="288.4" textLength="12.2" clip-path="url(#breeze-ci-selective-check-line-11)">
</text><text class="breeze-ci-selective-check-r5" x="0" y="312.8" textLength="24.4" clip-path="url(#breeze-ci-selective-check-line-12)">╭─</text><text class="breeze-ci-selective-check-r5" x="24.4" y="312.8" textLength="231.8" clip-path="url(#breeze-ci-selective-check-line-12)"> Github parameters </text><text class="breeze-ci-selective-check-r5" x="256.2" y="312.8" textLength="1183.4" clip-path="url(#breeze-ci-selective-check-line-12)">────────────────────────────────────── [...]
</text><text class="breeze-ci-selective-check-r5" x="0" y="337.2" textLength="12.2" clip-path="url(#breeze-ci-selective-check-line-13)">│</text><text class="breeze-ci-selective-check-r4" x="24.4" y="337.2" textLength="231.8" clip-path="url(#breeze-ci-selective-check-line-13)">--github-event-name</text><text class="breeze-ci-selective-check-r1" x="329.4" y="337.2" textLength="1110.2" clip-path="url(#breeze-ci-selective-check-line-13)">Name of the GitHub event that [...]
diff --git a/dev/breeze/doc/images/output_ci_selective-check.txt b/dev/breeze/doc/images/output_ci_selective-check.txt
index ebeb5277929..1cf949a2ed2 100644
--- a/dev/breeze/doc/images/output_ci_selective-check.txt
+++ b/dev/breeze/doc/images/output_ci_selective-check.txt
@@ -1 +1 @@
-78d4ac07ec90efce5bd901f461d940bc
+9d6c6f0fb7a0bd076aca654d5d536012
diff --git a/dev/breeze/doc/images/output_prod-image_build.txt b/dev/breeze/doc/images/output_prod-image_build.txt
index 3b29aa41b4f..44733c53d3d 100644
--- a/dev/breeze/doc/images/output_prod-image_build.txt
+++ b/dev/breeze/doc/images/output_prod-image_build.txt
@@ -1 +1 @@
-7ae94b08487a2f3aa25324f0ca46967c
+84edb387bb930fdeb6f41483c3947cf5
diff --git a/dev/breeze/doc/images/output_release-management_install-provider-packages.svg b/dev/breeze/doc/images/output_release-management_install-provider-packages.svg
index 594dc76523b..65765722c1d 100644
--- a/dev/breeze/doc/images/output_release-management_install-provider-packages.svg
+++ b/dev/breeze/doc/images/output_release-management_install-provider-packages.svg
@@ -1,4 +1,4 @@
-<svg class="rich-terminal" viewBox="0 0 1482 1636.0" xmlns="http://www.w3.org/2000/svg">
+<svg class="rich-terminal" viewBox="0 0 1482 1611.6" xmlns="http://www.w3.org/2000/svg">
<!-- Generated with Rich https://www.textualize.io -->
<style>
@@ -43,7 +43,7 @@
<defs>
<clipPath id="breeze-release-management-install-provider-packages-clip-terminal">
- <rect x="0" y="0" width="1463.0" height="1585.0" />
+ <rect x="0" y="0" width="1463.0" height="1560.6" />
</clipPath>
<clipPath id="breeze-release-management-install-provider-packages-line-0">
<rect x="0" y="1.5" width="1464" height="24.65"/>
@@ -234,12 +234,9 @@
<clipPath id="breeze-release-management-install-provider-packages-line-62">
<rect x="0" y="1514.3" width="1464" height="24.65"/>
</clipPath>
-<clipPath id="breeze-release-management-install-provider-packages-line-63">
- <rect x="0" y="1538.7" width="1464" height="24.65"/>
- </clipPath>
</defs>
- <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="1634" rx="8"/><text class="breeze-release-management-install-provider-packages-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">Command: release-management install-provider-packages</text>
+ <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="1609.6" rx="8"/><text class="breeze-release-management-install-provider-packages-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">Command: release-management install-provider-packages</text>
<g transform="translate(26,22)">
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
@@ -273,47 +270,46 @@
</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="532.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-21)">│</text><text class="breeze-release-management-install-provider-packages-r1" x="475.8" y="532.4" textLength="963.8" clip-path="url(#breeze-release-management-install-provider-packages-line-21)">constraints URL).               [...]
</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="556.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-22)">│</text><text class="breeze-release-management-install-provider-packages-r7" x="475.8" y="556.8" textLength="963.8" clip-path="url(#breeze-release-management-install-provider-packages-line-22)">(TEXT)                 &# [...]
</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="581.2" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-23)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="581.2" textLength="195.2" clip-path="url(#breeze-release-management-install-provider-packages-line-23)">--airflow-extras</text><text class="breeze-release-management-install-provider-packages-r1" x="475.8" y="581.2" [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="605.6" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-24)">│</text><text class="breeze-release-management-install-provider-packages-r5" x="475.8" y="605.6" textLength="732" clip-path="url(#breeze-release-management-install-provider-packages-line-24)">[default: ""]               [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="630" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-25)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="630" textLength="317.2" clip-path="url(#breeze-release-management-install-provider-packages-line-25)">--airflow-skip-constraints</text><text class="breeze-release-management-install-provider-packages-r1" x="475.8" y=" [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="654.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-26)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="654.4" textLength="341.6" clip-path="url(#breeze-release-management-install-provider-packages-line-26)">--clean-airflow-installation</text><text class="breeze-release-management-install-provider-packages-r1" x="475. [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="678.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-27)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="475.8" y="678.8" textLength="256.2" clip-path="url(#breeze-release-management-install-provider-packages-line-27)">--use-airflow-version</text><text class="breeze-release-management-install-provider-packages-r1" x="732" y="67 [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="703.2" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-28)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="703.2" textLength="341.6" clip-path="url(#breeze-release-management-install-provider-packages-line-28)">--install-selected-providers</text><text class="breeze-release-management-install-provider-packages-r1" x="475. [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="727.6" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-29)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="475.8" y="727.6" textLength="292.8" clip-path="url(#breeze-release-management-install-provider-packages-line-29)">--use-packages-from-dist</text><text class="breeze-release-management-install-provider-packages-r1" x="768.6" [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="752" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-30)">│</text><text class="breeze-release-management-install-provider-packages-r7" x="475.8" y="752" textLength="963.8" clip-path="url(#breeze-release-management-install-provider-packages-line-30)">(TEXT)                   [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="776.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-31)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="776.4" textLength="195.2" clip-path="url(#breeze-release-management-install-provider-packages-line-31)">--package-format</text><text class="breeze-release-management-install-provider-packages-r1" x="475.8" y="776.4" [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="800.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-32)">│</text><text class="breeze-release-management-install-provider-packages-r5" x="475.8" y="800.8" textLength="658.8" clip-path="url(#breeze-release-management-install-provider-packages-line-32)">[default: wheel]                [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="825.2" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-33)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="825.2" textLength="390.4" clip-path="url(#breeze-release-management-install-provider-packages-line-33)">--providers-constraints-location</text><text class="breeze-release-management-install-provider-packages-r1" x=" [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="849.6" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-34)">│</text><text class="breeze-release-management-install-provider-packages-r7" x="475.8" y="849.6" textLength="927.2" clip-path="url(#breeze-release-management-install-provider-packages-line-34)">(TEXT)                 &# [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="874" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-35)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="874" textLength="341.6" clip-path="url(#breeze-release-management-install-provider-packages-line-35)">--providers-constraints-mode</text><text class="breeze-release-management-install-provider-packages-r1" x="475.8" y [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="898.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-36)">│</text><text class="breeze-release-management-install-provider-packages-r7" x="475.8" y="898.4" textLength="866.2" clip-path="url(#breeze-release-management-install-provider-packages-line-36)">(constraints-source-providers | constraints | constraints-no-providers)</text><text class= [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="922.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-37)">│</text><text class="breeze-release-management-install-provider-packages-r5" x="475.8" y="922.8" textLength="866.2" clip-path="url(#breeze-release-management-install-provider-packages-line-37)">[default: constraints-source-providers]            [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="947.2" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-38)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="947.2" textLength="402.6" clip-path="url(#breeze-release-management-install-provider-packages-line-38)">--providers-constraints-reference</text><text class="breeze-release-management-install-provider-packages-r1" x= [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="971.6" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-39)">│</text><text class="breeze-release-management-install-provider-packages-r1" x="475.8" y="971.6" textLength="963.8" clip-path="url(#breeze-release-management-install-provider-packages-line-39)">constraints URL). Can be 'default' in which case the de [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="996" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-40)">│</text><text class="breeze-release-management-install-provider-packages-r1" x="475.8" y="996" textLength="963.8" clip-path="url(#breeze-release-management-install-provider-packages-line-40)">constraints-reference is used.            &# [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1020.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-41)">│</text><text class="breeze-release-management-install-provider-packages-r7" x="475.8" y="1020.4" textLength="963.8" clip-path="url(#breeze-release-management-install-provider-packages-line-41)">(TEXT)                  [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1044.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-42)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="1044.8" textLength="341.6" clip-path="url(#breeze-release-management-install-provider-packages-line-42)">--providers-skip-constraints</text><text class="breeze-release-management-install-provider-packages-r1" x="47 [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1069.2" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-43)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="1069.2" textLength="256.2" clip-path="url(#breeze-release-management-install-provider-packages-line-43)">--use-airflow-version</text><text class="breeze-release-management-install-provider-packages-r1" x="475.8" y= [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1093.6" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-44)">│</text><text class="breeze-release-management-install-provider-packages-r1" x="475.8" y="1093.6" textLength="963.8" clip-path="url(#breeze-release-management-install-provider-packages-line-44)">install from PyPI), `none`, `wheel`, or `sdist` to install from [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1118" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-45)">│</text><text class="breeze-release-management-install-provider-packages-r1" x="475.8" y="1118" textLength="963.8" clip-path="url(#breeze-release-management-install-provider-packages-line-45)">or VCS URL to install from (https://pip.pypa.io/en/stable/topics/vcs-support/).</t [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1142.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-46)">│</text><text class="breeze-release-management-install-provider-packages-r1" x="475.8" y="1142.4" textLength="97.6" clip-path="url(#breeze-release-management-install-provider-packages-line-46)">Implies </text><text class="breeze-release-management-install-provider-packages-r4" x="573.4" y="1142.4" [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1166.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-47)">│</text><text class="breeze-release-management-install-provider-packages-r7" x="475.8" y="1166.8" textLength="963.8" clip-path="url(#breeze-release-management-install-provider-packages-line-47)">(none | wheel | sdist | <airflow_version>)      [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1191.2" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-48)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="1191.2" textLength="292.8" clip-path="url(#breeze-release-management-install-provider-packages-line-48)">--use-packages-from-dist</text><text class="breeze-release-management-install-provider-packages-r1" x="475.8" [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1215.6" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-49)">│</text><text class="breeze-release-management-install-provider-packages-r1" x="475.8" y="1215.6" textLength="963.8" clip-path="url(#breeze-release-management-install-provider-packages-line-49)">folder when entering breeze.            [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1240" textLength="1464" clip-path="url(#breeze-release-management-install-provider-packages-line-50)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-install-provider-packages-r1" x="1464" y="1240" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-50)">
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1264.4" textLength="24.4" clip-path="url(#breeze-release-management-install-provider-packages-line-51)">╭─</text><text class="breeze-release-management-install-provider-packages-r5" x="24.4" y="1264.4" textLength="219.6" clip-path="url(#breeze-release-management-install-provider-packages-line-51)"> Parallel running </text><text class="breeze-release-management-install-provider-packages-r5" [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1288.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-52)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="1288.8" textLength="207.4" clip-path="url(#breeze-release-management-install-provider-packages-line-52)">--run-in-parallel</text><text class="breeze-release-management-install-provider-packages-r1" x="378.2" y="128 [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1313.2" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-53)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="1313.2" textLength="158.6" clip-path="url(#breeze-release-management-install-provider-packages-line-53)">--parallelism</text><text class="breeze-release-management-install-provider-packages-r1" x="378.2" y="1313.2" [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1337.6" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-54)">│</text><text class="breeze-release-management-install-provider-packages-r7" x="378.2" y="1337.6" textLength="915" clip-path="url(#breeze-release-management-install-provider-packages-line-54)">(INTEGER RANGE)                [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1362" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-55)">│</text><text class="breeze-release-management-install-provider-packages-r5" x="378.2" y="1362" textLength="915" clip-path="url(#breeze-release-management-install-provider-packages-line-55)">[default: 4; 1<=x<=8]              [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1386.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-56)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="1386.4" textLength="170.8" clip-path="url(#breeze-release-management-install-provider-packages-line-56)">--skip-cleanup</text><text class="breeze-release-management-install-provider-packages-r1" x="378.2" y="1386.4 [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1410.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-57)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="1410.8" textLength="305" clip-path="url(#breeze-release-management-install-provider-packages-line-57)">--include-success-outputs</text><text class="breeze-release-management-install-provider-packages-r1" x="378.2" [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1435.2" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-58)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="1435.2" textLength="207.4" clip-path="url(#breeze-release-management-install-provider-packages-line-58)">--debug-resources</text><text class="breeze-release-management-install-provider-packages-r1" x="378.2" y="143 [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1459.6" textLength="1464" clip-path="url(#breeze-release-management-install-provider-packages-line-59)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-install-provider-packages-r1" x="1464" y="1459.6" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-l [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1484" textLength="24.4" clip-path="url(#breeze-release-management-install-provider-packages-line-60)">╭─</text><text class="breeze-release-management-install-provider-packages-r5" x="24.4" y="1484" textLength="195.2" clip-path="url(#breeze-release-management-install-provider-packages-line-60)"> Common options </text><text class="breeze-release-management-install-provider-packages-r5" x="21 [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1508.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-61)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="1508.4" textLength="109.8" clip-path="url(#breeze-release-management-install-provider-packages-line-61)">--dry-run</text><text class="breeze-release-management-install-provider-packages-r6" x="158.6" y="1508.4" tex [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1532.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-62)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="1532.8" textLength="109.8" clip-path="url(#breeze-release-management-install-provider-packages-line-62)">--verbose</text><text class="breeze-release-management-install-provider-packages-r6" x="158.6" y="1532.8" tex [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1557.2" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-63)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="1557.2" textLength="73.2" clip-path="url(#breeze-release-management-install-provider-packages-line-63)">--help</text><text class="breeze-release-management-install-provider-packages-r6" x="158.6" y="1557.2" textLen [...]
-</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1581.6" textLength="1464" clip-path="url(#breeze-release-management-install-provider-packages-line-64)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-install-provider-packages-r1" x="1464" y="1581.6" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-l [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="605.6" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-24)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="605.6" textLength="317.2" clip-path="url(#breeze-release-management-install-provider-packages-line-24)">--airflow-skip-constraints</text><text class="breeze-release-management-install-provider-packages-r1" x="475.8" [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="630" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-25)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="630" textLength="341.6" clip-path="url(#breeze-release-management-install-provider-packages-line-25)">--clean-airflow-installation</text><text class="breeze-release-management-install-provider-packages-r1" x="475.8" y [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="654.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-26)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="475.8" y="654.4" textLength="256.2" clip-path="url(#breeze-release-management-install-provider-packages-line-26)">--use-airflow-version</text><text class="breeze-release-management-install-provider-packages-r1" x="732" y="65 [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="678.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-27)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="678.8" textLength="341.6" clip-path="url(#breeze-release-management-install-provider-packages-line-27)">--install-selected-providers</text><text class="breeze-release-management-install-provider-packages-r1" x="475. [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="703.2" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-28)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="475.8" y="703.2" textLength="292.8" clip-path="url(#breeze-release-management-install-provider-packages-line-28)">--use-packages-from-dist</text><text class="breeze-release-management-install-provider-packages-r1" x="768.6" [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="727.6" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-29)">│</text><text class="breeze-release-management-install-provider-packages-r7" x="475.8" y="727.6" textLength="963.8" clip-path="url(#breeze-release-management-install-provider-packages-line-29)">(TEXT)                 &# [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="752" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-30)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="752" textLength="195.2" clip-path="url(#breeze-release-management-install-provider-packages-line-30)">--package-format</text><text class="breeze-release-management-install-provider-packages-r1" x="475.8" y="752" textL [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="776.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-31)">│</text><text class="breeze-release-management-install-provider-packages-r5" x="475.8" y="776.4" textLength="658.8" clip-path="url(#breeze-release-management-install-provider-packages-line-31)">[default: wheel]                [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="800.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-32)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="800.8" textLength="390.4" clip-path="url(#breeze-release-management-install-provider-packages-line-32)">--providers-constraints-location</text><text class="breeze-release-management-install-provider-packages-r1" x=" [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="825.2" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-33)">│</text><text class="breeze-release-management-install-provider-packages-r7" x="475.8" y="825.2" textLength="927.2" clip-path="url(#breeze-release-management-install-provider-packages-line-33)">(TEXT)                 &# [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="849.6" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-34)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="849.6" textLength="341.6" clip-path="url(#breeze-release-management-install-provider-packages-line-34)">--providers-constraints-mode</text><text class="breeze-release-management-install-provider-packages-r1" x="475. [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="874" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-35)">│</text><text class="breeze-release-management-install-provider-packages-r7" x="475.8" y="874" textLength="866.2" clip-path="url(#breeze-release-management-install-provider-packages-line-35)">(constraints-source-providers | constraints | constraints-no-providers)</text><text class="bre [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="898.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-36)">│</text><text class="breeze-release-management-install-provider-packages-r5" x="475.8" y="898.4" textLength="866.2" clip-path="url(#breeze-release-management-install-provider-packages-line-36)">[default: constraints-source-providers]            [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="922.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-37)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="922.8" textLength="402.6" clip-path="url(#breeze-release-management-install-provider-packages-line-37)">--providers-constraints-reference</text><text class="breeze-release-management-install-provider-packages-r1" x= [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="947.2" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-38)">│</text><text class="breeze-release-management-install-provider-packages-r1" x="475.8" y="947.2" textLength="963.8" clip-path="url(#breeze-release-management-install-provider-packages-line-38)">constraints URL). Can be 'default' in which case the de [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="971.6" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-39)">│</text><text class="breeze-release-management-install-provider-packages-r1" x="475.8" y="971.6" textLength="963.8" clip-path="url(#breeze-release-management-install-provider-packages-line-39)">constraints-reference is used.            [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="996" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-40)">│</text><text class="breeze-release-management-install-provider-packages-r7" x="475.8" y="996" textLength="963.8" clip-path="url(#breeze-release-management-install-provider-packages-line-40)">(TEXT)                   [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1020.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-41)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="1020.4" textLength="341.6" clip-path="url(#breeze-release-management-install-provider-packages-line-41)">--providers-skip-constraints</text><text class="breeze-release-management-install-provider-packages-r1" x="47 [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1044.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-42)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="1044.8" textLength="256.2" clip-path="url(#breeze-release-management-install-provider-packages-line-42)">--use-airflow-version</text><text class="breeze-release-management-install-provider-packages-r1" x="475.8" y= [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1069.2" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-43)">│</text><text class="breeze-release-management-install-provider-packages-r1" x="475.8" y="1069.2" textLength="963.8" clip-path="url(#breeze-release-management-install-provider-packages-line-43)">install from PyPI), `none`, `wheel`, or `sdist` to install from [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1093.6" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-44)">│</text><text class="breeze-release-management-install-provider-packages-r1" x="475.8" y="1093.6" textLength="963.8" clip-path="url(#breeze-release-management-install-provider-packages-line-44)">or VCS URL to install from (https://pip.pypa.io/en/stable/topics/vcs-support/) [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1118" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-45)">│</text><text class="breeze-release-management-install-provider-packages-r1" x="475.8" y="1118" textLength="97.6" clip-path="url(#breeze-release-management-install-provider-packages-line-45)">Implies </text><text class="breeze-release-management-install-provider-packages-r4" x="573.4" y="1118" textL [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1142.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-46)">│</text><text class="breeze-release-management-install-provider-packages-r7" x="475.8" y="1142.4" textLength="963.8" clip-path="url(#breeze-release-management-install-provider-packages-line-46)">(none | wheel | sdist | <airflow_version>)      [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1166.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-47)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="1166.8" textLength="292.8" clip-path="url(#breeze-release-management-install-provider-packages-line-47)">--use-packages-from-dist</text><text class="breeze-release-management-install-provider-packages-r1" x="475.8" [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1191.2" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-48)">│</text><text class="breeze-release-management-install-provider-packages-r1" x="475.8" y="1191.2" textLength="963.8" clip-path="url(#breeze-release-management-install-provider-packages-line-48)">folder when entering breeze.            [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1215.6" textLength="1464" clip-path="url(#breeze-release-management-install-provider-packages-line-49)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-install-provider-packages-r1" x="1464" y="1215.6" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-l [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1240" textLength="24.4" clip-path="url(#breeze-release-management-install-provider-packages-line-50)">╭─</text><text class="breeze-release-management-install-provider-packages-r5" x="24.4" y="1240" textLength="219.6" clip-path="url(#breeze-release-management-install-provider-packages-line-50)"> Parallel running </text><text class="breeze-release-management-install-provider-packages-r5" x=" [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1264.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-51)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="1264.4" textLength="207.4" clip-path="url(#breeze-release-management-install-provider-packages-line-51)">--run-in-parallel</text><text class="breeze-release-management-install-provider-packages-r1" x="378.2" y="126 [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1288.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-52)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="1288.8" textLength="158.6" clip-path="url(#breeze-release-management-install-provider-packages-line-52)">--parallelism</text><text class="breeze-release-management-install-provider-packages-r1" x="378.2" y="1288.8" [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1313.2" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-53)">│</text><text class="breeze-release-management-install-provider-packages-r7" x="378.2" y="1313.2" textLength="915" clip-path="url(#breeze-release-management-install-provider-packages-line-53)">(INTEGER RANGE)                [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1337.6" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-54)">│</text><text class="breeze-release-management-install-provider-packages-r5" x="378.2" y="1337.6" textLength="915" clip-path="url(#breeze-release-management-install-provider-packages-line-54)">[default: 4; 1<=x<=8]            & [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1362" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-55)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="1362" textLength="170.8" clip-path="url(#breeze-release-management-install-provider-packages-line-55)">--skip-cleanup</text><text class="breeze-release-management-install-provider-packages-r1" x="378.2" y="1362" text [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1386.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-56)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="1386.4" textLength="305" clip-path="url(#breeze-release-management-install-provider-packages-line-56)">--include-success-outputs</text><text class="breeze-release-management-install-provider-packages-r1" x="378.2" [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1410.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-57)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="1410.8" textLength="207.4" clip-path="url(#breeze-release-management-install-provider-packages-line-57)">--debug-resources</text><text class="breeze-release-management-install-provider-packages-r1" x="378.2" y="141 [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1435.2" textLength="1464" clip-path="url(#breeze-release-management-install-provider-packages-line-58)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-install-provider-packages-r1" x="1464" y="1435.2" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-l [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1459.6" textLength="24.4" clip-path="url(#breeze-release-management-install-provider-packages-line-59)">╭─</text><text class="breeze-release-management-install-provider-packages-r5" x="24.4" y="1459.6" textLength="195.2" clip-path="url(#breeze-release-management-install-provider-packages-line-59)"> Common options </text><text class="breeze-release-management-install-provider-packages-r5" x [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1484" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-60)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="1484" textLength="109.8" clip-path="url(#breeze-release-management-install-provider-packages-line-60)">--dry-run</text><text class="breeze-release-management-install-provider-packages-r6" x="158.6" y="1484" textLengt [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1508.4" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-61)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="1508.4" textLength="109.8" clip-path="url(#breeze-release-management-install-provider-packages-line-61)">--verbose</text><text class="breeze-release-management-install-provider-packages-r6" x="158.6" y="1508.4" tex [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1532.8" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-line-62)">│</text><text class="breeze-release-management-install-provider-packages-r4" x="24.4" y="1532.8" textLength="73.2" clip-path="url(#breeze-release-management-install-provider-packages-line-62)">--help</text><text class="breeze-release-management-install-provider-packages-r6" x="158.6" y="1532.8" textLen [...]
+</text><text class="breeze-release-management-install-provider-packages-r5" x="0" y="1557.2" textLength="1464" clip-path="url(#breeze-release-management-install-provider-packages-line-63)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-install-provider-packages-r1" x="1464" y="1557.2" textLength="12.2" clip-path="url(#breeze-release-management-install-provider-packages-l [...]
</text>
</g>
</g>
diff --git a/dev/breeze/doc/images/output_release-management_install-provider-packages.txt b/dev/breeze/doc/images/output_release-management_install-provider-packages.txt
index 03c8d13cb29..8e5e1d1302a 100644
--- a/dev/breeze/doc/images/output_release-management_install-provider-packages.txt
+++ b/dev/breeze/doc/images/output_release-management_install-provider-packages.txt
@@ -1 +1 @@
-d268aa8d56617f065ff8049e37ac60f9
+9d221df603ec227431136189602f8df7
diff --git a/dev/breeze/doc/images/output_release-management_verify-provider-packages.svg b/dev/breeze/doc/images/output_release-management_verify-provider-packages.svg
index bb3791d68aa..f4eb44fbc16 100644
--- a/dev/breeze/doc/images/output_release-management_verify-provider-packages.svg
+++ b/dev/breeze/doc/images/output_release-management_verify-provider-packages.svg
@@ -1,4 +1,4 @@
-<svg class="rich-terminal" viewBox="0 0 1482 1709.1999999999998" xmlns="http://www.w3.org/2000/svg">
+<svg class="rich-terminal" viewBox="0 0 1482 1684.8" xmlns="http://www.w3.org/2000/svg">
<!-- Generated with Rich https://www.textualize.io -->
<style>
@@ -43,7 +43,7 @@
<defs>
<clipPath id="breeze-release-management-verify-provider-packages-clip-terminal">
- <rect x="0" y="0" width="1463.0" height="1658.1999999999998" />
+ <rect x="0" y="0" width="1463.0" height="1633.8" />
</clipPath>
<clipPath id="breeze-release-management-verify-provider-packages-line-0">
<rect x="0" y="1.5" width="1464" height="24.65"/>
@@ -243,12 +243,9 @@
<clipPath id="breeze-release-management-verify-provider-packages-line-65">
<rect x="0" y="1587.5" width="1464" height="24.65"/>
</clipPath>
-<clipPath id="breeze-release-management-verify-provider-packages-line-66">
- <rect x="0" y="1611.9" width="1464" height="24.65"/>
- </clipPath>
</defs>
- <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="1707.2" rx="8"/><text class="breeze-release-management-verify-provider-packages-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">Command: release-management verify-provider-packages</text>
+ <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="1682.8" rx="8"/><text class="breeze-release-management-verify-provider-packages-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">Command: release-management verify-provider-packages</text>
<g transform="translate(26,22)">
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
@@ -286,46 +283,45 @@
</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="630" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-25)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="630" textLength="195.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-25)">--airflow-extras</text><text class="breeze-release-management-verify-provider-packages-r1" x="756.4" y="630" textLength [...]
</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="654.4" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-26)">│</text><text class="breeze-release-management-verify-provider-packages-r1" x="756.4" y="654.4" textLength="683.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-26)">used                  &# [...]
</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="678.8" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-27)">│</text><text class="breeze-release-management-verify-provider-packages-r7" x="756.4" y="678.8" textLength="683.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-27)">(TEXT)                   [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="703.2" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-28)">│</text><text class="breeze-release-management-verify-provider-packages-r5" x="756.4" y="703.2" textLength="683.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-28)">[default: ""]              &# [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="727.6" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-29)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="727.6" textLength="317.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-29)">--airflow-skip-constraints</text><text class="breeze-release-management-verify-provider-packages-r1" x="756.4" y="7 [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="752" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-30)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="752" textLength="341.6" clip-path="url(#breeze-release-management-verify-provider-packages-line-30)">--clean-airflow-installation</text><text class="breeze-release-management-verify-provider-packages-r1" x="756.4" y="752 [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="776.4" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-31)">│</text><text class="breeze-release-management-verify-provider-packages-r1" x="756.4" y="776.4" textLength="158.6" clip-path="url(#breeze-release-management-verify-provider-packages-line-31)">specified by </text><text class="breeze-release-management-verify-provider-packages-r4" x="915" y="776.4 [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="800.8" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-32)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="800.8" textLength="414.8" clip-path="url(#breeze-release-management-verify-provider-packages-line-32)">--install-airflow-with-constraints</text><text class="breeze-release-management-verify-provider-packages-r1" x="439 [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="825.2" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-33)">│</text><text class="breeze-release-management-verify-provider-packages-r1" x="756.4" y="825.2" textLength="683.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-33)">determined from package or airflow version.        [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="849.6" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-34)">│</text><text class="breeze-release-management-verify-provider-packages-r5" x="756.4" y="849.6" textLength="683.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-34)">[default: no-install-airflow-with-constraints]          </t [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="874" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-35)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="874" textLength="341.6" clip-path="url(#breeze-release-management-verify-provider-packages-line-35)">--install-selected-providers</text><text class="breeze-release-management-verify-provider-packages-r1" x="756.4" y="874 [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="898.4" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-36)">│</text><text class="breeze-release-management-verify-provider-packages-r1" x="756.4" y="898.4" textLength="231.8" clip-path="url(#breeze-release-management-verify-provider-packages-line-36)">installed (implies </text><text class="breeze-release-management-verify-provider-packages-r4" x="988.2" [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="922.8" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-37)">│</text><text class="breeze-release-management-verify-provider-packages-r7" x="756.4" y="922.8" textLength="683.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-37)">(TEXT)                   [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="947.2" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-38)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="947.2" textLength="195.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-38)">--package-format</text><text class="breeze-release-management-verify-provider-packages-r1" x="756.4" y="947.2" text [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="971.6" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-39)">│</text><text class="breeze-release-management-verify-provider-packages-r7" x="756.4" y="971.6" textLength="658.8" clip-path="url(#breeze-release-management-verify-provider-packages-line-39)">(wheel | sdist)                [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="996" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-40)">│</text><text class="breeze-release-management-verify-provider-packages-r5" x="756.4" y="996" textLength="658.8" clip-path="url(#breeze-release-management-verify-provider-packages-line-40)">[default: wheel]                & [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1020.4" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-41)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="1020.4" textLength="390.4" clip-path="url(#breeze-release-management-verify-provider-packages-line-41)">--providers-constraints-location</text><text class="breeze-release-management-verify-provider-packages-r1" x="756 [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1044.8" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-42)">│</text><text class="breeze-release-management-verify-provider-packages-r1" x="756.4" y="1044.8" textLength="683.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-42)">local context file).              [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1069.2" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-43)">│</text><text class="breeze-release-management-verify-provider-packages-r7" x="756.4" y="1069.2" textLength="683.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-43)">(TEXT)                  [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1093.6" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-44)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="1093.6" textLength="341.6" clip-path="url(#breeze-release-management-verify-provider-packages-line-44)">--providers-constraints-mode</text><text class="breeze-release-management-verify-provider-packages-r1" x="756.4" [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1118" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-45)">│</text><text class="breeze-release-management-verify-provider-packages-r7" x="756.4" y="1118" textLength="683.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-45)">(constraints-source-providers | constraints |         &# [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1142.4" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-46)">│</text><text class="breeze-release-management-verify-provider-packages-r7" x="756.4" y="1142.4" textLength="683.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-46)">constraints-no-providers)               [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1166.8" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-47)">│</text><text class="breeze-release-management-verify-provider-packages-r5" x="756.4" y="1166.8" textLength="683.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-47)">[default: constraints-source-providers]           &# [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1191.2" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-48)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="1191.2" textLength="402.6" clip-path="url(#breeze-release-management-verify-provider-packages-line-48)">--providers-constraints-reference</text><text class="breeze-release-management-verify-provider-packages-r1" x="75 [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1215.6" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-49)">│</text><text class="breeze-release-management-verify-provider-packages-r1" x="756.4" y="1215.6" textLength="683.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-49)">(used in calculated constraints URL). Can be 'default'  < [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1240" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-50)">│</text><text class="breeze-release-management-verify-provider-packages-r1" x="756.4" y="1240" textLength="683.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-50)">in which case the default constraints-reference is used.</text><text class="breez [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1264.4" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-51)">│</text><text class="breeze-release-management-verify-provider-packages-r7" x="756.4" y="1264.4" textLength="683.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-51)">(TEXT)                  [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1288.8" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-52)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="1288.8" textLength="341.6" clip-path="url(#breeze-release-management-verify-provider-packages-line-52)">--providers-skip-constraints</text><text class="breeze-release-management-verify-provider-packages-r1" x="756.4" [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1313.2" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-53)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="1313.2" textLength="256.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-53)">--use-airflow-version</text><text class="breeze-release-management-verify-provider-packages-r1" x="756.4" y="1313 [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1337.6" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-54)">│</text><text class="breeze-release-management-verify-provider-packages-r1" x="756.4" y="1337.6" textLength="683.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-54)">can also be version (to install from PyPI), `none`,    [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1362" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-55)">│</text><text class="breeze-release-management-verify-provider-packages-r1" x="756.4" y="1362" textLength="683.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-55)">`wheel`, or `sdist` to install from `dist` folder, or   </tex [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1386.4" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-56)">│</text><text class="breeze-release-management-verify-provider-packages-r1" x="756.4" y="1386.4" textLength="683.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-56)">VCS URL to install from            [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1410.8" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-57)">│</text><text class="breeze-release-management-verify-provider-packages-r1" x="756.4" y="1410.8" textLength="683.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-57)">(https://pip.pypa.io/en/stable/topics/vcs-support/).    </text><text class="breeze-release-m [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1435.2" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-58)">│</text><text class="breeze-release-management-verify-provider-packages-r1" x="756.4" y="1435.2" textLength="97.6" clip-path="url(#breeze-release-management-verify-provider-packages-line-58)">Implies </text><text class="breeze-release-management-verify-provider-packages-r4" x="854" y="1435.2" textLe [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1459.6" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-59)">│</text><text class="breeze-release-management-verify-provider-packages-r7" x="756.4" y="1459.6" textLength="683.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-59)">(none | wheel | sdist | <airflow_version>)      [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1484" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-60)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="1484" textLength="292.8" clip-path="url(#breeze-release-management-verify-provider-packages-line-60)">--use-packages-from-dist</text><text class="breeze-release-management-verify-provider-packages-r1" x="756.4" y="1484" [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1508.4" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-61)">│</text><text class="breeze-release-management-verify-provider-packages-r1" x="756.4" y="1508.4" textLength="683.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-61)">type) from 'dist' folder when entering breeze.    &# [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1532.8" textLength="1464" clip-path="url(#breeze-release-management-verify-provider-packages-line-62)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-verify-provider-packages-r1" x="1464" y="1532.8" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-62)">
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1557.2" textLength="24.4" clip-path="url(#breeze-release-management-verify-provider-packages-line-63)">╭─</text><text class="breeze-release-management-verify-provider-packages-r5" x="24.4" y="1557.2" textLength="195.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-63)"> Common options </text><text class="breeze-release-management-verify-provider-packages-r5" x="219 [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1581.6" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-64)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="1581.6" textLength="109.8" clip-path="url(#breeze-release-management-verify-provider-packages-line-64)">--dry-run</text><text class="breeze-release-management-verify-provider-packages-r6" x="158.6" y="1581.6" textLeng [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1606" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-65)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="1606" textLength="109.8" clip-path="url(#breeze-release-management-verify-provider-packages-line-65)">--verbose</text><text class="breeze-release-management-verify-provider-packages-r6" x="158.6" y="1606" textLength="24 [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1630.4" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-66)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="1630.4" textLength="73.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-66)">--help</text><text class="breeze-release-management-verify-provider-packages-r6" x="158.6" y="1630.4" textLength=" [...]
-</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1654.8" textLength="1464" clip-path="url(#breeze-release-management-verify-provider-packages-line-67)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-verify-provider-packages-r1" x="1464" y="1654.8" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-67)">
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="703.2" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-28)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="703.2" textLength="317.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-28)">--airflow-skip-constraints</text><text class="breeze-release-management-verify-provider-packages-r1" x="756.4" y="7 [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="727.6" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-29)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="727.6" textLength="341.6" clip-path="url(#breeze-release-management-verify-provider-packages-line-29)">--clean-airflow-installation</text><text class="breeze-release-management-verify-provider-packages-r1" x="756.4" y= [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="752" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-30)">│</text><text class="breeze-release-management-verify-provider-packages-r1" x="756.4" y="752" textLength="158.6" clip-path="url(#breeze-release-management-verify-provider-packages-line-30)">specified by </text><text class="breeze-release-management-verify-provider-packages-r4" x="915" y="752" text [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="776.4" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-31)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="776.4" textLength="414.8" clip-path="url(#breeze-release-management-verify-provider-packages-line-31)">--install-airflow-with-constraints</text><text class="breeze-release-management-verify-provider-packages-r1" x="439 [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="800.8" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-32)">│</text><text class="breeze-release-management-verify-provider-packages-r1" x="756.4" y="800.8" textLength="683.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-32)">determined from package or airflow version.        [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="825.2" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-33)">│</text><text class="breeze-release-management-verify-provider-packages-r5" x="756.4" y="825.2" textLength="683.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-33)">[default: no-install-airflow-with-constraints]          </t [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="849.6" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-34)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="849.6" textLength="341.6" clip-path="url(#breeze-release-management-verify-provider-packages-line-34)">--install-selected-providers</text><text class="breeze-release-management-verify-provider-packages-r1" x="756.4" y= [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="874" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-35)">│</text><text class="breeze-release-management-verify-provider-packages-r1" x="756.4" y="874" textLength="231.8" clip-path="url(#breeze-release-management-verify-provider-packages-line-35)">installed (implies </text><text class="breeze-release-management-verify-provider-packages-r4" x="988.2" y="8 [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="898.4" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-36)">│</text><text class="breeze-release-management-verify-provider-packages-r7" x="756.4" y="898.4" textLength="683.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-36)">(TEXT)                   [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="922.8" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-37)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="922.8" textLength="195.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-37)">--package-format</text><text class="breeze-release-management-verify-provider-packages-r1" x="756.4" y="922.8" text [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="947.2" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-38)">│</text><text class="breeze-release-management-verify-provider-packages-r7" x="756.4" y="947.2" textLength="658.8" clip-path="url(#breeze-release-management-verify-provider-packages-line-38)">(wheel | sdist)                [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="971.6" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-39)">│</text><text class="breeze-release-management-verify-provider-packages-r5" x="756.4" y="971.6" textLength="658.8" clip-path="url(#breeze-release-management-verify-provider-packages-line-39)">[default: wheel]                [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="996" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-40)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="996" textLength="390.4" clip-path="url(#breeze-release-management-verify-provider-packages-line-40)">--providers-constraints-location</text><text class="breeze-release-management-verify-provider-packages-r1" x="756.4" y= [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1020.4" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-41)">│</text><text class="breeze-release-management-verify-provider-packages-r1" x="756.4" y="1020.4" textLength="683.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-41)">local context file).              [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1044.8" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-42)">│</text><text class="breeze-release-management-verify-provider-packages-r7" x="756.4" y="1044.8" textLength="683.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-42)">(TEXT)                  [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1069.2" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-43)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="1069.2" textLength="341.6" clip-path="url(#breeze-release-management-verify-provider-packages-line-43)">--providers-constraints-mode</text><text class="breeze-release-management-verify-provider-packages-r1" x="756.4" [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1093.6" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-44)">│</text><text class="breeze-release-management-verify-provider-packages-r7" x="756.4" y="1093.6" textLength="683.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-44)">(constraints-source-providers | constraints |         [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1118" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-45)">│</text><text class="breeze-release-management-verify-provider-packages-r7" x="756.4" y="1118" textLength="683.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-45)">constraints-no-providers)               & [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1142.4" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-46)">│</text><text class="breeze-release-management-verify-provider-packages-r5" x="756.4" y="1142.4" textLength="683.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-46)">[default: constraints-source-providers]           &# [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1166.8" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-47)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="1166.8" textLength="402.6" clip-path="url(#breeze-release-management-verify-provider-packages-line-47)">--providers-constraints-reference</text><text class="breeze-release-management-verify-provider-packages-r1" x="75 [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1191.2" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-48)">│</text><text class="breeze-release-management-verify-provider-packages-r1" x="756.4" y="1191.2" textLength="683.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-48)">(used in calculated constraints URL). Can be 'default'  < [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1215.6" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-49)">│</text><text class="breeze-release-management-verify-provider-packages-r1" x="756.4" y="1215.6" textLength="683.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-49)">in which case the default constraints-reference is used.</text><text class="b [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1240" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-50)">│</text><text class="breeze-release-management-verify-provider-packages-r7" x="756.4" y="1240" textLength="683.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-50)">(TEXT)                  &# [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1264.4" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-51)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="1264.4" textLength="341.6" clip-path="url(#breeze-release-management-verify-provider-packages-line-51)">--providers-skip-constraints</text><text class="breeze-release-management-verify-provider-packages-r1" x="756.4" [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1288.8" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-52)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="1288.8" textLength="256.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-52)">--use-airflow-version</text><text class="breeze-release-management-verify-provider-packages-r1" x="756.4" y="1288 [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1313.2" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-53)">│</text><text class="breeze-release-management-verify-provider-packages-r1" x="756.4" y="1313.2" textLength="683.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-53)">can also be version (to install from PyPI), `none`,    [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1337.6" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-54)">│</text><text class="breeze-release-management-verify-provider-packages-r1" x="756.4" y="1337.6" textLength="683.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-54)">`wheel`, or `sdist` to install from `dist` folder, or   < [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1362" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-55)">│</text><text class="breeze-release-management-verify-provider-packages-r1" x="756.4" y="1362" textLength="683.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-55)">VCS URL to install from            & [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1386.4" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-56)">│</text><text class="breeze-release-management-verify-provider-packages-r1" x="756.4" y="1386.4" textLength="683.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-56)">(https://pip.pypa.io/en/stable/topics/vcs-support/).    </text><text class="breeze-release-m [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1410.8" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-57)">│</text><text class="breeze-release-management-verify-provider-packages-r1" x="756.4" y="1410.8" textLength="97.6" clip-path="url(#breeze-release-management-verify-provider-packages-line-57)">Implies </text><text class="breeze-release-management-verify-provider-packages-r4" x="854" y="1410.8" textLe [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1435.2" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-58)">│</text><text class="breeze-release-management-verify-provider-packages-r7" x="756.4" y="1435.2" textLength="683.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-58)">(none | wheel | sdist | <airflow_version>)      [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1459.6" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-59)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="1459.6" textLength="292.8" clip-path="url(#breeze-release-management-verify-provider-packages-line-59)">--use-packages-from-dist</text><text class="breeze-release-management-verify-provider-packages-r1" x="756.4" y="1 [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1484" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-60)">│</text><text class="breeze-release-management-verify-provider-packages-r1" x="756.4" y="1484" textLength="683.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-60)">type) from 'dist' folder when entering breeze.      [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1508.4" textLength="1464" clip-path="url(#breeze-release-management-verify-provider-packages-line-61)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-verify-provider-packages-r1" x="1464" y="1508.4" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-61)">
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1532.8" textLength="24.4" clip-path="url(#breeze-release-management-verify-provider-packages-line-62)">╭─</text><text class="breeze-release-management-verify-provider-packages-r5" x="24.4" y="1532.8" textLength="195.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-62)"> Common options </text><text class="breeze-release-management-verify-provider-packages-r5" x="219 [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1557.2" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-63)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="1557.2" textLength="109.8" clip-path="url(#breeze-release-management-verify-provider-packages-line-63)">--dry-run</text><text class="breeze-release-management-verify-provider-packages-r6" x="158.6" y="1557.2" textLeng [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1581.6" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-64)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="1581.6" textLength="109.8" clip-path="url(#breeze-release-management-verify-provider-packages-line-64)">--verbose</text><text class="breeze-release-management-verify-provider-packages-r6" x="158.6" y="1581.6" textLeng [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1606" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-65)">│</text><text class="breeze-release-management-verify-provider-packages-r4" x="24.4" y="1606" textLength="73.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-65)">--help</text><text class="breeze-release-management-verify-provider-packages-r6" x="158.6" y="1606" textLength="24.4" [...]
+</text><text class="breeze-release-management-verify-provider-packages-r5" x="0" y="1630.4" textLength="1464" clip-path="url(#breeze-release-management-verify-provider-packages-line-66)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-release-management-verify-provider-packages-r1" x="1464" y="1630.4" textLength="12.2" clip-path="url(#breeze-release-management-verify-provider-packages-line-66)">
</text>
</g>
</g>
diff --git a/dev/breeze/doc/images/output_release-management_verify-provider-packages.txt b/dev/breeze/doc/images/output_release-management_verify-provider-packages.txt
index a82e8464d69..36efe698d25 100644
--- a/dev/breeze/doc/images/output_release-management_verify-provider-packages.txt
+++ b/dev/breeze/doc/images/output_release-management_verify-provider-packages.txt
@@ -1 +1 @@
-e00b5b4f0bb6e565595f862730c43275
+0580c726eafc20926471277be14807f7
diff --git a/dev/breeze/doc/images/output_setup.txt b/dev/breeze/doc/images/output_setup.txt
index 21f3c7e2527..274751197da 100644
--- a/dev/breeze/doc/images/output_setup.txt
+++ b/dev/breeze/doc/images/output_setup.txt
@@ -1 +1 @@
-ba00ab3fb2ed5a777684878c28b3ce65
+08c78d9dddd037a2ade6b751c5a22ff9
diff --git a/dev/breeze/doc/images/output_setup_regenerate-command-images.txt b/dev/breeze/doc/images/output_setup_regenerate-command-images.txt
index 2d4b8484abd..fc8e18811b0 100644
--- a/dev/breeze/doc/images/output_setup_regenerate-command-images.txt
+++ b/dev/breeze/doc/images/output_setup_regenerate-command-images.txt
@@ -1 +1 @@
-2ffbc2f4a212e0761971ab66e6ee2b44
+73353429c2c0d214d67e08fc95bfab16
diff --git a/dev/breeze/doc/images/output_shell.svg b/dev/breeze/doc/images/output_shell.svg
index 2642db6c1b6..93fd4ad6e6b 100644
--- a/dev/breeze/doc/images/output_shell.svg
+++ b/dev/breeze/doc/images/output_shell.svg
@@ -1,4 +1,4 @@
-<svg class="rich-terminal" viewBox="0 0 1482 4027.2" xmlns="http://www.w3.org/2000/svg">
+<svg class="rich-terminal" viewBox="0 0 1482 4002.7999999999997" xmlns="http://www.w3.org/2000/svg">
<!-- Generated with Rich https://www.textualize.io -->
<style>
@@ -43,7 +43,7 @@
<defs>
<clipPath id="breeze-shell-clip-terminal">
- <rect x="0" y="0" width="1463.0" height="3976.2" />
+ <rect x="0" y="0" width="1463.0" height="3951.7999999999997" />
</clipPath>
<clipPath id="breeze-shell-line-0">
<rect x="0" y="1.5" width="1464" height="24.65"/>
@@ -528,12 +528,9 @@
<clipPath id="breeze-shell-line-160">
<rect x="0" y="3905.5" width="1464" height="24.65"/>
</clipPath>
-<clipPath id="breeze-shell-line-161">
- <rect x="0" y="3929.9" width="1464" height="24.65"/>
- </clipPath>
</defs>
- <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="4025.2" rx="8"/><text class="breeze-shell-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">Command: shell</text>
+ <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="4000.8" rx="8"/><text class="breeze-shell-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">Command: shell</text>
<g transform="translate(26,22)">
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
@@ -639,73 +636,72 @@
</text><text class="breeze-shell-r5" x="0" y="2289.2" textLength="12.2" clip-path="url(#breeze-shell-line-93)">│</text><text class="breeze-shell-r4" x="24.4" y="2289.2" textLength="195.2" clip-path="url(#breeze-shell-line-93)">--airflow-extras</text><text class="breeze-shell-r1" x="756.4" y="2289.2" textLength="378.2" clip-path="url(#breeze-shell-line-93)">Airflow extras to install when </text><text class="breeze-shell-r4" x="1134.6" y="2289.2" textLength="256.2" [...]
</text><text class="breeze-shell-r5" x="0" y="2313.6" textLength="12.2" clip-path="url(#breeze-shell-line-94)">│</text><text class="breeze-shell-r1" x="756.4" y="2313.6" textLength="683.2" clip-path="url(#breeze-shell-line-94)">used                                           &# [...]
</text><text class="breeze-shell-r5" x="0" y="2338" textLength="12.2" clip-path="url(#breeze-shell-line-95)">│</text><text class="breeze-shell-r7" x="756.4" y="2338" textLength="683.2" clip-path="url(#breeze-shell-line-95)">(TEXT)                                            [...]
-</text><text class="breeze-shell-r5" x="0" y="2362.4" textLength="12.2" clip-path="url(#breeze-shell-line-96)">│</text><text class="breeze-shell-r5" x="756.4" y="2362.4" textLength="683.2" clip-path="url(#breeze-shell-line-96)">[default: ""]                                       &# [...]
-</text><text class="breeze-shell-r5" x="0" y="2386.8" textLength="12.2" clip-path="url(#breeze-shell-line-97)">│</text><text class="breeze-shell-r4" x="24.4" y="2386.8" textLength="317.2" clip-path="url(#breeze-shell-line-97)">--airflow-skip-constraints</text><text class="breeze-shell-r1" x="756.4" y="2386.8" textLength="573.4" clip-path="url(#breeze-shell-line-97)">Do not use constraints when installing airflow.</text><text class="breeze-shell-r5" x="1451.8 [...]
-</text><text class="breeze-shell-r5" x="0" y="2411.2" textLength="12.2" clip-path="url(#breeze-shell-line-98)">│</text><text class="breeze-shell-r4" x="24.4" y="2411.2" textLength="341.6" clip-path="url(#breeze-shell-line-98)">--clean-airflow-installation</text><text class="breeze-shell-r1" x="756.4" y="2411.2" textLength="683.2" clip-path="url(#breeze-shell-line-98)">Clean the airflow installation before installing version</text><text class="breeze-shell-r5 [...]
-</text><text class="breeze-shell-r5" x="0" y="2435.6" textLength="12.2" clip-path="url(#breeze-shell-line-99)">│</text><text class="breeze-shell-r1" x="756.4" y="2435.6" textLength="158.6" clip-path="url(#breeze-shell-line-99)">specified by </text><text class="breeze-shell-r4" x="915" y="2435.6" textLength="256.2" clip-path="url(#breeze-shell-line-99)">--use-airflow-version</text><text class="breeze-shell-r1" x="1171.2" y="2435.6" textLength="268.4" clip-path="url(#breeze-shell [...]
-</text><text class="breeze-shell-r5" x="0" y="2460" textLength="12.2" clip-path="url(#breeze-shell-line-100)">│</text><text class="breeze-shell-r4" x="24.4" y="2460" textLength="244" clip-path="url(#breeze-shell-line-100)">--excluded-providers</text><text class="breeze-shell-r1" x="756.4" y="2460" textLength="683.2" clip-path="url(#breeze-shell-line-100)">JSON-string of dictionary containing excluded providers </text><text class="breeze-shell-r5" x="1451.8" [...]
-</text><text class="breeze-shell-r5" x="0" y="2484.4" textLength="12.2" clip-path="url(#breeze-shell-line-101)">│</text><text class="breeze-shell-r1" x="756.4" y="2484.4" textLength="683.2" clip-path="url(#breeze-shell-line-101)">per python version ({'3.12': ['provider']})             </text><text class="breeze-shell-r5" x="1451.8" y="2484.4" textLength="12.2" clip-path="url(#breeze-s [...]
-</text><text class="breeze-shell-r5" x="0" y="2508.8" textLength="12.2" clip-path="url(#breeze-shell-line-102)">│</text><text class="breeze-shell-r7" x="756.4" y="2508.8" textLength="683.2" clip-path="url(#breeze-shell-line-102)">(TEXT)                                           [...]
-</text><text class="breeze-shell-r5" x="0" y="2533.2" textLength="12.2" clip-path="url(#breeze-shell-line-103)">│</text><text class="breeze-shell-r4" x="24.4" y="2533.2" textLength="329.4" clip-path="url(#breeze-shell-line-103)">--force-lowest-dependencies</text><text class="breeze-shell-r1" x="756.4" y="2533.2" textLength="683.2" clip-path="url(#breeze-shell-line-103)">Run tests for the lowest direct dependencies of Airflow </text><text class [...]
-</text><text class="breeze-shell-r5" x="0" y="2557.6" textLength="12.2" clip-path="url(#breeze-shell-line-104)">│</text><text class="breeze-shell-r1" x="756.4" y="2557.6" textLength="683.2" clip-path="url(#breeze-shell-line-104)">or selected provider if `Provider[PROVIDER_ID]` is used </text><text class="breeze-shell-r5" x="1451.8" y="2557.6" textLength="12.2" clip-path="url(#breeze-shell-line-104)">│</text><text class="breeze-shell-r1" x="1464" y="2557 [...]
-</text><text class="breeze-shell-r5" x="0" y="2582" textLength="12.2" clip-path="url(#breeze-shell-line-105)">│</text><text class="breeze-shell-r1" x="756.4" y="2582" textLength="683.2" clip-path="url(#breeze-shell-line-105)">as test type.                                         [...]
-</text><text class="breeze-shell-r5" x="0" y="2606.4" textLength="12.2" clip-path="url(#breeze-shell-line-106)">│</text><text class="breeze-shell-r4" x="24.4" y="2606.4" textLength="414.8" clip-path="url(#breeze-shell-line-106)">--install-airflow-with-constraints</text><text class="breeze-shell-r1" x="439.2" y="2606.4" textLength="12.2" clip-path="url(#breeze-shell-line-106)">/</text><text class="breeze-shell-r4" x="451.4" y="2606.4" textLength="256.2" clip-path="url(#breeze-shell-line-1 [...]
-</text><text class="breeze-shell-r5" x="0" y="2630.8" textLength="12.2" clip-path="url(#breeze-shell-line-107)">│</text><text class="breeze-shell-r1" x="756.4" y="2630.8" textLength="683.2" clip-path="url(#breeze-shell-line-107)">determined from package or airflow version.             </text><text class="breeze-shell-r5" x="1451.8" y="2630.8" textLength="12.2" clip-path="url(#breeze-shell-line-107)" [...]
-</text><text class="breeze-shell-r5" x="0" y="2655.2" textLength="12.2" clip-path="url(#breeze-shell-line-108)">│</text><text class="breeze-shell-r5" x="756.4" y="2655.2" textLength="683.2" clip-path="url(#breeze-shell-line-108)">[default: install-airflow-with-constraints]             </text><text class="breeze-shell-r5" x="1451.8" y="2655.2" textLength="12.2" clip-path="url(#breeze-shell-line-108)">│</text><text class [...]
-</text><text class="breeze-shell-r5" x="0" y="2679.6" textLength="12.2" clip-path="url(#breeze-shell-line-109)">│</text><text class="breeze-shell-r4" x="24.4" y="2679.6" textLength="341.6" clip-path="url(#breeze-shell-line-109)">--install-selected-providers</text><text class="breeze-shell-r1" x="756.4" y="2679.6" textLength="683.2" clip-path="url(#breeze-shell-line-109)">Comma-separated list of providers selected to be       [...]
-</text><text class="breeze-shell-r5" x="0" y="2704" textLength="12.2" clip-path="url(#breeze-shell-line-110)">│</text><text class="breeze-shell-r1" x="756.4" y="2704" textLength="231.8" clip-path="url(#breeze-shell-line-110)">installed (implies </text><text class="breeze-shell-r4" x="988.2" y="2704" textLength="292.8" clip-path="url(#breeze-shell-line-110)">--use-packages-from-dist</text><text class="breeze-shell-r1" x="1281" y="2704" textLength="158.6" clip-path="url(#breeze-s [...]
-</text><text class="breeze-shell-r5" x="0" y="2728.4" textLength="12.2" clip-path="url(#breeze-shell-line-111)">│</text><text class="breeze-shell-r7" x="756.4" y="2728.4" textLength="683.2" clip-path="url(#breeze-shell-line-111)">(TEXT)                                           [...]
-</text><text class="breeze-shell-r5" x="0" y="2752.8" textLength="12.2" clip-path="url(#breeze-shell-line-112)">│</text><text class="breeze-shell-r4" x="24.4" y="2752.8" textLength="195.2" clip-path="url(#breeze-shell-line-112)">--package-format</text><text class="breeze-shell-r1" x="756.4" y="2752.8" textLength="658.8" clip-path="url(#breeze-shell-line-112)">Format of packages that should be installed from dist.</text><text class="breeze-shell-r5" [...]
-</text><text class="breeze-shell-r5" x="0" y="2777.2" textLength="12.2" clip-path="url(#breeze-shell-line-113)">│</text><text class="breeze-shell-r7" x="756.4" y="2777.2" textLength="658.8" clip-path="url(#breeze-shell-line-113)">(wheel | sdist)                                       </t [...]
-</text><text class="breeze-shell-r5" x="0" y="2801.6" textLength="12.2" clip-path="url(#breeze-shell-line-114)">│</text><text class="breeze-shell-r5" x="756.4" y="2801.6" textLength="658.8" clip-path="url(#breeze-shell-line-114)">[default: wheel]                                      </text><text [...]
-</text><text class="breeze-shell-r5" x="0" y="2826" textLength="12.2" clip-path="url(#breeze-shell-line-115)">│</text><text class="breeze-shell-r4" x="24.4" y="2826" textLength="390.4" clip-path="url(#breeze-shell-line-115)">--providers-constraints-location</text><text class="breeze-shell-r1" x="756.4" y="2826" textLength="683.2" clip-path="url(#breeze-shell-line-115)">Location of providers constraints to use (remote URL or </text><text class= [...]
-</text><text class="breeze-shell-r5" x="0" y="2850.4" textLength="12.2" clip-path="url(#breeze-shell-line-116)">│</text><text class="breeze-shell-r1" x="756.4" y="2850.4" textLength="683.2" clip-path="url(#breeze-shell-line-116)">local context file).                                    </text><text cla [...]
-</text><text class="breeze-shell-r5" x="0" y="2874.8" textLength="12.2" clip-path="url(#breeze-shell-line-117)">│</text><text class="breeze-shell-r7" x="756.4" y="2874.8" textLength="683.2" clip-path="url(#breeze-shell-line-117)">(TEXT)                                           [...]
-</text><text class="breeze-shell-r5" x="0" y="2899.2" textLength="12.2" clip-path="url(#breeze-shell-line-118)">│</text><text class="breeze-shell-r4" x="24.4" y="2899.2" textLength="341.6" clip-path="url(#breeze-shell-line-118)">--providers-constraints-mode</text><text class="breeze-shell-r1" x="756.4" y="2899.2" textLength="683.2" clip-path="url(#breeze-shell-line-118)">Mode of constraints for Providers for CI image building.</text><text class="br [...]
-</text><text class="breeze-shell-r5" x="0" y="2923.6" textLength="12.2" clip-path="url(#breeze-shell-line-119)">│</text><text class="breeze-shell-r7" x="756.4" y="2923.6" textLength="683.2" clip-path="url(#breeze-shell-line-119)">(constraints-source-providers | constraints |           </text><text class="breeze-shell-r5" x="1451.8" y="2923.6" textLength="12.2" clip-path="url(#breeze-shell-line-119)">│</text><text class [...]
-</text><text class="breeze-shell-r5" x="0" y="2948" textLength="12.2" clip-path="url(#breeze-shell-line-120)">│</text><text class="breeze-shell-r7" x="756.4" y="2948" textLength="683.2" clip-path="url(#breeze-shell-line-120)">constraints-no-providers)                               </text><text class="breeze-shell-r5" x="1451.8" y="2948 [...]
-</text><text class="breeze-shell-r5" x="0" y="2972.4" textLength="12.2" clip-path="url(#breeze-shell-line-121)">│</text><text class="breeze-shell-r5" x="756.4" y="2972.4" textLength="683.2" clip-path="url(#breeze-shell-line-121)">[default: constraints-source-providers]                 </text><text class="breeze-shell-r5" x="1451.8" y="2972.4" textLength="12.2" clip-path="url(#breeze-shell-line-121)" [...]
-</text><text class="breeze-shell-r5" x="0" y="2996.8" textLength="12.2" clip-path="url(#breeze-shell-line-122)">│</text><text class="breeze-shell-r4" x="24.4" y="2996.8" textLength="402.6" clip-path="url(#breeze-shell-line-122)">--providers-constraints-reference</text><text class="breeze-shell-r1" x="756.4" y="2996.8" textLength="683.2" clip-path="url(#breeze-shell-line-122)">Constraint reference to use for providers installation  </text><text clas [...]
-</text><text class="breeze-shell-r5" x="0" y="3021.2" textLength="12.2" clip-path="url(#breeze-shell-line-123)">│</text><text class="breeze-shell-r1" x="756.4" y="3021.2" textLength="683.2" clip-path="url(#breeze-shell-line-123)">(used in calculated constraints URL). Can be 'default'  </text><text class="breeze-shell-r5" x="1451.8" y="3021.2" textLength="12.2" clip-path="url(#breeze-shell-line-123)">│</text><text class="breeze-shell- [...]
-</text><text class="breeze-shell-r5" x="0" y="3045.6" textLength="12.2" clip-path="url(#breeze-shell-line-124)">│</text><text class="breeze-shell-r1" x="756.4" y="3045.6" textLength="683.2" clip-path="url(#breeze-shell-line-124)">in which case the default constraints-reference is used.</text><text class="breeze-shell-r5" x="1451.8" y="3045.6" textLength="12.2" clip-path="url(#breeze-shell-line-124)">│</text><text class="breeze-shell-r1" x="1464" y="3045 [...]
-</text><text class="breeze-shell-r5" x="0" y="3070" textLength="12.2" clip-path="url(#breeze-shell-line-125)">│</text><text class="breeze-shell-r7" x="756.4" y="3070" textLength="683.2" clip-path="url(#breeze-shell-line-125)">(TEXT)                                           &# [...]
-</text><text class="breeze-shell-r5" x="0" y="3094.4" textLength="12.2" clip-path="url(#breeze-shell-line-126)">│</text><text class="breeze-shell-r4" x="24.4" y="3094.4" textLength="341.6" clip-path="url(#breeze-shell-line-126)">--providers-skip-constraints</text><text class="breeze-shell-r1" x="756.4" y="3094.4" textLength="597.8" clip-path="url(#breeze-shell-line-126)">Do not use constraints when installing providers.</text><text class="breeze-shell-r5" x= [...]
-</text><text class="breeze-shell-r5" x="0" y="3118.8" textLength="12.2" clip-path="url(#breeze-shell-line-127)">│</text><text class="breeze-shell-r4" x="24.4" y="3118.8" textLength="256.2" clip-path="url(#breeze-shell-line-127)">--use-airflow-version</text><text class="breeze-shell-r1" x="756.4" y="3118.8" textLength="683.2" clip-path="url(#breeze-shell-line-127)">Use (reinstall at entry) Airflow version from PyPI. It  </text><text class= [...]
-</text><text class="breeze-shell-r5" x="0" y="3143.2" textLength="12.2" clip-path="url(#breeze-shell-line-128)">│</text><text class="breeze-shell-r1" x="756.4" y="3143.2" textLength="683.2" clip-path="url(#breeze-shell-line-128)">can also be version (to install from PyPI), `none`,     </text><text class="breeze-shell-r5" x="1451.8" y="3143.2" textLength="12.2" clip-path="url(#breeze-shell-line-128)">│</text><text class="bre [...]
-</text><text class="breeze-shell-r5" x="0" y="3167.6" textLength="12.2" clip-path="url(#breeze-shell-line-129)">│</text><text class="breeze-shell-r1" x="756.4" y="3167.6" textLength="683.2" clip-path="url(#breeze-shell-line-129)">`wheel`, or `sdist` to install from `dist` folder, or   </text><text class="breeze-shell-r5" x="1451.8" y="3167.6" textLength="12.2" clip-path="url(#breeze-shell-line-129)">│</text><text class="breeze-shell- [...]
-</text><text class="breeze-shell-r5" x="0" y="3192" textLength="12.2" clip-path="url(#breeze-shell-line-130)">│</text><text class="breeze-shell-r1" x="756.4" y="3192" textLength="683.2" clip-path="url(#breeze-shell-line-130)">VCS URL to install from                                 </text><text class="breez [...]
-</text><text class="breeze-shell-r5" x="0" y="3216.4" textLength="12.2" clip-path="url(#breeze-shell-line-131)">│</text><text class="breeze-shell-r1" x="756.4" y="3216.4" textLength="683.2" clip-path="url(#breeze-shell-line-131)">(https://pip.pypa.io/en/stable/topics/vcs-support/).    </text><text class="breeze-shell-r5" x="1451.8" y="3216.4" textLength="12.2" clip-path="url(#breeze-shell-line-131)">│</text><text class="breeze-shell-r1" x="1464" y="3216.4" textLength= [...]
-</text><text class="breeze-shell-r5" x="0" y="3240.8" textLength="12.2" clip-path="url(#breeze-shell-line-132)">│</text><text class="breeze-shell-r1" x="756.4" y="3240.8" textLength="97.6" clip-path="url(#breeze-shell-line-132)">Implies </text><text class="breeze-shell-r4" x="854" y="3240.8" textLength="183" clip-path="url(#breeze-shell-line-132)">--mount-sources</text><text class="breeze-shell-r1" x="1037" y="3240.8" textLength="402.6" clip-path="url(#breeze-shell-line-132)">  [...]
-</text><text class="breeze-shell-r5" x="0" y="3265.2" textLength="12.2" clip-path="url(#breeze-shell-line-133)">│</text><text class="breeze-shell-r7" x="756.4" y="3265.2" textLength="683.2" clip-path="url(#breeze-shell-line-133)">(none | wheel | sdist | <airflow_version>)              </text><text class="breeze-shell-r5" x="1451.8" y="3265.2" textLength="12.2" clip-path="url(#breeze- [...]
-</text><text class="breeze-shell-r5" x="0" y="3289.6" textLength="12.2" clip-path="url(#breeze-shell-line-134)">│</text><text class="breeze-shell-r4" x="24.4" y="3289.6" textLength="292.8" clip-path="url(#breeze-shell-line-134)">--use-packages-from-dist</text><text class="breeze-shell-r1" x="756.4" y="3289.6" textLength="341.6" clip-path="url(#breeze-shell-line-134)">Install all found packages (</text><text class="breeze-shell-r4" x="1098" y="3289.6" textLength="195.2 [...]
-</text><text class="breeze-shell-r5" x="0" y="3314" textLength="12.2" clip-path="url(#breeze-shell-line-135)">│</text><text class="breeze-shell-r1" x="756.4" y="3314" textLength="683.2" clip-path="url(#breeze-shell-line-135)">type) from 'dist' folder when entering breeze.          </text><text class="breeze-shell-r5" x="1451.8" y="3314" textLength="12.2" clip-path="url(#breeze-shell-line-135)">│</te [...]
-</text><text class="breeze-shell-r5" x="0" y="3338.4" textLength="12.2" clip-path="url(#breeze-shell-line-136)">│</text><text class="breeze-shell-r4" x="24.4" y="3338.4" textLength="378.2" clip-path="url(#breeze-shell-line-136)">--install-airflow-python-client</text><text class="breeze-shell-r1" x="756.4" y="3338.4" textLength="488" clip-path="url(#breeze-shell-line-136)">Install airflow python client packages (</text><text class="breeze-shell-r4" x="1244.4" y="3 [...]
-</text><text class="breeze-shell-r5" x="0" y="3362.8" textLength="12.2" clip-path="url(#breeze-shell-line-137)">│</text><text class="breeze-shell-r1" x="756.4" y="3362.8" textLength="683.2" clip-path="url(#breeze-shell-line-137)">determines type) from 'dist' folder when entering       </text><text class="breeze-shell-r5" x="1451.8" y="3362.8" textLength="12.2" clip-path="url(#breeze-shell-line-137)">│</text><text [...]
-</text><text class="breeze-shell-r5" x="0" y="3387.2" textLength="12.2" clip-path="url(#breeze-shell-line-138)">│</text><text class="breeze-shell-r1" x="756.4" y="3387.2" textLength="683.2" clip-path="url(#breeze-shell-line-138)">breeze.                                           [...]
-</text><text class="breeze-shell-r5" x="0" y="3411.6" textLength="1464" clip-path="url(#breeze-shell-line-139)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-shell-r1" x="1464" y="3411.6" textLength="12.2" clip-path="url(#breeze-shell-line-139)">
-</text><text class="breeze-shell-r5" x="0" y="3436" textLength="24.4" clip-path="url(#breeze-shell-line-140)">╭─</text><text class="breeze-shell-r5" x="24.4" y="3436" textLength="610" clip-path="url(#breeze-shell-line-140)"> Upgrading/downgrading/removing selected packages </text><text class="breeze-shell-r5" x="634.4" y="3436" textLength="805.2" clip-path="url(#breeze-shell-line-140)">──────────────────────────────────────────────────────────────────</text><text clas [...]
-</text><text class="breeze-shell-r5" x="0" y="3460.4" textLength="12.2" clip-path="url(#breeze-shell-line-141)">│</text><text class="breeze-shell-r4" x="24.4" y="3460.4" textLength="170.8" clip-path="url(#breeze-shell-line-141)">--upgrade-boto</text><text class="breeze-shell-r1" x="341.6" y="3460.4" textLength="866.2" clip-path="url(#breeze-shell-line-141)">Remove aiobotocore and upgrade botocore and boto to the latest version.</text><tex [...]
-</text><text class="breeze-shell-r5" x="0" y="3484.8" textLength="12.2" clip-path="url(#breeze-shell-line-142)">│</text><text class="breeze-shell-r4" x="24.4" y="3484.8" textLength="268.4" clip-path="url(#breeze-shell-line-142)">--downgrade-sqlalchemy</text><text class="breeze-shell-r1" x="341.6" y="3484.8" textLength="610" clip-path="url(#breeze-shell-line-142)">Downgrade SQLAlchemy to minimum supported version.</text><text class="breeze-shell-r5" x="1451.8" y=" [...]
-</text><text class="breeze-shell-r5" x="0" y="3509.2" textLength="12.2" clip-path="url(#breeze-shell-line-143)">│</text><text class="breeze-shell-r4" x="24.4" y="3509.2" textLength="244" clip-path="url(#breeze-shell-line-143)">--downgrade-pendulum</text><text class="breeze-shell-r1" x="341.6" y="3509.2" textLength="585.6" clip-path="url(#breeze-shell-line-143)">Downgrade Pendulum to minimum supported version.</text><text class="breeze-shell-r5" x="1451.8" y="3509 [...]
-</text><text class="breeze-shell-r5" x="0" y="3533.6" textLength="1464" clip-path="url(#breeze-shell-line-144)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-shell-r1" x="1464" y="3533.6" textLength="12.2" clip-path="url(#breeze-shell-line-144)">
-</text><text class="breeze-shell-r5" x="0" y="3558" textLength="24.4" clip-path="url(#breeze-shell-line-145)">╭─</text><text class="breeze-shell-r5" x="24.4" y="3558" textLength="183" clip-path="url(#breeze-shell-line-145)"> DB test flags </text><text class="breeze-shell-r5" x="207.4" y="3558" textLength="1232.2" clip-path="url(#breeze-shell-line-145)">─────────────────────────────────────────────────────────────────────────────────────────────────────</text><text cla [...]
-</text><text class="breeze-shell-r5" x="0" y="3582.4" textLength="12.2" clip-path="url(#breeze-shell-line-146)">│</text><text class="breeze-shell-r4" x="24.4" y="3582.4" textLength="231.8" clip-path="url(#breeze-shell-line-146)">--run-db-tests-only</text><text class="breeze-shell-r1" x="305" y="3582.4" textLength="475.8" clip-path="url(#breeze-shell-line-146)">Only runs tests that require a database</text><text class="breeze-shell-r5" x="1451.8" y="3582.4" t [...]
-</text><text class="breeze-shell-r5" x="0" y="3606.8" textLength="12.2" clip-path="url(#breeze-shell-line-147)">│</text><text class="breeze-shell-r4" x="24.4" y="3606.8" textLength="183" clip-path="url(#breeze-shell-line-147)">--skip-db-tests</text><text class="breeze-shell-r1" x="305" y="3606.8" textLength="414.8" clip-path="url(#breeze-shell-line-147)">Skip tests that require a database</text><text class="breeze-shell-r5" x="1451.8" y="3606.8" textLength="12.2" [...]
-</text><text class="breeze-shell-r5" x="0" y="3631.2" textLength="1464" clip-path="url(#breeze-shell-line-148)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-shell-r1" x="1464" y="3631.2" textLength="12.2" clip-path="url(#breeze-shell-line-148)">
-</text><text class="breeze-shell-r5" x="0" y="3655.6" textLength="24.4" clip-path="url(#breeze-shell-line-149)">╭─</text><text class="breeze-shell-r5" x="24.4" y="3655.6" textLength="183" clip-path="url(#breeze-shell-line-149)"> Other options </text><text class="breeze-shell-r5" x="207.4" y="3655.6" textLength="1232.2" clip-path="url(#breeze-shell-line-149)">─────────────────────────────────────────────────────────────────────────────────────────────────────</text><text cl [...]
-</text><text class="breeze-shell-r5" x="0" y="3680" textLength="12.2" clip-path="url(#breeze-shell-line-150)">│</text><text class="breeze-shell-r4" x="24.4" y="3680" textLength="256.2" clip-path="url(#breeze-shell-line-150)">--forward-credentials</text><text class="breeze-shell-r6" x="305" y="3680" textLength="24.4" clip-path="url(#breeze-shell-line-150)">-f</text><text class="breeze-shell-r1" x="353.8" y="3680" textLength="634.4" clip-path="url(#breeze-shell-line-150)">Forward loca [...]
-</text><text class="breeze-shell-r5" x="0" y="3704.4" textLength="12.2" clip-path="url(#breeze-shell-line-151)">│</text><text class="breeze-shell-r4" x="24.4" y="3704.4" textLength="122" clip-path="url(#breeze-shell-line-151)">--max-time</text><text class="breeze-shell-r1" x="353.8" y="3704.4" textLength="1049.2" clip-path="url(#breeze-shell-line-151)">Maximum time that the command should take - if it takes longer, the comm [...]
-</text><text class="breeze-shell-r5" x="0" y="3728.8" textLength="12.2" clip-path="url(#breeze-shell-line-152)">│</text><text class="breeze-shell-r7" x="353.8" y="3728.8" textLength="1049.2" clip-path="url(#breeze-shell-line-152)">(INTEGER RANGE)                                        & [...]
-</text><text class="breeze-shell-r5" x="0" y="3753.2" textLength="12.2" clip-path="url(#breeze-shell-line-153)">│</text><text class="breeze-shell-r4" x="24.4" y="3753.2" textLength="219.6" clip-path="url(#breeze-shell-line-153)">--verbose-commands</text><text class="breeze-shell-r1" x="353.8" y="3753.2" textLength="414.8" clip-path="url(#breeze-shell-line-153)">Show details of commands executed.</text><text class="breeze-shell-r5" x="1451.8" y="3753.2" textLength="12. [...]
-</text><text class="breeze-shell-r5" x="0" y="3777.6" textLength="12.2" clip-path="url(#breeze-shell-line-154)">│</text><text class="breeze-shell-r4" x="24.4" y="3777.6" textLength="244" clip-path="url(#breeze-shell-line-154)">--keep-env-variables</text><text class="breeze-shell-r1" x="353.8" y="3777.6" textLength="1000.4" clip-path="url(#breeze-shell-line-154)">Do not clear environment variables that might have side effect while run [...]
-</text><text class="breeze-shell-r5" x="0" y="3802" textLength="12.2" clip-path="url(#breeze-shell-line-155)">│</text><text class="breeze-shell-r4" x="24.4" y="3802" textLength="183" clip-path="url(#breeze-shell-line-155)">--no-db-cleanup</text><text class="breeze-shell-r1" x="353.8" y="3802" textLength="597.8" clip-path="url(#breeze-shell-line-155)">Do not clear the database before each test module</text><text class="breeze-shell-r5" x="1451.8" y= [...]
-</text><text class="breeze-shell-r5" x="0" y="3826.4" textLength="1464" clip-path="url(#breeze-shell-line-156)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-shell-r1" x="1464" y="3826.4" textLength="12.2" clip-path="url(#breeze-shell-line-156)">
-</text><text class="breeze-shell-r5" x="0" y="3850.8" textLength="24.4" clip-path="url(#breeze-shell-line-157)">╭─</text><text class="breeze-shell-r5" x="24.4" y="3850.8" textLength="195.2" clip-path="url(#breeze-shell-line-157)"> Common options </text><text class="breeze-shell-r5" x="219.6" y="3850.8" textLength="1220" clip-path="url(#breeze-shell-line-157)">────────────────────────────────────────────────────────────────────────────────────────────────────</text><text cl [...]
-</text><text class="breeze-shell-r5" x="0" y="3875.2" textLength="12.2" clip-path="url(#breeze-shell-line-158)">│</text><text class="breeze-shell-r4" x="24.4" y="3875.2" textLength="97.6" clip-path="url(#breeze-shell-line-158)">--answer</text><text class="breeze-shell-r6" x="158.6" y="3875.2" textLength="24.4" clip-path="url(#breeze-shell-line-158)">-a</text><text class="breeze-shell-r1" x="207.4" y="3875.2" textLength="317.2" clip-path="url(#breeze-shell-line-158)">Force answer [...]
-</text><text class="breeze-shell-r5" x="0" y="3899.6" textLength="12.2" clip-path="url(#breeze-shell-line-159)">│</text><text class="breeze-shell-r4" x="24.4" y="3899.6" textLength="109.8" clip-path="url(#breeze-shell-line-159)">--dry-run</text><text class="breeze-shell-r6" x="158.6" y="3899.6" textLength="24.4" clip-path="url(#breeze-shell-line-159)">-D</text><text class="breeze-shell-r1" x="207.4" y="3899.6" textLength="719.8" clip-path="url(#breeze-shell-line-159)">If dry-run [...]
-</text><text class="breeze-shell-r5" x="0" y="3924" textLength="12.2" clip-path="url(#breeze-shell-line-160)">│</text><text class="breeze-shell-r4" x="24.4" y="3924" textLength="109.8" clip-path="url(#breeze-shell-line-160)">--verbose</text><text class="breeze-shell-r6" x="158.6" y="3924" textLength="24.4" clip-path="url(#breeze-shell-line-160)">-v</text><text class="breeze-shell-r1" x="207.4" y="3924" textLength="585.6" clip-path="url(#breeze-shell-line-160)">Print verbose inf [...]
-</text><text class="breeze-shell-r5" x="0" y="3948.4" textLength="12.2" clip-path="url(#breeze-shell-line-161)">│</text><text class="breeze-shell-r4" x="24.4" y="3948.4" textLength="73.2" clip-path="url(#breeze-shell-line-161)">--help</text><text class="breeze-shell-r6" x="158.6" y="3948.4" textLength="24.4" clip-path="url(#breeze-shell-line-161)">-h</text><text class="breeze-shell-r1" x="207.4" y="3948.4" textLength="329.4" clip-path="url(#breeze-shell-line-161)">Show this mes [...]
-</text><text class="breeze-shell-r5" x="0" y="3972.8" textLength="1464" clip-path="url(#breeze-shell-line-162)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-shell-r1" x="1464" y="3972.8" textLength="12.2" clip-path="url(#breeze-shell-line-162)">
+</text><text class="breeze-shell-r5" x="0" y="2362.4" textLength="12.2" clip-path="url(#breeze-shell-line-96)">│</text><text class="breeze-shell-r4" x="24.4" y="2362.4" textLength="317.2" clip-path="url(#breeze-shell-line-96)">--airflow-skip-constraints</text><text class="breeze-shell-r1" x="756.4" y="2362.4" textLength="573.4" clip-path="url(#breeze-shell-line-96)">Do not use constraints when installing airflow.</text><text class="breeze-shell-r5" x="1451.8 [...]
+</text><text class="breeze-shell-r5" x="0" y="2386.8" textLength="12.2" clip-path="url(#breeze-shell-line-97)">│</text><text class="breeze-shell-r4" x="24.4" y="2386.8" textLength="341.6" clip-path="url(#breeze-shell-line-97)">--clean-airflow-installation</text><text class="breeze-shell-r1" x="756.4" y="2386.8" textLength="683.2" clip-path="url(#breeze-shell-line-97)">Clean the airflow installation before installing version</text><text class="breeze-shell-r5 [...]
+</text><text class="breeze-shell-r5" x="0" y="2411.2" textLength="12.2" clip-path="url(#breeze-shell-line-98)">│</text><text class="breeze-shell-r1" x="756.4" y="2411.2" textLength="158.6" clip-path="url(#breeze-shell-line-98)">specified by </text><text class="breeze-shell-r4" x="915" y="2411.2" textLength="256.2" clip-path="url(#breeze-shell-line-98)">--use-airflow-version</text><text class="breeze-shell-r1" x="1171.2" y="2411.2" textLength="268.4" clip-path="url(#breeze-shell [...]
+</text><text class="breeze-shell-r5" x="0" y="2435.6" textLength="12.2" clip-path="url(#breeze-shell-line-99)">│</text><text class="breeze-shell-r4" x="24.4" y="2435.6" textLength="244" clip-path="url(#breeze-shell-line-99)">--excluded-providers</text><text class="breeze-shell-r1" x="756.4" y="2435.6" textLength="683.2" clip-path="url(#breeze-shell-line-99)">JSON-string of dictionary containing excluded providers </text><text class="breeze-shell-r5" x="1451. [...]
+</text><text class="breeze-shell-r5" x="0" y="2460" textLength="12.2" clip-path="url(#breeze-shell-line-100)">│</text><text class="breeze-shell-r1" x="756.4" y="2460" textLength="683.2" clip-path="url(#breeze-shell-line-100)">per python version ({'3.12': ['provider']})             </text><text class="breeze-shell-r5" x="1451.8" y="2460" textLength="12.2" clip-path="url(#breeze-shell-l [...]
+</text><text class="breeze-shell-r5" x="0" y="2484.4" textLength="12.2" clip-path="url(#breeze-shell-line-101)">│</text><text class="breeze-shell-r7" x="756.4" y="2484.4" textLength="683.2" clip-path="url(#breeze-shell-line-101)">(TEXT)                                           [...]
+</text><text class="breeze-shell-r5" x="0" y="2508.8" textLength="12.2" clip-path="url(#breeze-shell-line-102)">│</text><text class="breeze-shell-r4" x="24.4" y="2508.8" textLength="329.4" clip-path="url(#breeze-shell-line-102)">--force-lowest-dependencies</text><text class="breeze-shell-r1" x="756.4" y="2508.8" textLength="683.2" clip-path="url(#breeze-shell-line-102)">Run tests for the lowest direct dependencies of Airflow </text><text class [...]
+</text><text class="breeze-shell-r5" x="0" y="2533.2" textLength="12.2" clip-path="url(#breeze-shell-line-103)">│</text><text class="breeze-shell-r1" x="756.4" y="2533.2" textLength="683.2" clip-path="url(#breeze-shell-line-103)">or selected provider if `Provider[PROVIDER_ID]` is used </text><text class="breeze-shell-r5" x="1451.8" y="2533.2" textLength="12.2" clip-path="url(#breeze-shell-line-103)">│</text><text class="breeze-shell-r1" x="1464" y="2533 [...]
+</text><text class="breeze-shell-r5" x="0" y="2557.6" textLength="12.2" clip-path="url(#breeze-shell-line-104)">│</text><text class="breeze-shell-r1" x="756.4" y="2557.6" textLength="683.2" clip-path="url(#breeze-shell-line-104)">as test type.                                         [...]
+</text><text class="breeze-shell-r5" x="0" y="2582" textLength="12.2" clip-path="url(#breeze-shell-line-105)">│</text><text class="breeze-shell-r4" x="24.4" y="2582" textLength="414.8" clip-path="url(#breeze-shell-line-105)">--install-airflow-with-constraints</text><text class="breeze-shell-r1" x="439.2" y="2582" textLength="12.2" clip-path="url(#breeze-shell-line-105)">/</text><text class="breeze-shell-r4" x="451.4" y="2582" textLength="256.2" clip-path="url(#breeze-shell-line-105)">--n [...]
+</text><text class="breeze-shell-r5" x="0" y="2606.4" textLength="12.2" clip-path="url(#breeze-shell-line-106)">│</text><text class="breeze-shell-r1" x="756.4" y="2606.4" textLength="683.2" clip-path="url(#breeze-shell-line-106)">determined from package or airflow version.             </text><text class="breeze-shell-r5" x="1451.8" y="2606.4" textLength="12.2" clip-path="url(#breeze-shell-line-106)" [...]
+</text><text class="breeze-shell-r5" x="0" y="2630.8" textLength="12.2" clip-path="url(#breeze-shell-line-107)">│</text><text class="breeze-shell-r5" x="756.4" y="2630.8" textLength="683.2" clip-path="url(#breeze-shell-line-107)">[default: install-airflow-with-constraints]             </text><text class="breeze-shell-r5" x="1451.8" y="2630.8" textLength="12.2" clip-path="url(#breeze-shell-line-107)">│</text><text class [...]
+</text><text class="breeze-shell-r5" x="0" y="2655.2" textLength="12.2" clip-path="url(#breeze-shell-line-108)">│</text><text class="breeze-shell-r4" x="24.4" y="2655.2" textLength="341.6" clip-path="url(#breeze-shell-line-108)">--install-selected-providers</text><text class="breeze-shell-r1" x="756.4" y="2655.2" textLength="683.2" clip-path="url(#breeze-shell-line-108)">Comma-separated list of providers selected to be       [...]
+</text><text class="breeze-shell-r5" x="0" y="2679.6" textLength="12.2" clip-path="url(#breeze-shell-line-109)">│</text><text class="breeze-shell-r1" x="756.4" y="2679.6" textLength="231.8" clip-path="url(#breeze-shell-line-109)">installed (implies </text><text class="breeze-shell-r4" x="988.2" y="2679.6" textLength="292.8" clip-path="url(#breeze-shell-line-109)">--use-packages-from-dist</text><text class="breeze-shell-r1" x="1281" y="2679.6" textLength="158.6" clip-path="url(# [...]
+</text><text class="breeze-shell-r5" x="0" y="2704" textLength="12.2" clip-path="url(#breeze-shell-line-110)">│</text><text class="breeze-shell-r7" x="756.4" y="2704" textLength="683.2" clip-path="url(#breeze-shell-line-110)">(TEXT)                                           &# [...]
+</text><text class="breeze-shell-r5" x="0" y="2728.4" textLength="12.2" clip-path="url(#breeze-shell-line-111)">│</text><text class="breeze-shell-r4" x="24.4" y="2728.4" textLength="195.2" clip-path="url(#breeze-shell-line-111)">--package-format</text><text class="breeze-shell-r1" x="756.4" y="2728.4" textLength="658.8" clip-path="url(#breeze-shell-line-111)">Format of packages that should be installed from dist.</text><text class="breeze-shell-r5" [...]
+</text><text class="breeze-shell-r5" x="0" y="2752.8" textLength="12.2" clip-path="url(#breeze-shell-line-112)">│</text><text class="breeze-shell-r7" x="756.4" y="2752.8" textLength="658.8" clip-path="url(#breeze-shell-line-112)">(wheel | sdist)                                       </t [...]
+</text><text class="breeze-shell-r5" x="0" y="2777.2" textLength="12.2" clip-path="url(#breeze-shell-line-113)">│</text><text class="breeze-shell-r5" x="756.4" y="2777.2" textLength="658.8" clip-path="url(#breeze-shell-line-113)">[default: wheel]                                      </text><text [...]
+</text><text class="breeze-shell-r5" x="0" y="2801.6" textLength="12.2" clip-path="url(#breeze-shell-line-114)">│</text><text class="breeze-shell-r4" x="24.4" y="2801.6" textLength="390.4" clip-path="url(#breeze-shell-line-114)">--providers-constraints-location</text><text class="breeze-shell-r1" x="756.4" y="2801.6" textLength="683.2" clip-path="url(#breeze-shell-line-114)">Location of providers constraints to use (remote URL or </text><text [...]
+</text><text class="breeze-shell-r5" x="0" y="2826" textLength="12.2" clip-path="url(#breeze-shell-line-115)">│</text><text class="breeze-shell-r1" x="756.4" y="2826" textLength="683.2" clip-path="url(#breeze-shell-line-115)">local context file).                                    </text><text class=" [...]
+</text><text class="breeze-shell-r5" x="0" y="2850.4" textLength="12.2" clip-path="url(#breeze-shell-line-116)">│</text><text class="breeze-shell-r7" x="756.4" y="2850.4" textLength="683.2" clip-path="url(#breeze-shell-line-116)">(TEXT)                                           [...]
+</text><text class="breeze-shell-r5" x="0" y="2874.8" textLength="12.2" clip-path="url(#breeze-shell-line-117)">│</text><text class="breeze-shell-r4" x="24.4" y="2874.8" textLength="341.6" clip-path="url(#breeze-shell-line-117)">--providers-constraints-mode</text><text class="breeze-shell-r1" x="756.4" y="2874.8" textLength="683.2" clip-path="url(#breeze-shell-line-117)">Mode of constraints for Providers for CI image building.</text><text class="br [...]
+</text><text class="breeze-shell-r5" x="0" y="2899.2" textLength="12.2" clip-path="url(#breeze-shell-line-118)">│</text><text class="breeze-shell-r7" x="756.4" y="2899.2" textLength="683.2" clip-path="url(#breeze-shell-line-118)">(constraints-source-providers | constraints |           </text><text class="breeze-shell-r5" x="1451.8" y="2899.2" textLength="12.2" clip-path="url(#breeze-shell-line-118)">│</text><text class [...]
+</text><text class="breeze-shell-r5" x="0" y="2923.6" textLength="12.2" clip-path="url(#breeze-shell-line-119)">│</text><text class="breeze-shell-r7" x="756.4" y="2923.6" textLength="683.2" clip-path="url(#breeze-shell-line-119)">constraints-no-providers)                               </text><text class="breeze-shell-r5" x="1451.8" y=" [...]
+</text><text class="breeze-shell-r5" x="0" y="2948" textLength="12.2" clip-path="url(#breeze-shell-line-120)">│</text><text class="breeze-shell-r5" x="756.4" y="2948" textLength="683.2" clip-path="url(#breeze-shell-line-120)">[default: constraints-source-providers]                 </text><text class="breeze-shell-r5" x="1451.8" y="2948" textLength="12.2" clip-path="url(#breeze-shell-line-120)">│</te [...]
+</text><text class="breeze-shell-r5" x="0" y="2972.4" textLength="12.2" clip-path="url(#breeze-shell-line-121)">│</text><text class="breeze-shell-r4" x="24.4" y="2972.4" textLength="402.6" clip-path="url(#breeze-shell-line-121)">--providers-constraints-reference</text><text class="breeze-shell-r1" x="756.4" y="2972.4" textLength="683.2" clip-path="url(#breeze-shell-line-121)">Constraint reference to use for providers installation  </text><text clas [...]
+</text><text class="breeze-shell-r5" x="0" y="2996.8" textLength="12.2" clip-path="url(#breeze-shell-line-122)">│</text><text class="breeze-shell-r1" x="756.4" y="2996.8" textLength="683.2" clip-path="url(#breeze-shell-line-122)">(used in calculated constraints URL). Can be 'default'  </text><text class="breeze-shell-r5" x="1451.8" y="2996.8" textLength="12.2" clip-path="url(#breeze-shell-line-122)">│</text><text class="breeze-shell- [...]
+</text><text class="breeze-shell-r5" x="0" y="3021.2" textLength="12.2" clip-path="url(#breeze-shell-line-123)">│</text><text class="breeze-shell-r1" x="756.4" y="3021.2" textLength="683.2" clip-path="url(#breeze-shell-line-123)">in which case the default constraints-reference is used.</text><text class="breeze-shell-r5" x="1451.8" y="3021.2" textLength="12.2" clip-path="url(#breeze-shell-line-123)">│</text><text class="breeze-shell-r1" x="1464" y="3021 [...]
+</text><text class="breeze-shell-r5" x="0" y="3045.6" textLength="12.2" clip-path="url(#breeze-shell-line-124)">│</text><text class="breeze-shell-r7" x="756.4" y="3045.6" textLength="683.2" clip-path="url(#breeze-shell-line-124)">(TEXT)                                           [...]
+</text><text class="breeze-shell-r5" x="0" y="3070" textLength="12.2" clip-path="url(#breeze-shell-line-125)">│</text><text class="breeze-shell-r4" x="24.4" y="3070" textLength="341.6" clip-path="url(#breeze-shell-line-125)">--providers-skip-constraints</text><text class="breeze-shell-r1" x="756.4" y="3070" textLength="597.8" clip-path="url(#breeze-shell-line-125)">Do not use constraints when installing providers.</text><text class="breeze-shell-r5" x="1451. [...]
+</text><text class="breeze-shell-r5" x="0" y="3094.4" textLength="12.2" clip-path="url(#breeze-shell-line-126)">│</text><text class="breeze-shell-r4" x="24.4" y="3094.4" textLength="256.2" clip-path="url(#breeze-shell-line-126)">--use-airflow-version</text><text class="breeze-shell-r1" x="756.4" y="3094.4" textLength="683.2" clip-path="url(#breeze-shell-line-126)">Use (reinstall at entry) Airflow version from PyPI. It  </text><text class= [...]
+</text><text class="breeze-shell-r5" x="0" y="3118.8" textLength="12.2" clip-path="url(#breeze-shell-line-127)">│</text><text class="breeze-shell-r1" x="756.4" y="3118.8" textLength="683.2" clip-path="url(#breeze-shell-line-127)">can also be version (to install from PyPI), `none`,     </text><text class="breeze-shell-r5" x="1451.8" y="3118.8" textLength="12.2" clip-path="url(#breeze-shell-line-127)">│</text><text class="bre [...]
+</text><text class="breeze-shell-r5" x="0" y="3143.2" textLength="12.2" clip-path="url(#breeze-shell-line-128)">│</text><text class="breeze-shell-r1" x="756.4" y="3143.2" textLength="683.2" clip-path="url(#breeze-shell-line-128)">`wheel`, or `sdist` to install from `dist` folder, or   </text><text class="breeze-shell-r5" x="1451.8" y="3143.2" textLength="12.2" clip-path="url(#breeze-shell-line-128)">│</text><text class="breeze-shell- [...]
+</text><text class="breeze-shell-r5" x="0" y="3167.6" textLength="12.2" clip-path="url(#breeze-shell-line-129)">│</text><text class="breeze-shell-r1" x="756.4" y="3167.6" textLength="683.2" clip-path="url(#breeze-shell-line-129)">VCS URL to install from                                 </text><text class="b [...]
+</text><text class="breeze-shell-r5" x="0" y="3192" textLength="12.2" clip-path="url(#breeze-shell-line-130)">│</text><text class="breeze-shell-r1" x="756.4" y="3192" textLength="683.2" clip-path="url(#breeze-shell-line-130)">(https://pip.pypa.io/en/stable/topics/vcs-support/).    </text><text class="breeze-shell-r5" x="1451.8" y="3192" textLength="12.2" clip-path="url(#breeze-shell-line-130)">│</text><text class="breeze-shell-r1" x="1464" y="3192" textLength="12.2" c [...]
+</text><text class="breeze-shell-r5" x="0" y="3216.4" textLength="12.2" clip-path="url(#breeze-shell-line-131)">│</text><text class="breeze-shell-r1" x="756.4" y="3216.4" textLength="97.6" clip-path="url(#breeze-shell-line-131)">Implies </text><text class="breeze-shell-r4" x="854" y="3216.4" textLength="183" clip-path="url(#breeze-shell-line-131)">--mount-sources</text><text class="breeze-shell-r1" x="1037" y="3216.4" textLength="402.6" clip-path="url(#breeze-shell-line-131)">  [...]
+</text><text class="breeze-shell-r5" x="0" y="3240.8" textLength="12.2" clip-path="url(#breeze-shell-line-132)">│</text><text class="breeze-shell-r7" x="756.4" y="3240.8" textLength="683.2" clip-path="url(#breeze-shell-line-132)">(none | wheel | sdist | <airflow_version>)              </text><text class="breeze-shell-r5" x="1451.8" y="3240.8" textLength="12.2" clip-path="url(#breeze- [...]
+</text><text class="breeze-shell-r5" x="0" y="3265.2" textLength="12.2" clip-path="url(#breeze-shell-line-133)">│</text><text class="breeze-shell-r4" x="24.4" y="3265.2" textLength="292.8" clip-path="url(#breeze-shell-line-133)">--use-packages-from-dist</text><text class="breeze-shell-r1" x="756.4" y="3265.2" textLength="341.6" clip-path="url(#breeze-shell-line-133)">Install all found packages (</text><text class="breeze-shell-r4" x="1098" y="3265.2" textLength="195.2 [...]
+</text><text class="breeze-shell-r5" x="0" y="3289.6" textLength="12.2" clip-path="url(#breeze-shell-line-134)">│</text><text class="breeze-shell-r1" x="756.4" y="3289.6" textLength="683.2" clip-path="url(#breeze-shell-line-134)">type) from 'dist' folder when entering breeze.          </text><text class="breeze-shell-r5" x="1451.8" y="3289.6" textLength="12.2" clip-path="url(#breeze-shell-line-134)" [...]
+</text><text class="breeze-shell-r5" x="0" y="3314" textLength="12.2" clip-path="url(#breeze-shell-line-135)">│</text><text class="breeze-shell-r4" x="24.4" y="3314" textLength="378.2" clip-path="url(#breeze-shell-line-135)">--install-airflow-python-client</text><text class="breeze-shell-r1" x="756.4" y="3314" textLength="488" clip-path="url(#breeze-shell-line-135)">Install airflow python client packages (</text><text class="breeze-shell-r4" x="1244.4" y="3314" t [...]
+</text><text class="breeze-shell-r5" x="0" y="3338.4" textLength="12.2" clip-path="url(#breeze-shell-line-136)">│</text><text class="breeze-shell-r1" x="756.4" y="3338.4" textLength="683.2" clip-path="url(#breeze-shell-line-136)">determines type) from 'dist' folder when entering       </text><text class="breeze-shell-r5" x="1451.8" y="3338.4" textLength="12.2" clip-path="url(#breeze-shell-line-136)">│</text><text [...]
+</text><text class="breeze-shell-r5" x="0" y="3362.8" textLength="12.2" clip-path="url(#breeze-shell-line-137)">│</text><text class="breeze-shell-r1" x="756.4" y="3362.8" textLength="683.2" clip-path="url(#breeze-shell-line-137)">breeze.                                           [...]
+</text><text class="breeze-shell-r5" x="0" y="3387.2" textLength="1464" clip-path="url(#breeze-shell-line-138)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-shell-r1" x="1464" y="3387.2" textLength="12.2" clip-path="url(#breeze-shell-line-138)">
+</text><text class="breeze-shell-r5" x="0" y="3411.6" textLength="24.4" clip-path="url(#breeze-shell-line-139)">╭─</text><text class="breeze-shell-r5" x="24.4" y="3411.6" textLength="610" clip-path="url(#breeze-shell-line-139)"> Upgrading/downgrading/removing selected packages </text><text class="breeze-shell-r5" x="634.4" y="3411.6" textLength="805.2" clip-path="url(#breeze-shell-line-139)">──────────────────────────────────────────────────────────────────</text><tex [...]
+</text><text class="breeze-shell-r5" x="0" y="3436" textLength="12.2" clip-path="url(#breeze-shell-line-140)">│</text><text class="breeze-shell-r4" x="24.4" y="3436" textLength="170.8" clip-path="url(#breeze-shell-line-140)">--upgrade-boto</text><text class="breeze-shell-r1" x="341.6" y="3436" textLength="866.2" clip-path="url(#breeze-shell-line-140)">Remove aiobotocore and upgrade botocore and boto to the latest version.</text><text clas [...]
+</text><text class="breeze-shell-r5" x="0" y="3460.4" textLength="12.2" clip-path="url(#breeze-shell-line-141)">│</text><text class="breeze-shell-r4" x="24.4" y="3460.4" textLength="268.4" clip-path="url(#breeze-shell-line-141)">--downgrade-sqlalchemy</text><text class="breeze-shell-r1" x="341.6" y="3460.4" textLength="610" clip-path="url(#breeze-shell-line-141)">Downgrade SQLAlchemy to minimum supported version.</text><text class="breeze-shell-r5" x="1451.8" y=" [...]
+</text><text class="breeze-shell-r5" x="0" y="3484.8" textLength="12.2" clip-path="url(#breeze-shell-line-142)">│</text><text class="breeze-shell-r4" x="24.4" y="3484.8" textLength="244" clip-path="url(#breeze-shell-line-142)">--downgrade-pendulum</text><text class="breeze-shell-r1" x="341.6" y="3484.8" textLength="585.6" clip-path="url(#breeze-shell-line-142)">Downgrade Pendulum to minimum supported version.</text><text class="breeze-shell-r5" x="1451.8" y="3484 [...]
+</text><text class="breeze-shell-r5" x="0" y="3509.2" textLength="1464" clip-path="url(#breeze-shell-line-143)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-shell-r1" x="1464" y="3509.2" textLength="12.2" clip-path="url(#breeze-shell-line-143)">
+</text><text class="breeze-shell-r5" x="0" y="3533.6" textLength="24.4" clip-path="url(#breeze-shell-line-144)">╭─</text><text class="breeze-shell-r5" x="24.4" y="3533.6" textLength="183" clip-path="url(#breeze-shell-line-144)"> DB test flags </text><text class="breeze-shell-r5" x="207.4" y="3533.6" textLength="1232.2" clip-path="url(#breeze-shell-line-144)">─────────────────────────────────────────────────────────────────────────────────────────────────────</text><te [...]
+</text><text class="breeze-shell-r5" x="0" y="3558" textLength="12.2" clip-path="url(#breeze-shell-line-145)">│</text><text class="breeze-shell-r4" x="24.4" y="3558" textLength="231.8" clip-path="url(#breeze-shell-line-145)">--run-db-tests-only</text><text class="breeze-shell-r1" x="305" y="3558" textLength="475.8" clip-path="url(#breeze-shell-line-145)">Only runs tests that require a database</text><text class="breeze-shell-r5" x="1451.8" y="3558" textLengt [...]
+</text><text class="breeze-shell-r5" x="0" y="3582.4" textLength="12.2" clip-path="url(#breeze-shell-line-146)">│</text><text class="breeze-shell-r4" x="24.4" y="3582.4" textLength="183" clip-path="url(#breeze-shell-line-146)">--skip-db-tests</text><text class="breeze-shell-r1" x="305" y="3582.4" textLength="414.8" clip-path="url(#breeze-shell-line-146)">Skip tests that require a database</text><text class="breeze-shell-r5" x="1451.8" y="3582.4" textLength="12.2" [...]
+</text><text class="breeze-shell-r5" x="0" y="3606.8" textLength="1464" clip-path="url(#breeze-shell-line-147)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-shell-r1" x="1464" y="3606.8" textLength="12.2" clip-path="url(#breeze-shell-line-147)">
+</text><text class="breeze-shell-r5" x="0" y="3631.2" textLength="24.4" clip-path="url(#breeze-shell-line-148)">╭─</text><text class="breeze-shell-r5" x="24.4" y="3631.2" textLength="183" clip-path="url(#breeze-shell-line-148)"> Other options </text><text class="breeze-shell-r5" x="207.4" y="3631.2" textLength="1232.2" clip-path="url(#breeze-shell-line-148)">─────────────────────────────────────────────────────────────────────────────────────────────────────</text><text cl [...]
+</text><text class="breeze-shell-r5" x="0" y="3655.6" textLength="12.2" clip-path="url(#breeze-shell-line-149)">│</text><text class="breeze-shell-r4" x="24.4" y="3655.6" textLength="256.2" clip-path="url(#breeze-shell-line-149)">--forward-credentials</text><text class="breeze-shell-r6" x="305" y="3655.6" textLength="24.4" clip-path="url(#breeze-shell-line-149)">-f</text><text class="breeze-shell-r1" x="353.8" y="3655.6" textLength="634.4" clip-path="url(#breeze-shell-line-149)">Forward&# [...]
+</text><text class="breeze-shell-r5" x="0" y="3680" textLength="12.2" clip-path="url(#breeze-shell-line-150)">│</text><text class="breeze-shell-r4" x="24.4" y="3680" textLength="122" clip-path="url(#breeze-shell-line-150)">--max-time</text><text class="breeze-shell-r1" x="353.8" y="3680" textLength="1049.2" clip-path="url(#breeze-shell-line-150)">Maximum time that the command should take - if it takes longer, the command [...]
+</text><text class="breeze-shell-r5" x="0" y="3704.4" textLength="12.2" clip-path="url(#breeze-shell-line-151)">│</text><text class="breeze-shell-r7" x="353.8" y="3704.4" textLength="1049.2" clip-path="url(#breeze-shell-line-151)">(INTEGER RANGE)                                        & [...]
+</text><text class="breeze-shell-r5" x="0" y="3728.8" textLength="12.2" clip-path="url(#breeze-shell-line-152)">│</text><text class="breeze-shell-r4" x="24.4" y="3728.8" textLength="219.6" clip-path="url(#breeze-shell-line-152)">--verbose-commands</text><text class="breeze-shell-r1" x="353.8" y="3728.8" textLength="414.8" clip-path="url(#breeze-shell-line-152)">Show details of commands executed.</text><text class="breeze-shell-r5" x="1451.8" y="3728.8" textLength="12. [...]
+</text><text class="breeze-shell-r5" x="0" y="3753.2" textLength="12.2" clip-path="url(#breeze-shell-line-153)">│</text><text class="breeze-shell-r4" x="24.4" y="3753.2" textLength="244" clip-path="url(#breeze-shell-line-153)">--keep-env-variables</text><text class="breeze-shell-r1" x="353.8" y="3753.2" textLength="1000.4" clip-path="url(#breeze-shell-line-153)">Do not clear environment variables that might have side effect while run [...]
+</text><text class="breeze-shell-r5" x="0" y="3777.6" textLength="12.2" clip-path="url(#breeze-shell-line-154)">│</text><text class="breeze-shell-r4" x="24.4" y="3777.6" textLength="183" clip-path="url(#breeze-shell-line-154)">--no-db-cleanup</text><text class="breeze-shell-r1" x="353.8" y="3777.6" textLength="597.8" clip-path="url(#breeze-shell-line-154)">Do not clear the database before each test module</text><text class="breeze-shell-r5" x="1451 [...]
+</text><text class="breeze-shell-r5" x="0" y="3802" textLength="1464" clip-path="url(#breeze-shell-line-155)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-shell-r1" x="1464" y="3802" textLength="12.2" clip-path="url(#breeze-shell-line-155)">
+</text><text class="breeze-shell-r5" x="0" y="3826.4" textLength="24.4" clip-path="url(#breeze-shell-line-156)">╭─</text><text class="breeze-shell-r5" x="24.4" y="3826.4" textLength="195.2" clip-path="url(#breeze-shell-line-156)"> Common options </text><text class="breeze-shell-r5" x="219.6" y="3826.4" textLength="1220" clip-path="url(#breeze-shell-line-156)">────────────────────────────────────────────────────────────────────────────────────────────────────</text><text cl [...]
+</text><text class="breeze-shell-r5" x="0" y="3850.8" textLength="12.2" clip-path="url(#breeze-shell-line-157)">│</text><text class="breeze-shell-r4" x="24.4" y="3850.8" textLength="97.6" clip-path="url(#breeze-shell-line-157)">--answer</text><text class="breeze-shell-r6" x="158.6" y="3850.8" textLength="24.4" clip-path="url(#breeze-shell-line-157)">-a</text><text class="breeze-shell-r1" x="207.4" y="3850.8" textLength="317.2" clip-path="url(#breeze-shell-line-157)">Force answer [...]
+</text><text class="breeze-shell-r5" x="0" y="3875.2" textLength="12.2" clip-path="url(#breeze-shell-line-158)">│</text><text class="breeze-shell-r4" x="24.4" y="3875.2" textLength="109.8" clip-path="url(#breeze-shell-line-158)">--dry-run</text><text class="breeze-shell-r6" x="158.6" y="3875.2" textLength="24.4" clip-path="url(#breeze-shell-line-158)">-D</text><text class="breeze-shell-r1" x="207.4" y="3875.2" textLength="719.8" clip-path="url(#breeze-shell-line-158)">If dry-run [...]
+</text><text class="breeze-shell-r5" x="0" y="3899.6" textLength="12.2" clip-path="url(#breeze-shell-line-159)">│</text><text class="breeze-shell-r4" x="24.4" y="3899.6" textLength="109.8" clip-path="url(#breeze-shell-line-159)">--verbose</text><text class="breeze-shell-r6" x="158.6" y="3899.6" textLength="24.4" clip-path="url(#breeze-shell-line-159)">-v</text><text class="breeze-shell-r1" x="207.4" y="3899.6" textLength="585.6" clip-path="url(#breeze-shell-line-159)">Print verbose& [...]
+</text><text class="breeze-shell-r5" x="0" y="3924" textLength="12.2" clip-path="url(#breeze-shell-line-160)">│</text><text class="breeze-shell-r4" x="24.4" y="3924" textLength="73.2" clip-path="url(#breeze-shell-line-160)">--help</text><text class="breeze-shell-r6" x="158.6" y="3924" textLength="24.4" clip-path="url(#breeze-shell-line-160)">-h</text><text class="breeze-shell-r1" x="207.4" y="3924" textLength="329.4" clip-path="url(#breeze-shell-line-160)">Show this message [...]
+</text><text class="breeze-shell-r5" x="0" y="3948.4" textLength="1464" clip-path="url(#breeze-shell-line-161)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-shell-r1" x="1464" y="3948.4" textLength="12.2" clip-path="url(#breeze-shell-line-161)">
</text>
</g>
</g>
diff --git a/dev/breeze/doc/images/output_shell.txt b/dev/breeze/doc/images/output_shell.txt
index f29c9ba93db..c564bff7d8a 100644
--- a/dev/breeze/doc/images/output_shell.txt
+++ b/dev/breeze/doc/images/output_shell.txt
@@ -1 +1 @@
-d9370f833ddcc89db417a69b3de40a4b
+4a7184299c694d287d535a6fda22fe93
diff --git a/dev/breeze/doc/images/output_start-airflow.svg b/dev/breeze/doc/images/output_start-airflow.svg
index 5b4a19c6b1b..bd87336536d 100644
--- a/dev/breeze/doc/images/output_start-airflow.svg
+++ b/dev/breeze/doc/images/output_start-airflow.svg
@@ -1,4 +1,4 @@
-<svg class="rich-terminal" viewBox="0 0 1482 2978.0" xmlns="http://www.w3.org/2000/svg">
+<svg class="rich-terminal" viewBox="0 0 1482 2953.6" xmlns="http://www.w3.org/2000/svg">
<!-- Generated with Rich https://www.textualize.io -->
<style>
@@ -43,7 +43,7 @@
<defs>
<clipPath id="breeze-start-airflow-clip-terminal">
- <rect x="0" y="0" width="1463.0" height="2927.0" />
+ <rect x="0" y="0" width="1463.0" height="2902.6" />
</clipPath>
<clipPath id="breeze-start-airflow-line-0">
<rect x="0" y="1.5" width="1464" height="24.65"/>
@@ -399,12 +399,9 @@
<clipPath id="breeze-start-airflow-line-117">
<rect x="0" y="2856.3" width="1464" height="24.65"/>
</clipPath>
-<clipPath id="breeze-start-airflow-line-118">
- <rect x="0" y="2880.7" width="1464" height="24.65"/>
- </clipPath>
</defs>
- <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="2976" rx="8"/><text class="breeze-start-airflow-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">Command: start-airflow</text>
+ <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="2951.6" rx="8"/><text class="breeze-start-airflow-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">Command: start-airflow</text>
<g transform="translate(26,22)">
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
@@ -498,42 +495,41 @@
</text><text class="breeze-start-airflow-r5" x="0" y="1996.4" textLength="12.2" clip-path="url(#breeze-start-airflow-line-81)">│</text><text class="breeze-start-airflow-r1" x="475.8" y="1996.4" textLength="963.8" clip-path="url(#breeze-start-airflow-line-81)">constraints URL).                                    [...]
</text><text class="breeze-start-airflow-r5" x="0" y="2020.8" textLength="12.2" clip-path="url(#breeze-start-airflow-line-82)">│</text><text class="breeze-start-airflow-r7" x="475.8" y="2020.8" textLength="963.8" clip-path="url(#breeze-start-airflow-line-82)">(TEXT)                                      [...]
</text><text class="breeze-start-airflow-r5" x="0" y="2045.2" textLength="12.2" clip-path="url(#breeze-start-airflow-line-83)">│</text><text class="breeze-start-airflow-r4" x="24.4" y="2045.2" textLength="195.2" clip-path="url(#breeze-start-airflow-line-83)">--airflow-extras</text><text class="breeze-start-airflow-r1" x="475.8" y="2045.2" textLength="378.2" clip-path="url(#breeze-start-airflow-line-83)">Airflow extras to install when </text><text class="breeze-st [...]
-</text><text class="breeze-start-airflow-r5" x="0" y="2069.6" textLength="12.2" clip-path="url(#breeze-start-airflow-line-84)">│</text><text class="breeze-start-airflow-r5" x="475.8" y="2069.6" textLength="732" clip-path="url(#breeze-start-airflow-line-84)">[default: ""]                                  &# [...]
-</text><text class="breeze-start-airflow-r5" x="0" y="2094" textLength="12.2" clip-path="url(#breeze-start-airflow-line-85)">│</text><text class="breeze-start-airflow-r4" x="24.4" y="2094" textLength="317.2" clip-path="url(#breeze-start-airflow-line-85)">--airflow-skip-constraints</text><text class="breeze-start-airflow-r1" x="475.8" y="2094" textLength="573.4" clip-path="url(#breeze-start-airflow-line-85)">Do not use constraints when installing airflow.</te [...]
-</text><text class="breeze-start-airflow-r5" x="0" y="2118.4" textLength="12.2" clip-path="url(#breeze-start-airflow-line-86)">│</text><text class="breeze-start-airflow-r4" x="24.4" y="2118.4" textLength="341.6" clip-path="url(#breeze-start-airflow-line-86)">--clean-airflow-installation</text><text class="breeze-start-airflow-r1" x="475.8" y="2118.4" textLength="963.8" clip-path="url(#breeze-start-airflow-line-86)">Clean the airflow installation before installing [...]
-</text><text class="breeze-start-airflow-r5" x="0" y="2142.8" textLength="12.2" clip-path="url(#breeze-start-airflow-line-87)">│</text><text class="breeze-start-airflow-r4" x="475.8" y="2142.8" textLength="256.2" clip-path="url(#breeze-start-airflow-line-87)">--use-airflow-version</text><text class="breeze-start-airflow-r1" x="732" y="2142.8" textLength="707.6" clip-path="url(#breeze-start-airflow-line-87)">.             &# [...]
-</text><text class="breeze-start-airflow-r5" x="0" y="2167.2" textLength="12.2" clip-path="url(#breeze-start-airflow-line-88)">│</text><text class="breeze-start-airflow-r4" x="24.4" y="2167.2" textLength="341.6" clip-path="url(#breeze-start-airflow-line-88)">--install-selected-providers</text><text class="breeze-start-airflow-r1" x="475.8" y="2167.2" textLength="963.8" clip-path="url(#breeze-start-airflow-line-88)">Comma-separated list of providers selected to [...]
-</text><text class="breeze-start-airflow-r5" x="0" y="2191.6" textLength="12.2" clip-path="url(#breeze-start-airflow-line-89)">│</text><text class="breeze-start-airflow-r4" x="475.8" y="2191.6" textLength="292.8" clip-path="url(#breeze-start-airflow-line-89)">--use-packages-from-dist</text><text class="breeze-start-airflow-r1" x="768.6" y="2191.6" textLength="671" clip-path="url(#breeze-start-airflow-line-89)">).             [...]
-</text><text class="breeze-start-airflow-r5" x="0" y="2216" textLength="12.2" clip-path="url(#breeze-start-airflow-line-90)">│</text><text class="breeze-start-airflow-r7" x="475.8" y="2216" textLength="963.8" clip-path="url(#breeze-start-airflow-line-90)">(TEXT)                                      &# [...]
-</text><text class="breeze-start-airflow-r5" x="0" y="2240.4" textLength="12.2" clip-path="url(#breeze-start-airflow-line-91)">│</text><text class="breeze-start-airflow-r4" x="24.4" y="2240.4" textLength="195.2" clip-path="url(#breeze-start-airflow-line-91)">--package-format</text><text class="breeze-start-airflow-r1" x="475.8" y="2240.4" textLength="658.8" clip-path="url(#breeze-start-airflow-line-91)">Format of packages that should be installed from&# [...]
-</text><text class="breeze-start-airflow-r5" x="0" y="2264.8" textLength="12.2" clip-path="url(#breeze-start-airflow-line-92)">│</text><text class="breeze-start-airflow-r5" x="475.8" y="2264.8" textLength="658.8" clip-path="url(#breeze-start-airflow-line-92)">[default: wheel]                                   & [...]
-</text><text class="breeze-start-airflow-r5" x="0" y="2289.2" textLength="12.2" clip-path="url(#breeze-start-airflow-line-93)">│</text><text class="breeze-start-airflow-r4" x="24.4" y="2289.2" textLength="390.4" clip-path="url(#breeze-start-airflow-line-93)">--providers-constraints-location</text><text class="breeze-start-airflow-r1" x="475.8" y="2289.2" textLength="927.2" clip-path="url(#breeze-start-airflow-line-93)">Location of providers constraints to use [...]
-</text><text class="breeze-start-airflow-r5" x="0" y="2313.6" textLength="12.2" clip-path="url(#breeze-start-airflow-line-94)">│</text><text class="breeze-start-airflow-r7" x="475.8" y="2313.6" textLength="927.2" clip-path="url(#breeze-start-airflow-line-94)">(TEXT)                                      [...]
-</text><text class="breeze-start-airflow-r5" x="0" y="2338" textLength="12.2" clip-path="url(#breeze-start-airflow-line-95)">│</text><text class="breeze-start-airflow-r4" x="24.4" y="2338" textLength="341.6" clip-path="url(#breeze-start-airflow-line-95)">--providers-constraints-mode</text><text class="breeze-start-airflow-r1" x="475.8" y="2338" textLength="866.2" clip-path="url(#breeze-start-airflow-line-95)">Mode of constraints for Providers for CI ima [...]
-</text><text class="breeze-start-airflow-r5" x="0" y="2362.4" textLength="12.2" clip-path="url(#breeze-start-airflow-line-96)">│</text><text class="breeze-start-airflow-r7" x="475.8" y="2362.4" textLength="866.2" clip-path="url(#breeze-start-airflow-line-96)">(constraints-source-providers | constraints | constraints-no-providers)</text><text class="breeze-start-airflow-r5" x="1451.8" y="2362.4" textLength="12.2" clip-path="url(#breeze-start-airflow-line-96)">│</text>< [...]
-</text><text class="breeze-start-airflow-r5" x="0" y="2386.8" textLength="12.2" clip-path="url(#breeze-start-airflow-line-97)">│</text><text class="breeze-start-airflow-r5" x="475.8" y="2386.8" textLength="866.2" clip-path="url(#breeze-start-airflow-line-97)">[default: constraints-source-providers]                               &# [...]
-</text><text class="breeze-start-airflow-r5" x="0" y="2411.2" textLength="12.2" clip-path="url(#breeze-start-airflow-line-98)">│</text><text class="breeze-start-airflow-r4" x="24.4" y="2411.2" textLength="402.6" clip-path="url(#breeze-start-airflow-line-98)">--providers-constraints-reference</text><text class="breeze-start-airflow-r1" x="475.8" y="2411.2" textLength="963.8" clip-path="url(#breeze-start-airflow-line-98)">Constraint reference to use for providers&# [...]
-</text><text class="breeze-start-airflow-r5" x="0" y="2435.6" textLength="12.2" clip-path="url(#breeze-start-airflow-line-99)">│</text><text class="breeze-start-airflow-r1" x="475.8" y="2435.6" textLength="963.8" clip-path="url(#breeze-start-airflow-line-99)">constraints URL). Can be 'default' in which case the default                   </t [...]
-</text><text class="breeze-start-airflow-r5" x="0" y="2460" textLength="12.2" clip-path="url(#breeze-start-airflow-line-100)">│</text><text class="breeze-start-airflow-r1" x="475.8" y="2460" textLength="963.8" clip-path="url(#breeze-start-airflow-line-100)">constraints-reference is used.                                &# [...]
-</text><text class="breeze-start-airflow-r5" x="0" y="2484.4" textLength="12.2" clip-path="url(#breeze-start-airflow-line-101)">│</text><text class="breeze-start-airflow-r7" x="475.8" y="2484.4" textLength="963.8" clip-path="url(#breeze-start-airflow-line-101)">(TEXT)                                     &# [...]
-</text><text class="breeze-start-airflow-r5" x="0" y="2508.8" textLength="12.2" clip-path="url(#breeze-start-airflow-line-102)">│</text><text class="breeze-start-airflow-r4" x="24.4" y="2508.8" textLength="341.6" clip-path="url(#breeze-start-airflow-line-102)">--providers-skip-constraints</text><text class="breeze-start-airflow-r1" x="475.8" y="2508.8" textLength="597.8" clip-path="url(#breeze-start-airflow-line-102)">Do not use constraints when installing p [...]
-</text><text class="breeze-start-airflow-r5" x="0" y="2533.2" textLength="12.2" clip-path="url(#breeze-start-airflow-line-103)">│</text><text class="breeze-start-airflow-r4" x="24.4" y="2533.2" textLength="256.2" clip-path="url(#breeze-start-airflow-line-103)">--use-airflow-version</text><text class="breeze-start-airflow-r1" x="475.8" y="2533.2" textLength="963.8" clip-path="url(#breeze-start-airflow-line-103)">Use (reinstall at entry) Airflow version from&# [...]
-</text><text class="breeze-start-airflow-r5" x="0" y="2557.6" textLength="12.2" clip-path="url(#breeze-start-airflow-line-104)">│</text><text class="breeze-start-airflow-r1" x="475.8" y="2557.6" textLength="963.8" clip-path="url(#breeze-start-airflow-line-104)">install from PyPI), `none`, `wheel`, or `sdist` to install from `dist` folder, </text><text class="breeze-start-airflow-r5" x="1451.8" y="2557.6" textLength="12.2" clip-p [...]
-</text><text class="breeze-start-airflow-r5" x="0" y="2582" textLength="12.2" clip-path="url(#breeze-start-airflow-line-105)">│</text><text class="breeze-start-airflow-r1" x="475.8" y="2582" textLength="963.8" clip-path="url(#breeze-start-airflow-line-105)">or VCS URL to install from (https://pip.pypa.io/en/stable/topics/vcs-support/).</text><text class="breeze-start-airflow-r5" x="1451.8" y="2582" textLength="12.2" clip-path="url(#breeze-start-airflow-line- [...]
-</text><text class="breeze-start-airflow-r5" x="0" y="2606.4" textLength="12.2" clip-path="url(#breeze-start-airflow-line-106)">│</text><text class="breeze-start-airflow-r1" x="475.8" y="2606.4" textLength="97.6" clip-path="url(#breeze-start-airflow-line-106)">Implies </text><text class="breeze-start-airflow-r4" x="573.4" y="2606.4" textLength="183" clip-path="url(#breeze-start-airflow-line-106)">--mount-sources</text><text class="breeze-start-airflow-r1" x="756.4" y="2606.4" textLe [...]
-</text><text class="breeze-start-airflow-r5" x="0" y="2630.8" textLength="12.2" clip-path="url(#breeze-start-airflow-line-107)">│</text><text class="breeze-start-airflow-r7" x="475.8" y="2630.8" textLength="963.8" clip-path="url(#breeze-start-airflow-line-107)">(none | wheel | sdist | <airflow_version>)                         &# [...]
-</text><text class="breeze-start-airflow-r5" x="0" y="2655.2" textLength="12.2" clip-path="url(#breeze-start-airflow-line-108)">│</text><text class="breeze-start-airflow-r4" x="24.4" y="2655.2" textLength="292.8" clip-path="url(#breeze-start-airflow-line-108)">--use-packages-from-dist</text><text class="breeze-start-airflow-r1" x="475.8" y="2655.2" textLength="341.6" clip-path="url(#breeze-start-airflow-line-108)">Install all found packages (</text><text class="breeze [...]
-</text><text class="breeze-start-airflow-r5" x="0" y="2679.6" textLength="12.2" clip-path="url(#breeze-start-airflow-line-109)">│</text><text class="breeze-start-airflow-r1" x="475.8" y="2679.6" textLength="963.8" clip-path="url(#breeze-start-airflow-line-109)">folder when entering breeze.                               & [...]
-</text><text class="breeze-start-airflow-r5" x="0" y="2704" textLength="1464" clip-path="url(#breeze-start-airflow-line-110)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-start-airflow-r1" x="1464" y="2704" textLength="12.2" clip-path="url(#breeze-start-airflow-line-110)">
-</text><text class="breeze-start-airflow-r5" x="0" y="2728.4" textLength="24.4" clip-path="url(#breeze-start-airflow-line-111)">╭─</text><text class="breeze-start-airflow-r5" x="24.4" y="2728.4" textLength="183" clip-path="url(#breeze-start-airflow-line-111)"> Other options </text><text class="breeze-start-airflow-r5" x="207.4" y="2728.4" textLength="1232.2" clip-path="url(#breeze-start-airflow-line-111)">──────────────────────────────────────────────────────────────────── [...]
-</text><text class="breeze-start-airflow-r5" x="0" y="2752.8" textLength="12.2" clip-path="url(#breeze-start-airflow-line-112)">│</text><text class="breeze-start-airflow-r4" x="24.4" y="2752.8" textLength="256.2" clip-path="url(#breeze-start-airflow-line-112)">--forward-credentials</text><text class="breeze-start-airflow-r6" x="305" y="2752.8" textLength="24.4" clip-path="url(#breeze-start-airflow-line-112)">-f</text><text class="breeze-start-airflow-r1" x="353.8" y="2752.8" textLength=" [...]
-</text><text class="breeze-start-airflow-r5" x="0" y="2777.2" textLength="1464" clip-path="url(#breeze-start-airflow-line-113)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-start-airflow-r1" x="1464" y="2777.2" textLength="12.2" clip-path="url(#breeze-start-airflow-line-113)">
-</text><text class="breeze-start-airflow-r5" x="0" y="2801.6" textLength="24.4" clip-path="url(#breeze-start-airflow-line-114)">╭─</text><text class="breeze-start-airflow-r5" x="24.4" y="2801.6" textLength="195.2" clip-path="url(#breeze-start-airflow-line-114)"> Common options </text><text class="breeze-start-airflow-r5" x="219.6" y="2801.6" textLength="1220" clip-path="url(#breeze-start-airflow-line-114)">─────────────────────────────────────────────────────────────────── [...]
-</text><text class="breeze-start-airflow-r5" x="0" y="2826" textLength="12.2" clip-path="url(#breeze-start-airflow-line-115)">│</text><text class="breeze-start-airflow-r4" x="24.4" y="2826" textLength="97.6" clip-path="url(#breeze-start-airflow-line-115)">--answer</text><text class="breeze-start-airflow-r6" x="158.6" y="2826" textLength="24.4" clip-path="url(#breeze-start-airflow-line-115)">-a</text><text class="breeze-start-airflow-r1" x="207.4" y="2826" textLength="317.2" clip-path="ur [...]
-</text><text class="breeze-start-airflow-r5" x="0" y="2850.4" textLength="12.2" clip-path="url(#breeze-start-airflow-line-116)">│</text><text class="breeze-start-airflow-r4" x="24.4" y="2850.4" textLength="109.8" clip-path="url(#breeze-start-airflow-line-116)">--dry-run</text><text class="breeze-start-airflow-r6" x="158.6" y="2850.4" textLength="24.4" clip-path="url(#breeze-start-airflow-line-116)">-D</text><text class="breeze-start-airflow-r1" x="207.4" y="2850.4" textLength="719.8" cli [...]
-</text><text class="breeze-start-airflow-r5" x="0" y="2874.8" textLength="12.2" clip-path="url(#breeze-start-airflow-line-117)">│</text><text class="breeze-start-airflow-r4" x="24.4" y="2874.8" textLength="109.8" clip-path="url(#breeze-start-airflow-line-117)">--verbose</text><text class="breeze-start-airflow-r6" x="158.6" y="2874.8" textLength="24.4" clip-path="url(#breeze-start-airflow-line-117)">-v</text><text class="breeze-start-airflow-r1" x="207.4" y="2874.8" textLength="585.6" cli [...]
-</text><text class="breeze-start-airflow-r5" x="0" y="2899.2" textLength="12.2" clip-path="url(#breeze-start-airflow-line-118)">│</text><text class="breeze-start-airflow-r4" x="24.4" y="2899.2" textLength="73.2" clip-path="url(#breeze-start-airflow-line-118)">--help</text><text class="breeze-start-airflow-r6" x="158.6" y="2899.2" textLength="24.4" clip-path="url(#breeze-start-airflow-line-118)">-h</text><text class="breeze-start-airflow-r1" x="207.4" y="2899.2" textLength="329.4" clip-pa [...]
-</text><text class="breeze-start-airflow-r5" x="0" y="2923.6" textLength="1464" clip-path="url(#breeze-start-airflow-line-119)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-start-airflow-r1" x="1464" y="2923.6" textLength="12.2" clip-path="url(#breeze-start-airflow-line-119)">
+</text><text class="breeze-start-airflow-r5" x="0" y="2069.6" textLength="12.2" clip-path="url(#breeze-start-airflow-line-84)">│</text><text class="breeze-start-airflow-r4" x="24.4" y="2069.6" textLength="317.2" clip-path="url(#breeze-start-airflow-line-84)">--airflow-skip-constraints</text><text class="breeze-start-airflow-r1" x="475.8" y="2069.6" textLength="573.4" clip-path="url(#breeze-start-airflow-line-84)">Do not use constraints when installing airflo [...]
+</text><text class="breeze-start-airflow-r5" x="0" y="2094" textLength="12.2" clip-path="url(#breeze-start-airflow-line-85)">│</text><text class="breeze-start-airflow-r4" x="24.4" y="2094" textLength="341.6" clip-path="url(#breeze-start-airflow-line-85)">--clean-airflow-installation</text><text class="breeze-start-airflow-r1" x="475.8" y="2094" textLength="963.8" clip-path="url(#breeze-start-airflow-line-85)">Clean the airflow installation before installing  [...]
+</text><text class="breeze-start-airflow-r5" x="0" y="2118.4" textLength="12.2" clip-path="url(#breeze-start-airflow-line-86)">│</text><text class="breeze-start-airflow-r4" x="475.8" y="2118.4" textLength="256.2" clip-path="url(#breeze-start-airflow-line-86)">--use-airflow-version</text><text class="breeze-start-airflow-r1" x="732" y="2118.4" textLength="707.6" clip-path="url(#breeze-start-airflow-line-86)">.             &# [...]
+</text><text class="breeze-start-airflow-r5" x="0" y="2142.8" textLength="12.2" clip-path="url(#breeze-start-airflow-line-87)">│</text><text class="breeze-start-airflow-r4" x="24.4" y="2142.8" textLength="341.6" clip-path="url(#breeze-start-airflow-line-87)">--install-selected-providers</text><text class="breeze-start-airflow-r1" x="475.8" y="2142.8" textLength="963.8" clip-path="url(#breeze-start-airflow-line-87)">Comma-separated list of providers selected to [...]
+</text><text class="breeze-start-airflow-r5" x="0" y="2167.2" textLength="12.2" clip-path="url(#breeze-start-airflow-line-88)">│</text><text class="breeze-start-airflow-r4" x="475.8" y="2167.2" textLength="292.8" clip-path="url(#breeze-start-airflow-line-88)">--use-packages-from-dist</text><text class="breeze-start-airflow-r1" x="768.6" y="2167.2" textLength="671" clip-path="url(#breeze-start-airflow-line-88)">).             [...]
+</text><text class="breeze-start-airflow-r5" x="0" y="2191.6" textLength="12.2" clip-path="url(#breeze-start-airflow-line-89)">│</text><text class="breeze-start-airflow-r7" x="475.8" y="2191.6" textLength="963.8" clip-path="url(#breeze-start-airflow-line-89)">(TEXT)                                      [...]
+</text><text class="breeze-start-airflow-r5" x="0" y="2216" textLength="12.2" clip-path="url(#breeze-start-airflow-line-90)">│</text><text class="breeze-start-airflow-r4" x="24.4" y="2216" textLength="195.2" clip-path="url(#breeze-start-airflow-line-90)">--package-format</text><text class="breeze-start-airflow-r1" x="475.8" y="2216" textLength="658.8" clip-path="url(#breeze-start-airflow-line-90)">Format of packages that should be installed from di [...]
+</text><text class="breeze-start-airflow-r5" x="0" y="2240.4" textLength="12.2" clip-path="url(#breeze-start-airflow-line-91)">│</text><text class="breeze-start-airflow-r5" x="475.8" y="2240.4" textLength="658.8" clip-path="url(#breeze-start-airflow-line-91)">[default: wheel]                                   & [...]
+</text><text class="breeze-start-airflow-r5" x="0" y="2264.8" textLength="12.2" clip-path="url(#breeze-start-airflow-line-92)">│</text><text class="breeze-start-airflow-r4" x="24.4" y="2264.8" textLength="390.4" clip-path="url(#breeze-start-airflow-line-92)">--providers-constraints-location</text><text class="breeze-start-airflow-r1" x="475.8" y="2264.8" textLength="927.2" clip-path="url(#breeze-start-airflow-line-92)">Location of providers constraints to use [...]
+</text><text class="breeze-start-airflow-r5" x="0" y="2289.2" textLength="12.2" clip-path="url(#breeze-start-airflow-line-93)">│</text><text class="breeze-start-airflow-r7" x="475.8" y="2289.2" textLength="927.2" clip-path="url(#breeze-start-airflow-line-93)">(TEXT)                                      [...]
+</text><text class="breeze-start-airflow-r5" x="0" y="2313.6" textLength="12.2" clip-path="url(#breeze-start-airflow-line-94)">│</text><text class="breeze-start-airflow-r4" x="24.4" y="2313.6" textLength="341.6" clip-path="url(#breeze-start-airflow-line-94)">--providers-constraints-mode</text><text class="breeze-start-airflow-r1" x="475.8" y="2313.6" textLength="866.2" clip-path="url(#breeze-start-airflow-line-94)">Mode of constraints for Providers for CI [...]
+</text><text class="breeze-start-airflow-r5" x="0" y="2338" textLength="12.2" clip-path="url(#breeze-start-airflow-line-95)">│</text><text class="breeze-start-airflow-r7" x="475.8" y="2338" textLength="866.2" clip-path="url(#breeze-start-airflow-line-95)">(constraints-source-providers | constraints | constraints-no-providers)</text><text class="breeze-start-airflow-r5" x="1451.8" y="2338" textLength="12.2" clip-path="url(#breeze-start-airflow-line-95)">│</text><text c [...]
+</text><text class="breeze-start-airflow-r5" x="0" y="2362.4" textLength="12.2" clip-path="url(#breeze-start-airflow-line-96)">│</text><text class="breeze-start-airflow-r5" x="475.8" y="2362.4" textLength="866.2" clip-path="url(#breeze-start-airflow-line-96)">[default: constraints-source-providers]                               &# [...]
+</text><text class="breeze-start-airflow-r5" x="0" y="2386.8" textLength="12.2" clip-path="url(#breeze-start-airflow-line-97)">│</text><text class="breeze-start-airflow-r4" x="24.4" y="2386.8" textLength="402.6" clip-path="url(#breeze-start-airflow-line-97)">--providers-constraints-reference</text><text class="breeze-start-airflow-r1" x="475.8" y="2386.8" textLength="963.8" clip-path="url(#breeze-start-airflow-line-97)">Constraint reference to use for providers&# [...]
+</text><text class="breeze-start-airflow-r5" x="0" y="2411.2" textLength="12.2" clip-path="url(#breeze-start-airflow-line-98)">│</text><text class="breeze-start-airflow-r1" x="475.8" y="2411.2" textLength="963.8" clip-path="url(#breeze-start-airflow-line-98)">constraints URL). Can be 'default' in which case the default                   </t [...]
+</text><text class="breeze-start-airflow-r5" x="0" y="2435.6" textLength="12.2" clip-path="url(#breeze-start-airflow-line-99)">│</text><text class="breeze-start-airflow-r1" x="475.8" y="2435.6" textLength="963.8" clip-path="url(#breeze-start-airflow-line-99)">constraints-reference is used.                                 [...]
+</text><text class="breeze-start-airflow-r5" x="0" y="2460" textLength="12.2" clip-path="url(#breeze-start-airflow-line-100)">│</text><text class="breeze-start-airflow-r7" x="475.8" y="2460" textLength="963.8" clip-path="url(#breeze-start-airflow-line-100)">(TEXT)                                       [...]
+</text><text class="breeze-start-airflow-r5" x="0" y="2484.4" textLength="12.2" clip-path="url(#breeze-start-airflow-line-101)">│</text><text class="breeze-start-airflow-r4" x="24.4" y="2484.4" textLength="341.6" clip-path="url(#breeze-start-airflow-line-101)">--providers-skip-constraints</text><text class="breeze-start-airflow-r1" x="475.8" y="2484.4" textLength="597.8" clip-path="url(#breeze-start-airflow-line-101)">Do not use constraints when installing p [...]
+</text><text class="breeze-start-airflow-r5" x="0" y="2508.8" textLength="12.2" clip-path="url(#breeze-start-airflow-line-102)">│</text><text class="breeze-start-airflow-r4" x="24.4" y="2508.8" textLength="256.2" clip-path="url(#breeze-start-airflow-line-102)">--use-airflow-version</text><text class="breeze-start-airflow-r1" x="475.8" y="2508.8" textLength="963.8" clip-path="url(#breeze-start-airflow-line-102)">Use (reinstall at entry) Airflow version from&# [...]
+</text><text class="breeze-start-airflow-r5" x="0" y="2533.2" textLength="12.2" clip-path="url(#breeze-start-airflow-line-103)">│</text><text class="breeze-start-airflow-r1" x="475.8" y="2533.2" textLength="963.8" clip-path="url(#breeze-start-airflow-line-103)">install from PyPI), `none`, `wheel`, or `sdist` to install from `dist` folder, </text><text class="breeze-start-airflow-r5" x="1451.8" y="2533.2" textLength="12.2" clip-p [...]
+</text><text class="breeze-start-airflow-r5" x="0" y="2557.6" textLength="12.2" clip-path="url(#breeze-start-airflow-line-104)">│</text><text class="breeze-start-airflow-r1" x="475.8" y="2557.6" textLength="963.8" clip-path="url(#breeze-start-airflow-line-104)">or VCS URL to install from (https://pip.pypa.io/en/stable/topics/vcs-support/).</text><text class="breeze-start-airflow-r5" x="1451.8" y="2557.6" textLength="12.2" clip-path="url(#breeze-start-airflow [...]
+</text><text class="breeze-start-airflow-r5" x="0" y="2582" textLength="12.2" clip-path="url(#breeze-start-airflow-line-105)">│</text><text class="breeze-start-airflow-r1" x="475.8" y="2582" textLength="97.6" clip-path="url(#breeze-start-airflow-line-105)">Implies </text><text class="breeze-start-airflow-r4" x="573.4" y="2582" textLength="183" clip-path="url(#breeze-start-airflow-line-105)">--mount-sources</text><text class="breeze-start-airflow-r1" x="756.4" y="2582" textLength="68 [...]
+</text><text class="breeze-start-airflow-r5" x="0" y="2606.4" textLength="12.2" clip-path="url(#breeze-start-airflow-line-106)">│</text><text class="breeze-start-airflow-r7" x="475.8" y="2606.4" textLength="963.8" clip-path="url(#breeze-start-airflow-line-106)">(none | wheel | sdist | <airflow_version>)                         &# [...]
+</text><text class="breeze-start-airflow-r5" x="0" y="2630.8" textLength="12.2" clip-path="url(#breeze-start-airflow-line-107)">│</text><text class="breeze-start-airflow-r4" x="24.4" y="2630.8" textLength="292.8" clip-path="url(#breeze-start-airflow-line-107)">--use-packages-from-dist</text><text class="breeze-start-airflow-r1" x="475.8" y="2630.8" textLength="341.6" clip-path="url(#breeze-start-airflow-line-107)">Install all found packages (</text><text class="breeze [...]
+</text><text class="breeze-start-airflow-r5" x="0" y="2655.2" textLength="12.2" clip-path="url(#breeze-start-airflow-line-108)">│</text><text class="breeze-start-airflow-r1" x="475.8" y="2655.2" textLength="963.8" clip-path="url(#breeze-start-airflow-line-108)">folder when entering breeze.                               & [...]
+</text><text class="breeze-start-airflow-r5" x="0" y="2679.6" textLength="1464" clip-path="url(#breeze-start-airflow-line-109)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-start-airflow-r1" x="1464" y="2679.6" textLength="12.2" clip-path="url(#breeze-start-airflow-line-109)">
+</text><text class="breeze-start-airflow-r5" x="0" y="2704" textLength="24.4" clip-path="url(#breeze-start-airflow-line-110)">╭─</text><text class="breeze-start-airflow-r5" x="24.4" y="2704" textLength="183" clip-path="url(#breeze-start-airflow-line-110)"> Other options </text><text class="breeze-start-airflow-r5" x="207.4" y="2704" textLength="1232.2" clip-path="url(#breeze-start-airflow-line-110)">────────────────────────────────────────────────────────────────────────── [...]
+</text><text class="breeze-start-airflow-r5" x="0" y="2728.4" textLength="12.2" clip-path="url(#breeze-start-airflow-line-111)">│</text><text class="breeze-start-airflow-r4" x="24.4" y="2728.4" textLength="256.2" clip-path="url(#breeze-start-airflow-line-111)">--forward-credentials</text><text class="breeze-start-airflow-r6" x="305" y="2728.4" textLength="24.4" clip-path="url(#breeze-start-airflow-line-111)">-f</text><text class="breeze-start-airflow-r1" x="353.8" y="2728.4" textLength=" [...]
+</text><text class="breeze-start-airflow-r5" x="0" y="2752.8" textLength="1464" clip-path="url(#breeze-start-airflow-line-112)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-start-airflow-r1" x="1464" y="2752.8" textLength="12.2" clip-path="url(#breeze-start-airflow-line-112)">
+</text><text class="breeze-start-airflow-r5" x="0" y="2777.2" textLength="24.4" clip-path="url(#breeze-start-airflow-line-113)">╭─</text><text class="breeze-start-airflow-r5" x="24.4" y="2777.2" textLength="195.2" clip-path="url(#breeze-start-airflow-line-113)"> Common options </text><text class="breeze-start-airflow-r5" x="219.6" y="2777.2" textLength="1220" clip-path="url(#breeze-start-airflow-line-113)">─────────────────────────────────────────────────────────────────── [...]
+</text><text class="breeze-start-airflow-r5" x="0" y="2801.6" textLength="12.2" clip-path="url(#breeze-start-airflow-line-114)">│</text><text class="breeze-start-airflow-r4" x="24.4" y="2801.6" textLength="97.6" clip-path="url(#breeze-start-airflow-line-114)">--answer</text><text class="breeze-start-airflow-r6" x="158.6" y="2801.6" textLength="24.4" clip-path="url(#breeze-start-airflow-line-114)">-a</text><text class="breeze-start-airflow-r1" x="207.4" y="2801.6" textLength="317.2" clip- [...]
+</text><text class="breeze-start-airflow-r5" x="0" y="2826" textLength="12.2" clip-path="url(#breeze-start-airflow-line-115)">│</text><text class="breeze-start-airflow-r4" x="24.4" y="2826" textLength="109.8" clip-path="url(#breeze-start-airflow-line-115)">--dry-run</text><text class="breeze-start-airflow-r6" x="158.6" y="2826" textLength="24.4" clip-path="url(#breeze-start-airflow-line-115)">-D</text><text class="breeze-start-airflow-r1" x="207.4" y="2826" textLength="719.8" clip-path=" [...]
+</text><text class="breeze-start-airflow-r5" x="0" y="2850.4" textLength="12.2" clip-path="url(#breeze-start-airflow-line-116)">│</text><text class="breeze-start-airflow-r4" x="24.4" y="2850.4" textLength="109.8" clip-path="url(#breeze-start-airflow-line-116)">--verbose</text><text class="breeze-start-airflow-r6" x="158.6" y="2850.4" textLength="24.4" clip-path="url(#breeze-start-airflow-line-116)">-v</text><text class="breeze-start-airflow-r1" x="207.4" y="2850.4" textLength="585.6" cli [...]
+</text><text class="breeze-start-airflow-r5" x="0" y="2874.8" textLength="12.2" clip-path="url(#breeze-start-airflow-line-117)">│</text><text class="breeze-start-airflow-r4" x="24.4" y="2874.8" textLength="73.2" clip-path="url(#breeze-start-airflow-line-117)">--help</text><text class="breeze-start-airflow-r6" x="158.6" y="2874.8" textLength="24.4" clip-path="url(#breeze-start-airflow-line-117)">-h</text><text class="breeze-start-airflow-r1" x="207.4" y="2874.8" textLength="329.4" clip-pa [...]
+</text><text class="breeze-start-airflow-r5" x="0" y="2899.2" textLength="1464" clip-path="url(#breeze-start-airflow-line-118)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-start-airflow-r1" x="1464" y="2899.2" textLength="12.2" clip-path="url(#breeze-start-airflow-line-118)">
</text>
</g>
</g>
diff --git a/dev/breeze/doc/images/output_start-airflow.txt b/dev/breeze/doc/images/output_start-airflow.txt
index 286be10c9e4..eadfaa07a5f 100644
--- a/dev/breeze/doc/images/output_start-airflow.txt
+++ b/dev/breeze/doc/images/output_start-airflow.txt
@@ -1 +1 @@
-a788bf6d34c4341a30287b60d134e43d
+37aa3e191ff32457455276bdc05752f3
diff --git a/dev/breeze/doc/images/output_testing_core-tests.svg b/dev/breeze/doc/images/output_testing_core-tests.svg
index 90a210455db..9dbaa5281f6 100644
--- a/dev/breeze/doc/images/output_testing_core-tests.svg
+++ b/dev/breeze/doc/images/output_testing_core-tests.svg
@@ -1,4 +1,4 @@
-<svg class="rich-terminal" viewBox="0 0 1482 2636.3999999999996" xmlns="http://www.w3.org/2000/svg">
+<svg class="rich-terminal" viewBox="0 0 1482 2612.0" xmlns="http://www.w3.org/2000/svg">
<!-- Generated with Rich https://www.textualize.io -->
<style>
@@ -43,7 +43,7 @@
<defs>
<clipPath id="breeze-testing-core-tests-clip-terminal">
- <rect x="0" y="0" width="1463.0" height="2585.3999999999996" />
+ <rect x="0" y="0" width="1463.0" height="2561.0" />
</clipPath>
<clipPath id="breeze-testing-core-tests-line-0">
<rect x="0" y="1.5" width="1464" height="24.65"/>
@@ -357,12 +357,9 @@
<clipPath id="breeze-testing-core-tests-line-103">
<rect x="0" y="2514.7" width="1464" height="24.65"/>
</clipPath>
-<clipPath id="breeze-testing-core-tests-line-104">
- <rect x="0" y="2539.1" width="1464" height="24.65"/>
- </clipPath>
</defs>
- <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="2634.4" rx="8"/><text class="breeze-testing-core-tests-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">Command: testing core-tests</text>
+ <rect fill="#292929" stroke="rgba(255,255,255,0.35)" stroke-width="1" x="1" y="1" width="1480" height="2610" rx="8"/><text class="breeze-testing-core-tests-title" fill="#c5c8c6" text-anchor="middle" x="740" y="27">Command: testing core-tests</text>
<g transform="translate(26,22)">
<circle cx="0" cy="0" r="7" fill="#ff5f57"/>
<circle cx="22" cy="0" r="7" fill="#febc2e"/>
@@ -388,96 +385,95 @@
</text><text class="breeze-testing-core-tests-r5" x="0" y="337.2" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-13)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="337.2" textLength="366" clip-path="url(#breeze-testing-core-tests-line-13)">--excluded-parallel-test-types</text><text class="breeze-testing-core-tests-r1" x="439.2" y="337.2" textLength="1000.4" clip-path="url(#breeze-testing-core-tests-line-13)">Space separated list of c [...]
</text><text class="breeze-testing-core-tests-r5" x="0" y="361.6" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-14)">│</text><text class="breeze-testing-core-tests-r1" x="439.2" y="361.6" textLength="1000.4" clip-path="url(#breeze-testing-core-tests-line-14)">runs.                                   [...]
</text><text class="breeze-testing-core-tests-r5" x="0" y="386" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-15)">│</text><text class="breeze-testing-core-tests-r6" x="439.2" y="386" textLength="1000.4" clip-path="url(#breeze-testing-core-tests-line-15)">(API | Always | CLI | Core | Operators | Other | Serialization | WWW)              [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="410.4" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-16)">│</text><text class="breeze-testing-core-tests-r5" x="439.2" y="410.4" textLength="1000.4" clip-path="url(#breeze-testing-core-tests-line-16)">[default: ""]                                [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="434.8" textLength="1464" clip-path="url(#breeze-testing-core-tests-line-17)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-core-tests-r1" x="1464" y="434.8" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-17)">
-</text><text class="breeze-testing-core-tests-r5" x="0" y="459.2" textLength="24.4" clip-path="url(#breeze-testing-core-tests-line-18)">╭─</text><text class="breeze-testing-core-tests-r5" x="24.4" y="459.2" textLength="170.8" clip-path="url(#breeze-testing-core-tests-line-18)"> Test options </text><text class="breeze-testing-core-tests-r5" x="195.2" y="459.2" textLength="1244.4" clip-path="url(#breeze-testing-core-tests-line-18)">─────────────────────────────────────────── [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="483.6" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-19)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="483.6" textLength="170.8" clip-path="url(#breeze-testing-core-tests-line-19)">--test-timeout</text><text class="breeze-testing-core-tests-r1" x="475.8" y="483.6" textLength="963.8" clip-path="url(#breeze-testing-core-tests-line-19)">Test timeout in seconds. Set the [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="508" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-20)">│</text><text class="breeze-testing-core-tests-r1" x="475.8" y="508" textLength="963.8" clip-path="url(#breeze-testing-core-tests-line-20)">to this value                                 [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="532.4" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-21)">│</text><text class="breeze-testing-core-tests-r6" x="475.8" y="532.4" textLength="963.8" clip-path="url(#breeze-testing-core-tests-line-21)">(INTEGER RANGE)                                &# [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="556.8" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-22)">│</text><text class="breeze-testing-core-tests-r5" x="475.8" y="556.8" textLength="963.8" clip-path="url(#breeze-testing-core-tests-line-22)">[default: 60; x>=0]                              &# [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="581.2" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-23)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="581.2" textLength="207.4" clip-path="url(#breeze-testing-core-tests-line-23)">--enable-coverage</text><text class="breeze-testing-core-tests-r1" x="475.8" y="581.2" textLength="732" clip-path="url(#breeze-testing-core-tests-line-23)">Enable coverage capturing for tests [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="605.6" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-24)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="605.6" textLength="170.8" clip-path="url(#breeze-testing-core-tests-line-24)">--collect-only</text><text class="breeze-testing-core-tests-r1" x="475.8" y="605.6" textLength="439.2" clip-path="url(#breeze-testing-core-tests-line-24)">Collect tests only, do not run  [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="630" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-25)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="630" textLength="122" clip-path="url(#breeze-testing-core-tests-line-25)">--db-reset</text><text class="breeze-testing-core-tests-r7" x="256.2" y="630" textLength="24.4" clip-path="url(#breeze-testing-core-tests-line-25)">-d</text><text class="breeze-testing-core-tests-r1" x="280.6" y="630" tex [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="654.4" textLength="1464" clip-path="url(#breeze-testing-core-tests-line-26)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-core-tests-r1" x="1464" y="654.4" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-26)">
-</text><text class="breeze-testing-core-tests-r5" x="0" y="678.8" textLength="24.4" clip-path="url(#breeze-testing-core-tests-line-27)">╭─</text><text class="breeze-testing-core-tests-r5" x="24.4" y="678.8" textLength="439.2" clip-path="url(#breeze-testing-core-tests-line-27)"> Selectively run DB or non-DB tests </text><text class="breeze-testing-core-tests-r5" x="463.6" y="678.8" textLength="976" clip-path="url(#breeze-testing-core-tests-line-27)">──── [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="703.2" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-28)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="703.2" textLength="231.8" clip-path="url(#breeze-testing-core-tests-line-28)">--run-db-tests-only</text><text class="breeze-testing-core-tests-r1" x="305" y="703.2" textLength="475.8" clip-path="url(#breeze-testing-core-tests-line-28)">Only runs tests that require a&# [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="727.6" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-29)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="727.6" textLength="183" clip-path="url(#breeze-testing-core-tests-line-29)">--skip-db-tests</text><text class="breeze-testing-core-tests-r1" x="305" y="727.6" textLength="414.8" clip-path="url(#breeze-testing-core-tests-line-29)">Skip tests that require a database</te [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="752" textLength="1464" clip-path="url(#breeze-testing-core-tests-line-30)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-core-tests-r1" x="1464" y="752" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-30)">
-</text><text class="breeze-testing-core-tests-r5" x="0" y="776.4" textLength="24.4" clip-path="url(#breeze-testing-core-tests-line-31)">╭─</text><text class="breeze-testing-core-tests-r5" x="24.4" y="776.4" textLength="219.6" clip-path="url(#breeze-testing-core-tests-line-31)"> Test environment </text><text class="breeze-testing-core-tests-r5" x="244" y="776.4" textLength="1195.6" clip-path="url(#breeze-testing-core-tests-line-31)">───────────────────────────────────────── [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="800.8" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-32)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="800.8" textLength="109.8" clip-path="url(#breeze-testing-core-tests-line-32)">--backend</text><text class="breeze-testing-core-tests-r7" x="561.2" y="800.8" textLength="24.4" clip-path="url(#breeze-testing-core-tests-line-32)">-b</text><text class="breeze-testing-core-tests-r1" x="610" y="800 [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="825.2" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-33)">│</text><text class="breeze-testing-core-tests-r1" x="610" y="825.2" textLength="829.6" clip-path="url(#breeze-testing-core-tests-line-33)">an invalid database configuration, meaning there will be no database</text><text class="breeze-testing-core-tests-r5" x="1451.8" y="825.2" textLength="12.2" clip-path="url [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="849.6" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-34)">│</text><text class="breeze-testing-core-tests-r1" x="610" y="849.6" textLength="829.6" clip-path="url(#breeze-testing-core-tests-line-34)">available, and any attempts to connect to the Airflow database will </text><text class="breeze-testing-core-tests-r5" x="1451.8" y="849.6" textLength="12.2" clip [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="874" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-35)">│</text><text class="breeze-testing-core-tests-r1" x="610" y="874" textLength="829.6" clip-path="url(#breeze-testing-core-tests-line-35)">fail.                                     [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="898.4" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-36)">│</text><text class="breeze-testing-core-tests-r6" x="610" y="898.4" textLength="829.6" clip-path="url(#breeze-testing-core-tests-line-36)">(>sqlite< | mysql | postgres | none)                         [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="922.8" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-37)">│</text><text class="breeze-testing-core-tests-r5" x="610" y="922.8" textLength="829.6" clip-path="url(#breeze-testing-core-tests-line-37)">[default: sqlite]                                &# [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="947.2" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-38)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="947.2" textLength="183" clip-path="url(#breeze-testing-core-tests-line-38)">--no-db-cleanup</text><text class="breeze-testing-core-tests-r1" x="610" y="947.2" textLength="597.8" clip-path="url(#breeze-testing-core-tests-line-38)">Do not clear the database before  [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="971.6" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-39)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="971.6" textLength="97.6" clip-path="url(#breeze-testing-core-tests-line-39)">--python</text><text class="breeze-testing-core-tests-r7" x="561.2" y="971.6" textLength="24.4" clip-path="url(#breeze-testing-core-tests-line-39)">-p</text><text class="breeze-testing-core-tests-r1" x="610" y="971.6 [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="996" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-40)">│</text><text class="breeze-testing-core-tests-r6" x="610" y="996" textLength="732" clip-path="url(#breeze-testing-core-tests-line-40)">(>3.9< | 3.10 | 3.11 | 3.12)                          &# [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="1020.4" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-41)">│</text><text class="breeze-testing-core-tests-r5" x="610" y="1020.4" textLength="732" clip-path="url(#breeze-testing-core-tests-line-41)">[default: 3.9]                                  [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="1044.8" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-42)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="1044.8" textLength="219.6" clip-path="url(#breeze-testing-core-tests-line-42)">--postgres-version</text><text class="breeze-testing-core-tests-r7" x="561.2" y="1044.8" textLength="24.4" clip-path="url(#breeze-testing-core-tests-line-42)">-P</text><text class="breeze-testing-core-tests-r1" x= [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="1069.2" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-43)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="1069.2" textLength="183" clip-path="url(#breeze-testing-core-tests-line-43)">--mysql-version</text><text class="breeze-testing-core-tests-r7" x="561.2" y="1069.2" textLength="24.4" clip-path="url(#breeze-testing-core-tests-line-43)">-M</text><text class="breeze-testing-core-tests-r1" x="610" [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="1093.6" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-44)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="1093.6" textLength="256.2" clip-path="url(#breeze-testing-core-tests-line-44)">--forward-credentials</text><text class="breeze-testing-core-tests-r7" x="561.2" y="1093.6" textLength="24.4" clip-path="url(#breeze-testing-core-tests-line-44)">-f</text><text class="breeze-testing-core-tests-r1" [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="1118" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-45)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="1118" textLength="231.8" clip-path="url(#breeze-testing-core-tests-line-45)">--force-sa-warnings</text><text class="breeze-testing-core-tests-r1" x="256.2" y="1118" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-45)">/</text><text class="breeze-testing-core-tests-r4" x="268.4 [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="1142.4" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-46)">│</text><text class="breeze-testing-core-tests-r5" x="610" y="1142.4" textLength="768.6" clip-path="url(#breeze-testing-core-tests-line-46)">[default: force-sa-warnings]                              & [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="1166.8" textLength="1464" clip-path="url(#breeze-testing-core-tests-line-47)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-core-tests-r1" x="1464" y="1166.8" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-47)">
-</text><text class="breeze-testing-core-tests-r5" x="0" y="1191.2" textLength="24.4" clip-path="url(#breeze-testing-core-tests-line-48)">╭─</text><text class="breeze-testing-core-tests-r5" x="24.4" y="1191.2" textLength="439.2" clip-path="url(#breeze-testing-core-tests-line-48)"> Options for parallel test commands </text><text class="breeze-testing-core-tests-r5" x="463.6" y="1191.2" textLength="976" clip-path="url(#breeze-testing-core-tests-line-48)">────── [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="1215.6" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-49)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="1215.6" textLength="207.4" clip-path="url(#breeze-testing-core-tests-line-49)">--run-in-parallel</text><text class="breeze-testing-core-tests-r1" x="378.2" y="1215.6" textLength="854" clip-path="url(#breeze-testing-core-tests-line-49)">Run the operation in parallel o [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="1240" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-50)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="1240" textLength="134.2" clip-path="url(#breeze-testing-core-tests-line-50)">--use-xdist</text><text class="breeze-testing-core-tests-r1" x="378.2" y="1240" textLength="329.4" clip-path="url(#breeze-testing-core-tests-line-50)">Use xdist plugin for pytest</text><text class= [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="1264.4" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-51)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="1264.4" textLength="158.6" clip-path="url(#breeze-testing-core-tests-line-51)">--parallelism</text><text class="breeze-testing-core-tests-r1" x="378.2" y="1264.4" textLength="915" clip-path="url(#breeze-testing-core-tests-line-51)">Maximum number of processes to use& [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="1288.8" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-52)">│</text><text class="breeze-testing-core-tests-r6" x="378.2" y="1288.8" textLength="915" clip-path="url(#breeze-testing-core-tests-line-52)">(INTEGER RANGE)                                &# [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="1313.2" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-53)">│</text><text class="breeze-testing-core-tests-r5" x="378.2" y="1313.2" textLength="915" clip-path="url(#breeze-testing-core-tests-line-53)">[default: 4; 1<=x<=8]                              [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="1337.6" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-54)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="1337.6" textLength="170.8" clip-path="url(#breeze-testing-core-tests-line-54)">--skip-cleanup</text><text class="breeze-testing-core-tests-r1" x="378.2" y="1337.6" textLength="732" clip-path="url(#breeze-testing-core-tests-line-54)">Skip cleanup of temporary files cr [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="1362" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-55)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="1362" textLength="207.4" clip-path="url(#breeze-testing-core-tests-line-55)">--debug-resources</text><text class="breeze-testing-core-tests-r1" x="378.2" y="1362" textLength="768.6" clip-path="url(#breeze-testing-core-tests-line-55)">Whether to show resource information [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="1386.4" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-56)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="1386.4" textLength="305" clip-path="url(#breeze-testing-core-tests-line-56)">--include-success-outputs</text><text class="breeze-testing-core-tests-r1" x="378.2" y="1386.4" textLength="927.2" clip-path="url(#breeze-testing-core-tests-line-56)">Whether to include outputs o [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="1410.8" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-57)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="1410.8" textLength="244" clip-path="url(#breeze-testing-core-tests-line-57)">--total-test-timeout</text><text class="breeze-testing-core-tests-r1" x="378.2" y="1410.8" textLength="1061.4" clip-path="url(#breeze-testing-core-tests-line-57)">Total test timeout in seconds.&# [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="1435.2" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-58)">│</text><text class="breeze-testing-core-tests-r1" x="378.2" y="1435.2" textLength="1061.4" clip-path="url(#breeze-testing-core-tests-line-58)">there is an underlying pytest command that hangs, the process will be stop with system </text><text class="breeze-testing-core-tests-r5" [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="1459.6" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-59)">│</text><text class="breeze-testing-core-tests-r1" x="378.2" y="1459.6" textLength="1061.4" clip-path="url(#breeze-testing-core-tests-line-59)">exit after that time. This should give a chance to upload logs as artifacts on CI.     </text><text class="bree [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="1484" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-60)">│</text><text class="breeze-testing-core-tests-r6" x="378.2" y="1484" textLength="1061.4" clip-path="url(#breeze-testing-core-tests-line-60)">(INTEGER)                                  &# [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="1508.4" textLength="1464" clip-path="url(#breeze-testing-core-tests-line-61)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-core-tests-r1" x="1464" y="1508.4" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-61)">
-</text><text class="breeze-testing-core-tests-r5" x="0" y="1532.8" textLength="24.4" clip-path="url(#breeze-testing-core-tests-line-62)">╭─</text><text class="breeze-testing-core-tests-r5" x="24.4" y="1532.8" textLength="610" clip-path="url(#breeze-testing-core-tests-line-62)"> Upgrading/downgrading/removing selected packages </text><text class="breeze-testing-core-tests-r5" x="634.4" y="1532.8" textLength="805.2" clip-path="url(#breeze-testing-core-tests-line-62)">── [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="1557.2" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-63)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="1557.2" textLength="170.8" clip-path="url(#breeze-testing-core-tests-line-63)">--upgrade-boto</text><text class="breeze-testing-core-tests-r1" x="341.6" y="1557.2" textLength="866.2" clip-path="url(#breeze-testing-core-tests-line-63)">Remove aiobotocore and upgrade botoco [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="1581.6" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-64)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="1581.6" textLength="268.4" clip-path="url(#breeze-testing-core-tests-line-64)">--downgrade-sqlalchemy</text><text class="breeze-testing-core-tests-r1" x="341.6" y="1581.6" textLength="610" clip-path="url(#breeze-testing-core-tests-line-64)">Downgrade SQLAlchemy to minimum  [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="1606" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-65)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="1606" textLength="244" clip-path="url(#breeze-testing-core-tests-line-65)">--downgrade-pendulum</text><text class="breeze-testing-core-tests-r1" x="341.6" y="1606" textLength="585.6" clip-path="url(#breeze-testing-core-tests-line-65)">Downgrade Pendulum to minimum supported [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="1630.4" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-66)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="1630.4" textLength="256.2" clip-path="url(#breeze-testing-core-tests-line-66)">--remove-arm-packages</text><text class="breeze-testing-core-tests-r1" x="341.6" y="1630.4" textLength="817.4" clip-path="url(#breeze-testing-core-tests-line-66)">Removes arm packages from the& [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="1654.8" textLength="1464" clip-path="url(#breeze-testing-core-tests-line-67)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-core-tests-r1" x="1464" y="1654.8" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-67)">
-</text><text class="breeze-testing-core-tests-r5" x="0" y="1679.2" textLength="24.4" clip-path="url(#breeze-testing-core-tests-line-68)">╭─</text><text class="breeze-testing-core-tests-r5" x="24.4" y="1679.2" textLength="402.6" clip-path="url(#breeze-testing-core-tests-line-68)"> Advanced flag for tests command </text><text class="breeze-testing-core-tests-r5" x="427" y="1679.2" textLength="1012.6" clip-path="url(#breeze-testing-core-tests-line-68)">──────── [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="1703.6" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-69)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="1703.6" textLength="231.8" clip-path="url(#breeze-testing-core-tests-line-69)">--github-repository</text><text class="breeze-testing-core-tests-r7" x="366" y="1703.6" textLength="24.4" clip-path="url(#breeze-testing-core-tests-line-69)">-g</text><text class="breeze-testing-core-tests-r1" x=" [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="1728" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-70)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="1728" textLength="183" clip-path="url(#breeze-testing-core-tests-line-70)">--mount-sources</text><text class="breeze-testing-core-tests-r1" x="414.8" y="1728" textLength="1024.8" clip-path="url(#breeze-testing-core-tests-line-70)">Choose scope of local sources that [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="1752.4" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-71)">│</text><text class="breeze-testing-core-tests-r1" x="414.8" y="1752.4" textLength="1024.8" clip-path="url(#breeze-testing-core-tests-line-71)">selected).                                  [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="1776.8" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-72)">│</text><text class="breeze-testing-core-tests-r6" x="414.8" y="1776.8" textLength="1024.8" clip-path="url(#breeze-testing-core-tests-line-72)">(selected | all | skip | remove | tests | providers-and-tests)                 [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="1801.2" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-73)">│</text><text class="breeze-testing-core-tests-r5" x="414.8" y="1801.2" textLength="1024.8" clip-path="url(#breeze-testing-core-tests-line-73)">[default: selected]                               & [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="1825.6" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-74)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="1825.6" textLength="317.2" clip-path="url(#breeze-testing-core-tests-line-74)">--skip-docker-compose-down</text><text class="breeze-testing-core-tests-r1" x="414.8" y="1825.6" textLength="549" clip-path="url(#breeze-testing-core-tests-line-74)">Skips running docker-compose dow [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="1850" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-75)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="1850" textLength="244" clip-path="url(#breeze-testing-core-tests-line-75)">--keep-env-variables</text><text class="breeze-testing-core-tests-r1" x="414.8" y="1850" textLength="1000.4" clip-path="url(#breeze-testing-core-tests-line-75)">Do not clear environment variables [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="1874.4" textLength="1464" clip-path="url(#breeze-testing-core-tests-line-76)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-core-tests-r1" x="1464" y="1874.4" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-76)">
-</text><text class="breeze-testing-core-tests-r5" x="0" y="1898.8" textLength="24.4" clip-path="url(#breeze-testing-core-tests-line-77)">╭─</text><text class="breeze-testing-core-tests-r5" x="24.4" y="1898.8" textLength="622.2" clip-path="url(#breeze-testing-core-tests-line-77)"> Advanced flag for installing airflow in container </text><text class="breeze-testing-core-tests-r5" x="646.6" y="1898.8" textLength="793" clip-path="url(#breeze-testing-co [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="1923.2" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-78)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="1923.2" textLength="378.2" clip-path="url(#breeze-testing-core-tests-line-78)">--airflow-constraints-reference</text><text class="breeze-testing-core-tests-r1" x="756.4" y="1923.2" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-78)">Constraint reference to u [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="1947.6" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-79)">│</text><text class="breeze-testing-core-tests-r1" x="756.4" y="1947.6" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-79)">(used in calculated constraints URL).                   </text><text class="breeze-testing-core-t [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="1972" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-80)">│</text><text class="breeze-testing-core-tests-r6" x="756.4" y="1972" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-80)">(TEXT)                                    [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="1996.4" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-81)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="1996.4" textLength="341.6" clip-path="url(#breeze-testing-core-tests-line-81)">--clean-airflow-installation</text><text class="breeze-testing-core-tests-r1" x="756.4" y="1996.4" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-81)">Clean the airflow installati [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="2020.8" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-82)">│</text><text class="breeze-testing-core-tests-r1" x="756.4" y="2020.8" textLength="158.6" clip-path="url(#breeze-testing-core-tests-line-82)">specified by </text><text class="breeze-testing-core-tests-r4" x="915" y="2020.8" textLength="256.2" clip-path="url(#breeze-testing-core-tests-line-82)">--use-airflow-version</text><text class="breeze-t [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="2045.2" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-83)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="2045.2" textLength="329.4" clip-path="url(#breeze-testing-core-tests-line-83)">--force-lowest-dependencies</text><text class="breeze-testing-core-tests-r1" x="756.4" y="2045.2" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-83)">Run tests for the lowest [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="2069.6" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-84)">│</text><text class="breeze-testing-core-tests-r1" x="756.4" y="2069.6" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-84)">or selected provider if `Provider[PROVIDER_ID]` is used </text><text class="breeze-testing-core-tests-r5" x="1451.8" y="2069.6" textLength="12.2" clip-path="url(#breeze-testing- [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="2094" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-85)">│</text><text class="breeze-testing-core-tests-r1" x="756.4" y="2094" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-85)">as test type.                                & [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="2118.4" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-86)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="2118.4" textLength="414.8" clip-path="url(#breeze-testing-core-tests-line-86)">--install-airflow-with-constraints</text><text class="breeze-testing-core-tests-r1" x="439.2" y="2118.4" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-86)">/</text><text class="breeze-testing-co [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="2142.8" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-87)">│</text><text class="breeze-testing-core-tests-r1" x="756.4" y="2142.8" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-87)">determined from package or airflow version.             </text><text class="breeze-testing-core-tests-r5" x="1451.8" y="21 [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="2167.2" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-88)">│</text><text class="breeze-testing-core-tests-r5" x="756.4" y="2167.2" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-88)">[default: no-install-airflow-with-constraints]          </text><text class="breeze-testing-core-tests-r5" x="1451.8" y="2167.2" textLength="12.2" clip-path=" [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="2191.6" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-89)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="2191.6" textLength="195.2" clip-path="url(#breeze-testing-core-tests-line-89)">--package-format</text><text class="breeze-testing-core-tests-r1" x="756.4" y="2191.6" textLength="231.8" clip-path="url(#breeze-testing-core-tests-line-89)">Format of packages.</text><text class="breeze [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="2216" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-90)">│</text><text class="breeze-testing-core-tests-r5" x="756.4" y="2216" textLength="231.8" clip-path="url(#breeze-testing-core-tests-line-90)">[default: wheel]   </text><text class="breeze-testing-core-tests-r5" x="1451.8" y="2216" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-90)">│</text><text class="breeze-testing-c [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="2240.4" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-91)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="2240.4" textLength="256.2" clip-path="url(#breeze-testing-core-tests-line-91)">--use-airflow-version</text><text class="breeze-testing-core-tests-r1" x="756.4" y="2240.4" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-91)">Use (reinstall at entry) Airfl [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="2264.8" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-92)">│</text><text class="breeze-testing-core-tests-r1" x="756.4" y="2264.8" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-92)">can also be version (to install from PyPI), `none`,     </text><text class="breeze-testing-core-tests-r5" x="1451.8" y="2264.8" textLength="12.2" c [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="2289.2" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-93)">│</text><text class="breeze-testing-core-tests-r1" x="756.4" y="2289.2" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-93)">`wheel`, or `sdist` to install from `dist` folder, or   </text><text class="breeze-testing-core-tests-r5" x="1451.8" y="2289.2" textLength="12.2" clip-path=" [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="2313.6" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-94)">│</text><text class="breeze-testing-core-tests-r1" x="756.4" y="2313.6" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-94)">VCS URL to install from                            & [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="2338" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-95)">│</text><text class="breeze-testing-core-tests-r1" x="756.4" y="2338" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-95)">(https://pip.pypa.io/en/stable/topics/vcs-support/).    </text><text class="breeze-testing-core-tests-r5" x="1451.8" y="2338" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-95)"> [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="2362.4" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-96)">│</text><text class="breeze-testing-core-tests-r1" x="756.4" y="2362.4" textLength="97.6" clip-path="url(#breeze-testing-core-tests-line-96)">Implies </text><text class="breeze-testing-core-tests-r4" x="854" y="2362.4" textLength="183" clip-path="url(#breeze-testing-core-tests-line-96)">--mount-sources</text><text class="breeze-testing-core-tests-r [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="2386.8" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-97)">│</text><text class="breeze-testing-core-tests-r6" x="756.4" y="2386.8" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-97)">(none | wheel | sdist | <airflow_version>)              </text><text class="breeze-testing-core-tests-r5" [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="2411.2" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-98)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="2411.2" textLength="292.8" clip-path="url(#breeze-testing-core-tests-line-98)">--use-packages-from-dist</text><text class="breeze-testing-core-tests-r1" x="756.4" y="2411.2" textLength="341.6" clip-path="url(#breeze-testing-core-tests-line-98)">Install all found packages  [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="2435.6" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-99)">│</text><text class="breeze-testing-core-tests-r1" x="756.4" y="2435.6" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-99)">type) from 'dist' folder when entering breeze.          </text><text class="breeze-testing-core-tests-r5" x="1451.8" y="24 [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="2460" textLength="1464" clip-path="url(#breeze-testing-core-tests-line-100)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-core-tests-r1" x="1464" y="2460" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-100)">
-</text><text class="breeze-testing-core-tests-r5" x="0" y="2484.4" textLength="24.4" clip-path="url(#breeze-testing-core-tests-line-101)">╭─</text><text class="breeze-testing-core-tests-r5" x="24.4" y="2484.4" textLength="195.2" clip-path="url(#breeze-testing-core-tests-line-101)"> Common options </text><text class="breeze-testing-core-tests-r5" x="219.6" y="2484.4" textLength="1220" clip-path="url(#breeze-testing-core-tests-line-101)">───────────────────────────────────── [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="2508.8" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-102)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="2508.8" textLength="109.8" clip-path="url(#breeze-testing-core-tests-line-102)">--dry-run</text><text class="breeze-testing-core-tests-r7" x="158.6" y="2508.8" textLength="24.4" clip-path="url(#breeze-testing-core-tests-line-102)">-D</text><text class="breeze-testing-core-tests-r1" x="207.4 [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="2533.2" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-103)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="2533.2" textLength="109.8" clip-path="url(#breeze-testing-core-tests-line-103)">--verbose</text><text class="breeze-testing-core-tests-r7" x="158.6" y="2533.2" textLength="24.4" clip-path="url(#breeze-testing-core-tests-line-103)">-v</text><text class="breeze-testing-core-tests-r1" x="207.4 [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="2557.6" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-104)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="2557.6" textLength="73.2" clip-path="url(#breeze-testing-core-tests-line-104)">--help</text><text class="breeze-testing-core-tests-r7" x="158.6" y="2557.6" textLength="24.4" clip-path="url(#breeze-testing-core-tests-line-104)">-h</text><text class="breeze-testing-core-tests-r1" x="207.4" y= [...]
-</text><text class="breeze-testing-core-tests-r5" x="0" y="2582" textLength="1464" clip-path="url(#breeze-testing-core-tests-line-105)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-core-tests-r1" x="1464" y="2582" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-105)">
+</text><text class="breeze-testing-core-tests-r5" x="0" y="410.4" textLength="1464" clip-path="url(#breeze-testing-core-tests-line-16)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-core-tests-r1" x="1464" y="410.4" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-16)">
+</text><text class="breeze-testing-core-tests-r5" x="0" y="434.8" textLength="24.4" clip-path="url(#breeze-testing-core-tests-line-17)">╭─</text><text class="breeze-testing-core-tests-r5" x="24.4" y="434.8" textLength="170.8" clip-path="url(#breeze-testing-core-tests-line-17)"> Test options </text><text class="breeze-testing-core-tests-r5" x="195.2" y="434.8" textLength="1244.4" clip-path="url(#breeze-testing-core-tests-line-17)">─────────────────────────────────────────── [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="459.2" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-18)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="459.2" textLength="170.8" clip-path="url(#breeze-testing-core-tests-line-18)">--test-timeout</text><text class="breeze-testing-core-tests-r1" x="475.8" y="459.2" textLength="963.8" clip-path="url(#breeze-testing-core-tests-line-18)">Test timeout in seconds. Set the [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="483.6" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-19)">│</text><text class="breeze-testing-core-tests-r1" x="475.8" y="483.6" textLength="963.8" clip-path="url(#breeze-testing-core-tests-line-19)">to this value                                 [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="508" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-20)">│</text><text class="breeze-testing-core-tests-r6" x="475.8" y="508" textLength="963.8" clip-path="url(#breeze-testing-core-tests-line-20)">(INTEGER RANGE)                                  [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="532.4" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-21)">│</text><text class="breeze-testing-core-tests-r5" x="475.8" y="532.4" textLength="963.8" clip-path="url(#breeze-testing-core-tests-line-21)">[default: 60; x>=0]                              &# [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="556.8" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-22)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="556.8" textLength="207.4" clip-path="url(#breeze-testing-core-tests-line-22)">--enable-coverage</text><text class="breeze-testing-core-tests-r1" x="475.8" y="556.8" textLength="732" clip-path="url(#breeze-testing-core-tests-line-22)">Enable coverage capturing for tests [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="581.2" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-23)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="581.2" textLength="170.8" clip-path="url(#breeze-testing-core-tests-line-23)">--collect-only</text><text class="breeze-testing-core-tests-r1" x="475.8" y="581.2" textLength="439.2" clip-path="url(#breeze-testing-core-tests-line-23)">Collect tests only, do not run  [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="605.6" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-24)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="605.6" textLength="122" clip-path="url(#breeze-testing-core-tests-line-24)">--db-reset</text><text class="breeze-testing-core-tests-r7" x="256.2" y="605.6" textLength="24.4" clip-path="url(#breeze-testing-core-tests-line-24)">-d</text><text class="breeze-testing-core-tests-r1" x="280.6" y="60 [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="630" textLength="1464" clip-path="url(#breeze-testing-core-tests-line-25)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-core-tests-r1" x="1464" y="630" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-25)">
+</text><text class="breeze-testing-core-tests-r5" x="0" y="654.4" textLength="24.4" clip-path="url(#breeze-testing-core-tests-line-26)">╭─</text><text class="breeze-testing-core-tests-r5" x="24.4" y="654.4" textLength="439.2" clip-path="url(#breeze-testing-core-tests-line-26)"> Selectively run DB or non-DB tests </text><text class="breeze-testing-core-tests-r5" x="463.6" y="654.4" textLength="976" clip-path="url(#breeze-testing-core-tests-line-26)">──── [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="678.8" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-27)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="678.8" textLength="231.8" clip-path="url(#breeze-testing-core-tests-line-27)">--run-db-tests-only</text><text class="breeze-testing-core-tests-r1" x="305" y="678.8" textLength="475.8" clip-path="url(#breeze-testing-core-tests-line-27)">Only runs tests that require a&# [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="703.2" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-28)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="703.2" textLength="183" clip-path="url(#breeze-testing-core-tests-line-28)">--skip-db-tests</text><text class="breeze-testing-core-tests-r1" x="305" y="703.2" textLength="414.8" clip-path="url(#breeze-testing-core-tests-line-28)">Skip tests that require a database</te [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="727.6" textLength="1464" clip-path="url(#breeze-testing-core-tests-line-29)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-core-tests-r1" x="1464" y="727.6" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-29)">
+</text><text class="breeze-testing-core-tests-r5" x="0" y="752" textLength="24.4" clip-path="url(#breeze-testing-core-tests-line-30)">╭─</text><text class="breeze-testing-core-tests-r5" x="24.4" y="752" textLength="219.6" clip-path="url(#breeze-testing-core-tests-line-30)"> Test environment </text><text class="breeze-testing-core-tests-r5" x="244" y="752" textLength="1195.6" clip-path="url(#breeze-testing-core-tests-line-30)">─────────────────────────────────────────────── [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="776.4" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-31)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="776.4" textLength="109.8" clip-path="url(#breeze-testing-core-tests-line-31)">--backend</text><text class="breeze-testing-core-tests-r7" x="561.2" y="776.4" textLength="24.4" clip-path="url(#breeze-testing-core-tests-line-31)">-b</text><text class="breeze-testing-core-tests-r1" x="610" y="776 [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="800.8" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-32)">│</text><text class="breeze-testing-core-tests-r1" x="610" y="800.8" textLength="829.6" clip-path="url(#breeze-testing-core-tests-line-32)">an invalid database configuration, meaning there will be no database</text><text class="breeze-testing-core-tests-r5" x="1451.8" y="800.8" textLength="12.2" clip-path="url [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="825.2" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-33)">│</text><text class="breeze-testing-core-tests-r1" x="610" y="825.2" textLength="829.6" clip-path="url(#breeze-testing-core-tests-line-33)">available, and any attempts to connect to the Airflow database will </text><text class="breeze-testing-core-tests-r5" x="1451.8" y="825.2" textLength="12.2" clip [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="849.6" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-34)">│</text><text class="breeze-testing-core-tests-r1" x="610" y="849.6" textLength="829.6" clip-path="url(#breeze-testing-core-tests-line-34)">fail.                                   & [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="874" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-35)">│</text><text class="breeze-testing-core-tests-r6" x="610" y="874" textLength="829.6" clip-path="url(#breeze-testing-core-tests-line-35)">(>sqlite< | mysql | postgres | none)                         [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="898.4" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-36)">│</text><text class="breeze-testing-core-tests-r5" x="610" y="898.4" textLength="829.6" clip-path="url(#breeze-testing-core-tests-line-36)">[default: sqlite]                                &# [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="922.8" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-37)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="922.8" textLength="183" clip-path="url(#breeze-testing-core-tests-line-37)">--no-db-cleanup</text><text class="breeze-testing-core-tests-r1" x="610" y="922.8" textLength="597.8" clip-path="url(#breeze-testing-core-tests-line-37)">Do not clear the database before  [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="947.2" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-38)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="947.2" textLength="97.6" clip-path="url(#breeze-testing-core-tests-line-38)">--python</text><text class="breeze-testing-core-tests-r7" x="561.2" y="947.2" textLength="24.4" clip-path="url(#breeze-testing-core-tests-line-38)">-p</text><text class="breeze-testing-core-tests-r1" x="610" y="947.2 [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="971.6" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-39)">│</text><text class="breeze-testing-core-tests-r6" x="610" y="971.6" textLength="732" clip-path="url(#breeze-testing-core-tests-line-39)">(>3.9< | 3.10 | 3.11 | 3.12)                          [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="996" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-40)">│</text><text class="breeze-testing-core-tests-r5" x="610" y="996" textLength="732" clip-path="url(#breeze-testing-core-tests-line-40)">[default: 3.9]                                   [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="1020.4" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-41)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="1020.4" textLength="219.6" clip-path="url(#breeze-testing-core-tests-line-41)">--postgres-version</text><text class="breeze-testing-core-tests-r7" x="561.2" y="1020.4" textLength="24.4" clip-path="url(#breeze-testing-core-tests-line-41)">-P</text><text class="breeze-testing-core-tests-r1" x= [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="1044.8" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-42)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="1044.8" textLength="183" clip-path="url(#breeze-testing-core-tests-line-42)">--mysql-version</text><text class="breeze-testing-core-tests-r7" x="561.2" y="1044.8" textLength="24.4" clip-path="url(#breeze-testing-core-tests-line-42)">-M</text><text class="breeze-testing-core-tests-r1" x="610" [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="1069.2" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-43)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="1069.2" textLength="256.2" clip-path="url(#breeze-testing-core-tests-line-43)">--forward-credentials</text><text class="breeze-testing-core-tests-r7" x="561.2" y="1069.2" textLength="24.4" clip-path="url(#breeze-testing-core-tests-line-43)">-f</text><text class="breeze-testing-core-tests-r1" [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="1093.6" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-44)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="1093.6" textLength="231.8" clip-path="url(#breeze-testing-core-tests-line-44)">--force-sa-warnings</text><text class="breeze-testing-core-tests-r1" x="256.2" y="1093.6" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-44)">/</text><text class="breeze-testing-core-tests-r4" x= [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="1118" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-45)">│</text><text class="breeze-testing-core-tests-r5" x="610" y="1118" textLength="768.6" clip-path="url(#breeze-testing-core-tests-line-45)">[default: force-sa-warnings]                                [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="1142.4" textLength="1464" clip-path="url(#breeze-testing-core-tests-line-46)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-core-tests-r1" x="1464" y="1142.4" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-46)">
+</text><text class="breeze-testing-core-tests-r5" x="0" y="1166.8" textLength="24.4" clip-path="url(#breeze-testing-core-tests-line-47)">╭─</text><text class="breeze-testing-core-tests-r5" x="24.4" y="1166.8" textLength="439.2" clip-path="url(#breeze-testing-core-tests-line-47)"> Options for parallel test commands </text><text class="breeze-testing-core-tests-r5" x="463.6" y="1166.8" textLength="976" clip-path="url(#breeze-testing-core-tests-line-47)">────── [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="1191.2" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-48)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="1191.2" textLength="207.4" clip-path="url(#breeze-testing-core-tests-line-48)">--run-in-parallel</text><text class="breeze-testing-core-tests-r1" x="378.2" y="1191.2" textLength="854" clip-path="url(#breeze-testing-core-tests-line-48)">Run the operation in parallel o [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="1215.6" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-49)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="1215.6" textLength="134.2" clip-path="url(#breeze-testing-core-tests-line-49)">--use-xdist</text><text class="breeze-testing-core-tests-r1" x="378.2" y="1215.6" textLength="329.4" clip-path="url(#breeze-testing-core-tests-line-49)">Use xdist plugin for pytest</text><text [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="1240" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-50)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="1240" textLength="158.6" clip-path="url(#breeze-testing-core-tests-line-50)">--parallelism</text><text class="breeze-testing-core-tests-r1" x="378.2" y="1240" textLength="915" clip-path="url(#breeze-testing-core-tests-line-50)">Maximum number of processes to use w [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="1264.4" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-51)">│</text><text class="breeze-testing-core-tests-r6" x="378.2" y="1264.4" textLength="915" clip-path="url(#breeze-testing-core-tests-line-51)">(INTEGER RANGE)                                &# [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="1288.8" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-52)">│</text><text class="breeze-testing-core-tests-r5" x="378.2" y="1288.8" textLength="915" clip-path="url(#breeze-testing-core-tests-line-52)">[default: 4; 1<=x<=8]                              [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="1313.2" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-53)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="1313.2" textLength="170.8" clip-path="url(#breeze-testing-core-tests-line-53)">--skip-cleanup</text><text class="breeze-testing-core-tests-r1" x="378.2" y="1313.2" textLength="732" clip-path="url(#breeze-testing-core-tests-line-53)">Skip cleanup of temporary files cr [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="1337.6" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-54)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="1337.6" textLength="207.4" clip-path="url(#breeze-testing-core-tests-line-54)">--debug-resources</text><text class="breeze-testing-core-tests-r1" x="378.2" y="1337.6" textLength="768.6" clip-path="url(#breeze-testing-core-tests-line-54)">Whether to show resource informati [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="1362" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-55)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="1362" textLength="305" clip-path="url(#breeze-testing-core-tests-line-55)">--include-success-outputs</text><text class="breeze-testing-core-tests-r1" x="378.2" y="1362" textLength="927.2" clip-path="url(#breeze-testing-core-tests-line-55)">Whether to include outputs of  [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="1386.4" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-56)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="1386.4" textLength="244" clip-path="url(#breeze-testing-core-tests-line-56)">--total-test-timeout</text><text class="breeze-testing-core-tests-r1" x="378.2" y="1386.4" textLength="1061.4" clip-path="url(#breeze-testing-core-tests-line-56)">Total test timeout in seconds.&# [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="1410.8" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-57)">│</text><text class="breeze-testing-core-tests-r1" x="378.2" y="1410.8" textLength="1061.4" clip-path="url(#breeze-testing-core-tests-line-57)">there is an underlying pytest command that hangs, the process will be stop with system </text><text class="breeze-testing-core-tests-r5" [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="1435.2" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-58)">│</text><text class="breeze-testing-core-tests-r1" x="378.2" y="1435.2" textLength="1061.4" clip-path="url(#breeze-testing-core-tests-line-58)">exit after that time. This should give a chance to upload logs as artifacts on CI.     </text><text class="bree [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="1459.6" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-59)">│</text><text class="breeze-testing-core-tests-r6" x="378.2" y="1459.6" textLength="1061.4" clip-path="url(#breeze-testing-core-tests-line-59)">(INTEGER)                                  [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="1484" textLength="1464" clip-path="url(#breeze-testing-core-tests-line-60)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-core-tests-r1" x="1464" y="1484" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-60)">
+</text><text class="breeze-testing-core-tests-r5" x="0" y="1508.4" textLength="24.4" clip-path="url(#breeze-testing-core-tests-line-61)">╭─</text><text class="breeze-testing-core-tests-r5" x="24.4" y="1508.4" textLength="610" clip-path="url(#breeze-testing-core-tests-line-61)"> Upgrading/downgrading/removing selected packages </text><text class="breeze-testing-core-tests-r5" x="634.4" y="1508.4" textLength="805.2" clip-path="url(#breeze-testing-core-tests-line-61)">── [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="1532.8" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-62)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="1532.8" textLength="170.8" clip-path="url(#breeze-testing-core-tests-line-62)">--upgrade-boto</text><text class="breeze-testing-core-tests-r1" x="341.6" y="1532.8" textLength="866.2" clip-path="url(#breeze-testing-core-tests-line-62)">Remove aiobotocore and upgrade botoco [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="1557.2" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-63)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="1557.2" textLength="268.4" clip-path="url(#breeze-testing-core-tests-line-63)">--downgrade-sqlalchemy</text><text class="breeze-testing-core-tests-r1" x="341.6" y="1557.2" textLength="610" clip-path="url(#breeze-testing-core-tests-line-63)">Downgrade SQLAlchemy to minimum  [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="1581.6" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-64)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="1581.6" textLength="244" clip-path="url(#breeze-testing-core-tests-line-64)">--downgrade-pendulum</text><text class="breeze-testing-core-tests-r1" x="341.6" y="1581.6" textLength="585.6" clip-path="url(#breeze-testing-core-tests-line-64)">Downgrade Pendulum to minimum sup [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="1606" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-65)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="1606" textLength="256.2" clip-path="url(#breeze-testing-core-tests-line-65)">--remove-arm-packages</text><text class="breeze-testing-core-tests-r1" x="341.6" y="1606" textLength="817.4" clip-path="url(#breeze-testing-core-tests-line-65)">Removes arm packages from the i [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="1630.4" textLength="1464" clip-path="url(#breeze-testing-core-tests-line-66)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-core-tests-r1" x="1464" y="1630.4" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-66)">
+</text><text class="breeze-testing-core-tests-r5" x="0" y="1654.8" textLength="24.4" clip-path="url(#breeze-testing-core-tests-line-67)">╭─</text><text class="breeze-testing-core-tests-r5" x="24.4" y="1654.8" textLength="402.6" clip-path="url(#breeze-testing-core-tests-line-67)"> Advanced flag for tests command </text><text class="breeze-testing-core-tests-r5" x="427" y="1654.8" textLength="1012.6" clip-path="url(#breeze-testing-core-tests-line-67)">──────── [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="1679.2" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-68)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="1679.2" textLength="231.8" clip-path="url(#breeze-testing-core-tests-line-68)">--github-repository</text><text class="breeze-testing-core-tests-r7" x="366" y="1679.2" textLength="24.4" clip-path="url(#breeze-testing-core-tests-line-68)">-g</text><text class="breeze-testing-core-tests-r1" x=" [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="1703.6" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-69)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="1703.6" textLength="183" clip-path="url(#breeze-testing-core-tests-line-69)">--mount-sources</text><text class="breeze-testing-core-tests-r1" x="414.8" y="1703.6" textLength="1024.8" clip-path="url(#breeze-testing-core-tests-line-69)">Choose scope of local sources th [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="1728" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-70)">│</text><text class="breeze-testing-core-tests-r1" x="414.8" y="1728" textLength="1024.8" clip-path="url(#breeze-testing-core-tests-line-70)">selected).                                  & [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="1752.4" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-71)">│</text><text class="breeze-testing-core-tests-r6" x="414.8" y="1752.4" textLength="1024.8" clip-path="url(#breeze-testing-core-tests-line-71)">(selected | all | skip | remove | tests | providers-and-tests)                 [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="1776.8" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-72)">│</text><text class="breeze-testing-core-tests-r5" x="414.8" y="1776.8" textLength="1024.8" clip-path="url(#breeze-testing-core-tests-line-72)">[default: selected]                               & [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="1801.2" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-73)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="1801.2" textLength="317.2" clip-path="url(#breeze-testing-core-tests-line-73)">--skip-docker-compose-down</text><text class="breeze-testing-core-tests-r1" x="414.8" y="1801.2" textLength="549" clip-path="url(#breeze-testing-core-tests-line-73)">Skips running docker-compose dow [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="1825.6" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-74)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="1825.6" textLength="244" clip-path="url(#breeze-testing-core-tests-line-74)">--keep-env-variables</text><text class="breeze-testing-core-tests-r1" x="414.8" y="1825.6" textLength="1000.4" clip-path="url(#breeze-testing-core-tests-line-74)">Do not clear environment variabl [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="1850" textLength="1464" clip-path="url(#breeze-testing-core-tests-line-75)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-core-tests-r1" x="1464" y="1850" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-75)">
+</text><text class="breeze-testing-core-tests-r5" x="0" y="1874.4" textLength="24.4" clip-path="url(#breeze-testing-core-tests-line-76)">╭─</text><text class="breeze-testing-core-tests-r5" x="24.4" y="1874.4" textLength="622.2" clip-path="url(#breeze-testing-core-tests-line-76)"> Advanced flag for installing airflow in container </text><text class="breeze-testing-core-tests-r5" x="646.6" y="1874.4" textLength="793" clip-path="url(#breeze-testing-co [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="1898.8" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-77)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="1898.8" textLength="378.2" clip-path="url(#breeze-testing-core-tests-line-77)">--airflow-constraints-reference</text><text class="breeze-testing-core-tests-r1" x="756.4" y="1898.8" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-77)">Constraint reference to u [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="1923.2" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-78)">│</text><text class="breeze-testing-core-tests-r1" x="756.4" y="1923.2" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-78)">(used in calculated constraints URL).                   </text><text class="breeze-testing-core-t [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="1947.6" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-79)">│</text><text class="breeze-testing-core-tests-r6" x="756.4" y="1947.6" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-79)">(TEXT)                                  &# [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="1972" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-80)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="1972" textLength="341.6" clip-path="url(#breeze-testing-core-tests-line-80)">--clean-airflow-installation</text><text class="breeze-testing-core-tests-r1" x="756.4" y="1972" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-80)">Clean the airflow installation [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="1996.4" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-81)">│</text><text class="breeze-testing-core-tests-r1" x="756.4" y="1996.4" textLength="158.6" clip-path="url(#breeze-testing-core-tests-line-81)">specified by </text><text class="breeze-testing-core-tests-r4" x="915" y="1996.4" textLength="256.2" clip-path="url(#breeze-testing-core-tests-line-81)">--use-airflow-version</text><text class="breeze-t [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="2020.8" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-82)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="2020.8" textLength="329.4" clip-path="url(#breeze-testing-core-tests-line-82)">--force-lowest-dependencies</text><text class="breeze-testing-core-tests-r1" x="756.4" y="2020.8" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-82)">Run tests for the lowest [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="2045.2" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-83)">│</text><text class="breeze-testing-core-tests-r1" x="756.4" y="2045.2" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-83)">or selected provider if `Provider[PROVIDER_ID]` is used </text><text class="breeze-testing-core-tests-r5" x="1451.8" y="2045.2" textLength="12.2" clip-path="url(#breeze-testing- [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="2069.6" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-84)">│</text><text class="breeze-testing-core-tests-r1" x="756.4" y="2069.6" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-84)">as test type.                                [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="2094" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-85)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="2094" textLength="414.8" clip-path="url(#breeze-testing-core-tests-line-85)">--install-airflow-with-constraints</text><text class="breeze-testing-core-tests-r1" x="439.2" y="2094" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-85)">/</text><text class="breeze-testing-core-tes [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="2118.4" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-86)">│</text><text class="breeze-testing-core-tests-r1" x="756.4" y="2118.4" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-86)">determined from package or airflow version.             </text><text class="breeze-testing-core-tests-r5" x="1451.8" y="21 [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="2142.8" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-87)">│</text><text class="breeze-testing-core-tests-r5" x="756.4" y="2142.8" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-87)">[default: no-install-airflow-with-constraints]          </text><text class="breeze-testing-core-tests-r5" x="1451.8" y="2142.8" textLength="12.2" clip-path=" [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="2167.2" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-88)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="2167.2" textLength="195.2" clip-path="url(#breeze-testing-core-tests-line-88)">--package-format</text><text class="breeze-testing-core-tests-r1" x="756.4" y="2167.2" textLength="231.8" clip-path="url(#breeze-testing-core-tests-line-88)">Format of packages.</text><text class="breeze [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="2191.6" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-89)">│</text><text class="breeze-testing-core-tests-r5" x="756.4" y="2191.6" textLength="231.8" clip-path="url(#breeze-testing-core-tests-line-89)">[default: wheel]   </text><text class="breeze-testing-core-tests-r5" x="1451.8" y="2191.6" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-89)">│</text><text class="breeze-tes [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="2216" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-90)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="2216" textLength="256.2" clip-path="url(#breeze-testing-core-tests-line-90)">--use-airflow-version</text><text class="breeze-testing-core-tests-r1" x="756.4" y="2216" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-90)">Use (reinstall at entry) Airflow [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="2240.4" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-91)">│</text><text class="breeze-testing-core-tests-r1" x="756.4" y="2240.4" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-91)">can also be version (to install from PyPI), `none`,     </text><text class="breeze-testing-core-tests-r5" x="1451.8" y="2240.4" textLength="12.2" c [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="2264.8" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-92)">│</text><text class="breeze-testing-core-tests-r1" x="756.4" y="2264.8" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-92)">`wheel`, or `sdist` to install from `dist` folder, or   </text><text class="breeze-testing-core-tests-r5" x="1451.8" y="2264.8" textLength="12.2" clip-path=" [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="2289.2" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-93)">│</text><text class="breeze-testing-core-tests-r1" x="756.4" y="2289.2" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-93)">VCS URL to install from                            & [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="2313.6" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-94)">│</text><text class="breeze-testing-core-tests-r1" x="756.4" y="2313.6" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-94)">(https://pip.pypa.io/en/stable/topics/vcs-support/).    </text><text class="breeze-testing-core-tests-r5" x="1451.8" y="2313.6" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="2338" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-95)">│</text><text class="breeze-testing-core-tests-r1" x="756.4" y="2338" textLength="97.6" clip-path="url(#breeze-testing-core-tests-line-95)">Implies </text><text class="breeze-testing-core-tests-r4" x="854" y="2338" textLength="183" clip-path="url(#breeze-testing-core-tests-line-95)">--mount-sources</text><text class="breeze-testing-core-tests-r1" x=" [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="2362.4" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-96)">│</text><text class="breeze-testing-core-tests-r6" x="756.4" y="2362.4" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-96)">(none | wheel | sdist | <airflow_version>)              </text><text class="breeze-testing-core-tests-r5" [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="2386.8" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-97)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="2386.8" textLength="292.8" clip-path="url(#breeze-testing-core-tests-line-97)">--use-packages-from-dist</text><text class="breeze-testing-core-tests-r1" x="756.4" y="2386.8" textLength="341.6" clip-path="url(#breeze-testing-core-tests-line-97)">Install all found packages  [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="2411.2" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-98)">│</text><text class="breeze-testing-core-tests-r1" x="756.4" y="2411.2" textLength="683.2" clip-path="url(#breeze-testing-core-tests-line-98)">type) from 'dist' folder when entering breeze.          </text><text class="breeze-testing-core-tests-r5" x="1451.8" y="24 [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="2435.6" textLength="1464" clip-path="url(#breeze-testing-core-tests-line-99)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-core-tests-r1" x="1464" y="2435.6" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-99)">
+</text><text class="breeze-testing-core-tests-r5" x="0" y="2460" textLength="24.4" clip-path="url(#breeze-testing-core-tests-line-100)">╭─</text><text class="breeze-testing-core-tests-r5" x="24.4" y="2460" textLength="195.2" clip-path="url(#breeze-testing-core-tests-line-100)"> Common options </text><text class="breeze-testing-core-tests-r5" x="219.6" y="2460" textLength="1220" clip-path="url(#breeze-testing-core-tests-line-100)">─────────────────────────────────────────── [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="2484.4" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-101)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="2484.4" textLength="109.8" clip-path="url(#breeze-testing-core-tests-line-101)">--dry-run</text><text class="breeze-testing-core-tests-r7" x="158.6" y="2484.4" textLength="24.4" clip-path="url(#breeze-testing-core-tests-line-101)">-D</text><text class="breeze-testing-core-tests-r1" x="207.4 [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="2508.8" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-102)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="2508.8" textLength="109.8" clip-path="url(#breeze-testing-core-tests-line-102)">--verbose</text><text class="breeze-testing-core-tests-r7" x="158.6" y="2508.8" textLength="24.4" clip-path="url(#breeze-testing-core-tests-line-102)">-v</text><text class="breeze-testing-core-tests-r1" x="207.4 [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="2533.2" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-103)">│</text><text class="breeze-testing-core-tests-r4" x="24.4" y="2533.2" textLength="73.2" clip-path="url(#breeze-testing-core-tests-line-103)">--help</text><text class="breeze-testing-core-tests-r7" x="158.6" y="2533.2" textLength="24.4" clip-path="url(#breeze-testing-core-tests-line-103)">-h</text><text class="breeze-testing-core-tests-r1" x="207.4" y= [...]
+</text><text class="breeze-testing-core-tests-r5" x="0" y="2557.6" textLength="1464" clip-path="url(#breeze-testing-core-tests-line-104)">╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯</text><text class="breeze-testing-core-tests-r1" x="1464" y="2557.6" textLength="12.2" clip-path="url(#breeze-testing-core-tests-line-104)">
</text>
</g>
</g>
diff --git a/dev/breeze/doc/images/output_testing_core-tests.txt b/dev/breeze/doc/images/output_testing_core-tests.txt
index e480bcdd34a..07c4b394732 100644
--- a/dev/breeze/doc/images/output_testing_core-tests.txt
+++ b/dev/breeze/doc/images/output_testing_core-tests.txt
@@ -1 +1 @@
-c365493082aa3a10e3d9fc031f1d530e
+aa8bd78e29f45904b7eabf672ab529a7
diff --git a/dev/breeze/doc/images/output_testing_providers-tests.txt b/dev/breeze/doc/images/output_testing_providers-tests.txt
index 818d095c47f..3c5f337ad7c 100644
--- a/dev/breeze/doc/images/output_testing_providers-tests.txt
+++ b/dev/breeze/doc/images/output_testing_providers-tests.txt
@@ -1 +1 @@
-a7fb7d5e2046c6ab230fe16aefac8cc5
+072f50ebd3be7c29c76d8d1c818e8ac8
diff --git a/docs/apache-airflow/installation/supported-versions.rst b/docs/apache-airflow/installation/supported-versions.rst
index 6c3f8952b95..1a453620503 100644
--- a/docs/apache-airflow/installation/supported-versions.rst
+++ b/docs/apache-airflow/installation/supported-versions.rst
@@ -29,6 +29,7 @@ Apache Airflow® version life cycle:
========= ===================== ========= =============== ================= ================
Version Current Patch/Minor State First Release Limited Support EOL/Terminated
========= ===================== ========= =============== ================= ================
+3 3.0.0 Supported Jan 31, 2025 TBD TBD
2 2.10.5 Supported Dec 17, 2020 TBD TBD
1.10 1.10.15 EOL Aug 27, 2018 Dec 17, 2020 June 17, 2021
1.9 1.9.0 EOL Jan 03, 2018 Aug 27, 2018 Aug 27, 2018
diff --git a/docs/docker-stack/README.md b/docs/docker-stack/README.md
index f787016de70..fe91516adfd 100644
--- a/docs/docker-stack/README.md
+++ b/docs/docker-stack/README.md
@@ -31,12 +31,12 @@ Every time a new version of Airflow is released, the images are prepared in the
[apache/airflow DockerHub](https://hub.docker.com/r/apache/airflow)
for all the supported Python versions.
-You can find the following images there (Assuming Airflow version `3.0.0.dev0`):
+You can find the following images there (Assuming Airflow version `3.0.0a4`):
* `apache/airflow:latest` - the latest released Airflow image with default Python version (3.12 currently)
* `apache/airflow:latest-pythonX.Y` - the latest released Airflow image with specific Python version
-* `apache/airflow:3.0.0.dev0` - the versioned Airflow image with default Python version (3.12 currently)
-* `apache/airflow:3.0.0.dev0-pythonX.Y` - the versioned Airflow image with specific Python version
+* `apache/airflow:3.0.0a4` - the versioned Airflow image with default Python version (3.12 currently)
+* `apache/airflow:3.0.0a4-pythonX.Y` - the versioned Airflow image with specific Python version
Those are "reference" regular images. They contain the most common set of extras, dependencies and providers that are
often used by the users and they are good to "try-things-out" when you want to just take Airflow for a spin,
@@ -47,8 +47,8 @@ via [Building the image](https://airflow.apache.org/docs/docker-stack/build.html
* `apache/airflow:slim-latest` - the latest released Airflow image with default Python version (3.12 currently)
* `apache/airflow:slim-latest-pythonX.Y` - the latest released Airflow image with specific Python version
-* `apache/airflow:slim-3.0.0.dev0` - the versioned Airflow image with default Python version (3.12 currently)
-* `apache/airflow:slim-3.0.0.dev0-pythonX.Y` - the versioned Airflow image with specific Python version
+* `apache/airflow:slim-3.0.0a4` - the versioned Airflow image with default Python version (3.12 currently)
+* `apache/airflow:slim-3.0.0a4-pythonX.Y` - the versioned Airflow image with specific Python version
The Apache Airflow image provided as convenience package is optimized for size, and
it provides just a bare minimal set of the extras and dependencies installed and in most cases
diff --git a/docs/docker-stack/docker-examples/extending/add-airflow-configuration/Dockerfile b/docs/docker-stack/docker-examples/extending/add-airflow-configuration/Dockerfile
index c4a5a86b564..a3901736197 100644
--- a/docs/docker-stack/docker-examples/extending/add-airflow-configuration/Dockerfile
+++ b/docs/docker-stack/docker-examples/extending/add-airflow-configuration/Dockerfile
@@ -15,7 +15,7 @@
# This is an example Dockerfile. It is not intended for PRODUCTION use
# [START Dockerfile]
-FROM apache/airflow:3.0.0.dev0
+FROM apache/airflow:3.0.0a4
ENV AIRFLOW__CORE__LOAD_EXAMPLES=True
ENV AIRFLOW__DATABASE__SQL_ALCHEMY_CONN=my_conn_string
# [END Dockerfile]
diff --git a/docs/docker-stack/docker-examples/extending/add-apt-packages/Dockerfile b/docs/docker-stack/docker-examples/extending/add-apt-packages/Dockerfile
index be8b4bb3e05..c0d5b983938 100644
--- a/docs/docker-stack/docker-examples/extending/add-apt-packages/Dockerfile
+++ b/docs/docker-stack/docker-examples/extending/add-apt-packages/Dockerfile
@@ -15,7 +15,7 @@
# This is an example Dockerfile. It is not intended for PRODUCTION use
# [START Dockerfile]
-FROM apache/airflow:3.0.0.dev0
+FROM apache/airflow:3.0.0a4
USER root
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
diff --git a/docs/docker-stack/docker-examples/extending/add-build-essential-extend/Dockerfile b/docs/docker-stack/docker-examples/extending/add-build-essential-extend/Dockerfile
index b46ea8ca4b9..948dbd38ff9 100644
--- a/docs/docker-stack/docker-examples/extending/add-build-essential-extend/Dockerfile
+++ b/docs/docker-stack/docker-examples/extending/add-build-essential-extend/Dockerfile
@@ -15,7 +15,7 @@
# This is an example Dockerfile. It is not intended for PRODUCTION use
# [START Dockerfile]
-FROM apache/airflow:3.0.0.dev0
+FROM apache/airflow:3.0.0a4
USER root
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
diff --git a/docs/docker-stack/docker-examples/extending/add-providers/Dockerfile b/docs/docker-stack/docker-examples/extending/add-providers/Dockerfile
index ee6d6dc084f..31a91da926e 100644
--- a/docs/docker-stack/docker-examples/extending/add-providers/Dockerfile
+++ b/docs/docker-stack/docker-examples/extending/add-providers/Dockerfile
@@ -15,7 +15,7 @@
# This is an example Dockerfile. It is not intended for PRODUCTION use
# [START Dockerfile]
-FROM apache/airflow:3.0.0.dev0
+FROM apache/airflow:3.0.0a4
USER root
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
diff --git a/docs/docker-stack/docker-examples/extending/add-pypi-packages-constraints/Dockerfile b/docs/docker-stack/docker-examples/extending/add-pypi-packages-constraints/Dockerfile
index e97d483bddb..390f679725a 100644
--- a/docs/docker-stack/docker-examples/extending/add-pypi-packages-constraints/Dockerfile
+++ b/docs/docker-stack/docker-examples/extending/add-pypi-packages-constraints/Dockerfile
@@ -15,6 +15,6 @@
# This is an example Dockerfile. It is not intended for PRODUCTION use
# [START Dockerfile]
-FROM apache/airflow:3.0.0.dev0
+FROM apache/airflow:3.0.0a4
RUN pip install --no-cache-dir "apache-airflow==${AIRFLOW_VERSION}" lxml --constraint "${HOME}/constraints.txt"
# [END Dockerfile]
diff --git a/docs/docker-stack/docker-examples/extending/add-pypi-packages-uv/Dockerfile b/docs/docker-stack/docker-examples/extending/add-pypi-packages-uv/Dockerfile
index 316307f10dc..6bec811d75c 100644
--- a/docs/docker-stack/docker-examples/extending/add-pypi-packages-uv/Dockerfile
+++ b/docs/docker-stack/docker-examples/extending/add-pypi-packages-uv/Dockerfile
@@ -15,7 +15,7 @@
# This is an example Dockerfile. It is not intended for PRODUCTION use
# [START Dockerfile]
-FROM apache/airflow:3.0.0.dev0
+FROM apache/airflow:3.0.0a4
# The `uv` tools is Rust packaging tool that is much faster than `pip` and other installer
# Support for uv as installation tool is experimental
diff --git a/docs/docker-stack/docker-examples/extending/add-pypi-packages/Dockerfile b/docs/docker-stack/docker-examples/extending/add-pypi-packages/Dockerfile
index ff762fb05d4..bd5c22267d4 100644
--- a/docs/docker-stack/docker-examples/extending/add-pypi-packages/Dockerfile
+++ b/docs/docker-stack/docker-examples/extending/add-pypi-packages/Dockerfile
@@ -15,6 +15,6 @@
# This is an example Dockerfile. It is not intended for PRODUCTION use
# [START Dockerfile]
-FROM apache/airflow:3.0.0.dev0
+FROM apache/airflow:3.0.0a4
RUN pip install --no-cache-dir "apache-airflow==${AIRFLOW_VERSION}" lxml
# [END Dockerfile]
diff --git a/docs/docker-stack/docker-examples/extending/add-requirement-packages/Dockerfile b/docs/docker-stack/docker-examples/extending/add-requirement-packages/Dockerfile
index f1c23a3799d..f82d04b1d96 100644
--- a/docs/docker-stack/docker-examples/extending/add-requirement-packages/Dockerfile
+++ b/docs/docker-stack/docker-examples/extending/add-requirement-packages/Dockerfile
@@ -15,7 +15,7 @@
# This is an example Dockerfile. It is not intended for PRODUCTION use
# [START Dockerfile]
-FROM apache/airflow:3.0.0.dev0
+FROM apache/airflow:3.0.0a4
COPY requirements.txt /
RUN pip install --no-cache-dir "apache-airflow==${AIRFLOW_VERSION}" -r /requirements.txt
# [END Dockerfile]
diff --git a/docs/docker-stack/docker-examples/extending/custom-providers/Dockerfile b/docs/docker-stack/docker-examples/extending/custom-providers/Dockerfile
index 954acb812e5..17d5a465235 100644
--- a/docs/docker-stack/docker-examples/extending/custom-providers/Dockerfile
+++ b/docs/docker-stack/docker-examples/extending/custom-providers/Dockerfile
@@ -15,6 +15,6 @@
# This is an example Dockerfile. It is not intended for PRODUCTION use
# [START Dockerfile]
-FROM apache/airflow:3.0.0.dev0
+FROM apache/airflow:3.0.0a4
RUN pip install "apache-airflow==${AIRFLOW_VERSION}" --no-cache-dir apache-airflow-providers-docker==2.5.1
# [END Dockerfile]
diff --git a/docs/docker-stack/docker-examples/extending/embedding-dags/Dockerfile b/docs/docker-stack/docker-examples/extending/embedding-dags/Dockerfile
index 41d617722cf..8cd090d0093 100644
--- a/docs/docker-stack/docker-examples/extending/embedding-dags/Dockerfile
+++ b/docs/docker-stack/docker-examples/extending/embedding-dags/Dockerfile
@@ -15,7 +15,7 @@
# This is an example Dockerfile. It is not intended for PRODUCTION use
# [START Dockerfile]
-FROM apache/airflow:3.0.0.dev0
+FROM apache/airflow:3.0.0a4
COPY --chown=airflow:root test_dag.py /opt/airflow/dags
diff --git a/docs/docker-stack/docker-examples/extending/writable-directory/Dockerfile b/docs/docker-stack/docker-examples/extending/writable-directory/Dockerfile
index de3ffa7eb46..6091a86e115 100644
--- a/docs/docker-stack/docker-examples/extending/writable-directory/Dockerfile
+++ b/docs/docker-stack/docker-examples/extending/writable-directory/Dockerfile
@@ -15,7 +15,7 @@
# This is an example Dockerfile. It is not intended for PRODUCTION use
# [START Dockerfile]
-FROM apache/airflow:3.0.0.dev0
+FROM apache/airflow:3.0.0a4
RUN umask 0002; \
mkdir -p ~/writeable-directory
# [END Dockerfile]
diff --git a/docs/docker-stack/entrypoint.rst b/docs/docker-stack/entrypoint.rst
index f90395df2af..a782bcd0e87 100644
--- a/docs/docker-stack/entrypoint.rst
+++ b/docs/docker-stack/entrypoint.rst
@@ -132,7 +132,7 @@ if you specify extra arguments. For example:
.. code-block:: bash
- docker run -it apache/airflow:3.0.0.dev0-python3.9 bash -c "ls -la"
+ docker run -it apache/airflow:3.0.0a4-python3.9 bash -c "ls -la"
total 16
drwxr-xr-x 4 airflow root 4096 Jun 5 18:12 .
drwxr-xr-x 1 root root 4096 Jun 5 18:12 ..
@@ -144,7 +144,7 @@ you pass extra parameters. For example:
.. code-block:: bash
- > docker run -it apache/airflow:3.0.0.dev0-python3.9 python -c "print('test')"
+ > docker run -it apache/airflow:3.0.0a4-python3.9 python -c "print('test')"
test
If first argument equals to "airflow" - the rest of the arguments is treated as an airflow command
@@ -152,13 +152,13 @@ to execute. Example:
.. code-block:: bash
- docker run -it apache/airflow:3.0.0.dev0-python3.9 airflow webserver
+ docker run -it apache/airflow:3.0.0a4-python3.9 airflow webserver
If there are any other arguments - they are simply passed to the "airflow" command
.. code-block:: bash
- > docker run -it apache/airflow:3.0.0.dev0-python3.9 help
+ > docker run -it apache/airflow:3.0.0a4-python3.9 help
usage: airflow [-h] GROUP_OR_COMMAND ...
positional arguments:
@@ -363,7 +363,7 @@ database and creating an ``admin/admin`` Admin user with the following command:
--env "_AIRFLOW_DB_MIGRATE=true" \
--env "_AIRFLOW_WWW_USER_CREATE=true" \
--env "_AIRFLOW_WWW_USER_PASSWORD=admin" \
- apache/airflow:3.0.0.dev0-python3.9 webserver
+ apache/airflow:3.0.0a4-python3.9 webserver
.. code-block:: bash
@@ -372,7 +372,7 @@ database and creating an ``admin/admin`` Admin user with the following command:
--env "_AIRFLOW_DB_MIGRATE=true" \
--env "_AIRFLOW_WWW_USER_CREATE=true" \
--env "_AIRFLOW_WWW_USER_PASSWORD_CMD=echo admin" \
- apache/airflow:3.0.0.dev0-python3.9 webserver
+ apache/airflow:3.0.0a4-python3.9 webserver
The commands above perform initialization of the SQLite database, create admin user with admin password
and Admin role. They also forward local port ``8080`` to the webserver port and finally start the webserver.
@@ -412,6 +412,6 @@ Example:
--env "_AIRFLOW_DB_MIGRATE=true" \
--env "_AIRFLOW_WWW_USER_CREATE=true" \
--env "_AIRFLOW_WWW_USER_PASSWORD_CMD=echo admin" \
- apache/airflow:3.0.0.dev0-python3.9 webserver
+ apache/airflow:3.0.0a4-python3.9 webserver
This method is only available starting from Docker image of Airflow 2.1.1 and above.
diff --git a/generated/PYPI_README.md b/generated/PYPI_README.md
index 6c9964160a8..7ae98bdff45 100644
--- a/generated/PYPI_README.md
+++ b/generated/PYPI_README.md
@@ -54,14 +54,14 @@ Use Airflow to author workflows as directed acyclic graphs (DAGs) of tasks. The
Apache Airflow is tested with:
-| | Main version (dev) | Stable version (2.10.5) |
-|------------|------------------------|----------------------------|
-| Python | 3.9, 3.10, 3.11, 3.12 | 3.8, 3.9, 3.10, 3.11, 3.12 |
-| Platform | AMD64/ARM64(\*) | AMD64/ARM64(\*) |
-| Kubernetes | 1.29, 1.30, 1.31, 1.32 | 1.27, 1.28, 1.29, 1.30 |
-| PostgreSQL | 13, 14, 15, 16, 17 | 12, 13, 14, 15, 16 |
-| MySQL | 8.0, 8.4, Innovation | 8.0, 8.4, Innovation |
-| SQLite | 3.15.0+ | 3.15.0+ |
+| | Main version (dev) | Stable version (3.0.0) |
+|------------|------------------------|------------------------|
+| Python | 3.9, 3.10, 3.11, 3.12 | 3.9, 3.10, 3.11, 3.12 |
+| Platform | AMD64/ARM64(\*) | AMD64/ARM64(\*) |
+| Kubernetes | 1.29, 1.30, 1.31, 1.32 | 1.29, 1.30, 1.31, 1.32 |
+| PostgreSQL | 13, 14, 15, 16, 17 | 13, 14, 15, 16, 17 |
+| MySQL | 8.0, 8.4, Innovation | 8.0, 8.4, Innovation |
+| SQLite | 3.15.0+ | 3.15.0+ |
\* Experimental
@@ -128,15 +128,15 @@ them to the appropriate format and workflow that your tool requires.
```bash
-pip install 'apache-airflow==2.10.5' \
- --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-2.10.5/constraints-3.9.txt"
+pip install 'apache-airflow==3.0.0' \
+ --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-3.0.0/constraints-3.9.txt"
```
2. Installing with extras (i.e., postgres, google)
```bash
-pip install 'apache-airflow[postgres,google]==2.10.5' \
- --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-2.10.5/constraints-3.9.txt"
+pip install 'apache-airflow[postgres,google]==3.0.0' \
+ --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-3.0.0/constraints-3.9.txt"
```
For information on installing provider packages, check
diff --git a/scripts/ci/pre_commit/supported_versions.py b/scripts/ci/pre_commit/supported_versions.py
index a3a96abb957..95b6200eba8 100755
--- a/scripts/ci/pre_commit/supported_versions.py
+++ b/scripts/ci/pre_commit/supported_versions.py
@@ -27,6 +27,7 @@ AIRFLOW_SOURCES = Path(__file__).resolve().parent.parent.parent.parent
HEADERS = ("Version", "Current Patch/Minor", "State", "First Release", "Limited Support", "EOL/Terminated")
SUPPORTED_VERSIONS = (
+ ("3", "3.0.0", "Supported", "Jan 31, 2025", "TBD", "TBD"),
("2", "2.10.5", "Supported", "Dec 17, 2020", "TBD", "TBD"),
("1.10", "1.10.15", "EOL", "Aug 27, 2018", "Dec 17, 2020", "June 17, 2021"),
("1.9", "1.9.0", "EOL", "Jan 03, 2018", "Aug 27, 2018", "Aug 27, 2018"),
(airflow) 01/06: Update default branches for 3-0
Posted by je...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
jedcunningham pushed a commit to branch v3-0-test
in repository https://gitbox.apache.org/repos/asf/airflow.git
commit 6956e9a7a160339600dfe8387dd6c32cb11bc909
Author: utkarsh sharma <ut...@gmail.com>
AuthorDate: Fri Jan 31 14:33:25 2025 +0530
Update default branches for 3-0
---
dev/breeze/src/airflow_breeze/branch_defaults.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/dev/breeze/src/airflow_breeze/branch_defaults.py b/dev/breeze/src/airflow_breeze/branch_defaults.py
index e8639d348cd..ade4fcc5d56 100644
--- a/dev/breeze/src/airflow_breeze/branch_defaults.py
+++ b/dev/breeze/src/airflow_breeze/branch_defaults.py
@@ -38,6 +38,6 @@ Examples:
from __future__ import annotations
-AIRFLOW_BRANCH = "main"
-DEFAULT_AIRFLOW_CONSTRAINTS_BRANCH = "constraints-main"
+AIRFLOW_BRANCH = "v3-0-test"
+DEFAULT_AIRFLOW_CONSTRAINTS_BRANCH = "constraints-3-0"
DEBIAN_VERSION = "bookworm"
(airflow) 06/06: Bump task-sdk version to 1.0.0.alpha4
Posted by je...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
jedcunningham pushed a commit to branch v3-0-test
in repository https://gitbox.apache.org/repos/asf/airflow.git
commit 55919dbff0da1103e64e1757091b067a20e553fa
Author: Jed Cunningham <je...@apache.org>
AuthorDate: Thu Feb 20 14:33:45 2025 -0700
Bump task-sdk version to 1.0.0.alpha4
---
task_sdk/src/airflow/sdk/__init__.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/task_sdk/src/airflow/sdk/__init__.py b/task_sdk/src/airflow/sdk/__init__.py
index 1fabbd2bd03..5b8d426926b 100644
--- a/task_sdk/src/airflow/sdk/__init__.py
+++ b/task_sdk/src/airflow/sdk/__init__.py
@@ -36,7 +36,7 @@ __all__ = [
"get_parsing_context",
]
-__version__ = "1.0.0.alpha1"
+__version__ = "1.0.0.alpha4"
if TYPE_CHECKING:
from airflow.sdk.definitions.asset import Asset, AssetWatcher
(airflow) 05/06: Bump standard provider version to 0.1.0
Posted by je...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
jedcunningham pushed a commit to branch v3-0-test
in repository https://gitbox.apache.org/repos/asf/airflow.git
commit 0ef5d273115e48444ff99659f2f121c088eda570
Author: Jed Cunningham <je...@apache.org>
AuthorDate: Fri Jan 31 16:17:33 2025 -0700
Bump standard provider version to 0.1.0
We are doing this so we can cut a 0.1.0a1, to coincide with the 3.0.0a1
release only. This version is not ending up on pypi, or going up
for a vote, at this time.
---
providers/standard/README.rst | 6 ++---
providers/standard/docs/changelog.rst | 29 ++++++++++++++++++++++
providers/standard/docs/commits.rst | 29 +++++++++++++++++++---
providers/standard/docs/index.rst | 2 +-
providers/standard/provider.yaml | 3 ++-
providers/standard/pyproject.toml | 6 ++---
.../src/airflow/providers/standard/__init__.py | 2 +-
.../providers/standard/get_provider_info.py | 4 +--
8 files changed, 66 insertions(+), 15 deletions(-)
diff --git a/providers/standard/README.rst b/providers/standard/README.rst
index 3ad4b01bd87..c29f7e57db9 100644
--- a/providers/standard/README.rst
+++ b/providers/standard/README.rst
@@ -24,7 +24,7 @@
Package ``apache-airflow-providers-standard``
-Release: ``0.0.3``
+Release: ``0.1.0``
Airflow Standard Provider
@@ -37,7 +37,7 @@ This is a provider package for ``standard`` provider. All classes for this provi
are in ``airflow.providers.standard`` python package.
You can find package information and changelog for the provider
-in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-standard/0.0.3/>`_.
+in the `documentation <https://airflow.apache.org/docs/apache-airflow-providers-standard/0.1.0/>`_.
Installation
------------
@@ -59,4 +59,4 @@ PIP package Version required
======================================= ==================
The changelog for the provider package can be found in the
-`changelog <https://airflow.apache.org/docs/apache-airflow-providers-standard/0.0.3/changelog.html>`_.
+`changelog <https://airflow.apache.org/docs/apache-airflow-providers-standard/0.1.0/changelog.html>`_.
diff --git a/providers/standard/docs/changelog.rst b/providers/standard/docs/changelog.rst
index 71a28fd94c1..5397254c0b7 100644
--- a/providers/standard/docs/changelog.rst
+++ b/providers/standard/docs/changelog.rst
@@ -35,6 +35,35 @@
Changelog
---------
+0.1.0
+.....
+
+Features
+~~~~~~~~
+
+* ``Start porting mapped task to SDK (#45627)``
+* ``AIP-72: Add support for 'get_current_context' in Task SDK (#45486)``
+* ``AIP-72: Add Taskflow API support & template rendering in Task SDK (#45444)``
+
+Bug Fixes
+~~~~~~~~~
+
+* ``Remove import from MySQL provider tests in generic transfer test (#46274)``
+* ``Fix failures on main related to DagRun validation (#45917)``
+
+Misc
+~~~~
+
+* ``move standard, alibaba and common.sql provider to the new structure (#45964)``
+* ``AIP-72: Support better type-hinting for Context dict in SDK (#45583)``
+* ``Remove code for deprecation of Context keys (#45585)``
+* ``AIP-72: Move non-user facing code to '_internal' (#45515)``
+* ``Move Literal alias into TYPE_CHECKING block (#45345)``
+* ``Remove tuple_in_condition helpers (#45201)``
+
+.. Below changes are excluded from the changelog. Move them to
+ appropriate section above if needed. Do not delete the lines(!):
+
0.0.3
.....
diff --git a/providers/standard/docs/commits.rst b/providers/standard/docs/commits.rst
index c42a3e3389d..f31e936438d 100644
--- a/providers/standard/docs/commits.rst
+++ b/providers/standard/docs/commits.rst
@@ -16,13 +16,12 @@
specific language governing permissions and limitations
under the License.
- .. NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE
- OVERWRITTEN WHEN PREPARING PACKAGES.
+ .. NOTE! THIS FILE IS AUTOMATICALLY GENERATED AND WILL BE OVERWRITTEN!
.. IF YOU WANT TO MODIFY THIS FILE, YOU SHOULD MODIFY THE TEMPLATE
`PROVIDER_COMMITS_TEMPLATE.rst.jinja2` IN the `dev/breeze/src/airflow_breeze/templates` DIRECTORY
- .. THE REMAINDER OF THE FILE IS AUTOMATICALLY GENERATED. IT WILL BE OVERWRITTEN AT RELEASE TIME!
+ .. THE REMAINDER OF THE FILE IS AUTOMATICALLY GENERATED. IT WILL BE OVERWRITTEN!
Package apache-airflow-providers-standard
------------------------------------------------------
@@ -35,14 +34,36 @@ For high-level changelog, see :doc:`package information including changelog <ind
+0.1.0
+.....
+
+Latest change: 2025-01-30
+
+================================================================================================= =========== ================================================================================
+Commit Committed Subject
+================================================================================================= =========== ================================================================================
+`b4b6de3c46 <https://github.com/apache/airflow/commit/b4b6de3c46109b4a4672462e54ccf0e0a253aece>`_ 2025-01-30 ``Remove import from MySQL provider tests in generic transfer test (#46274)``
+`29b9e8ea10 <https://github.com/apache/airflow/commit/29b9e8ea10de7a82ad40a7a2160c64a84004a45e>`_ 2025-01-25 ``move standard, alibaba and common.sql provider to the new structure (#45964)``
+`2193be2a5e <https://github.com/apache/airflow/commit/2193be2a5e53760ae00d1b85c825087e995f8eb1>`_ 2025-01-22 ``Fix failures on main related to DagRun validation (#45917)``
+`d1b2a44653 <https://github.com/apache/airflow/commit/d1b2a4465387e9414e6c15f8df85591136a7784b>`_ 2025-01-21 ``Start porting mapped task to SDK (#45627)``
+`f616c62209 <https://github.com/apache/airflow/commit/f616c62209d6b51d293ecf6f5c900f89a7fdc3a3>`_ 2025-01-15 ``AIP-72: Support better type-hinting for Context dict in SDK (#45583)``
+`5597bb2961 <https://github.com/apache/airflow/commit/5597bb296106648fda48c768814f5ae6f3eb7a53>`_ 2025-01-12 ``Remove code for deprecation of Context keys (#45585)``
+`521410f03c <https://github.com/apache/airflow/commit/521410f03cbe776a0fa1f96a5b572a17908cc327>`_ 2025-01-09 ``AIP-72: Move non-user facing code to '_internal' (#45515)``
+`04806231e4 <https://github.com/apache/airflow/commit/04806231e4411f37faa3d97f7b9e9fe2c0409303>`_ 2025-01-09 ``AIP-72: Add support for 'get_current_context' in Task SDK (#45486)``
+`b703d53b77 <https://github.com/apache/airflow/commit/b703d53b774960326b8d91963304bac3ca5d533c>`_ 2025-01-09 ``Move Literal alias into TYPE_CHECKING block (#45345)``
+`b2a244bb13 <https://github.com/apache/airflow/commit/b2a244bb1353ca072f15371fa317396486466071>`_ 2025-01-07 ``AIP-72: Add Taskflow API support & template rendering in Task SDK (#45444)``
+`3873230a11 <https://github.com/apache/airflow/commit/3873230a11de8b9cc24d012ecdfe6848bc6ae0cf>`_ 2024-12-26 ``Remove tuple_in_condition helpers (#45201)``
+================================================================================================= =========== ================================================================================
+
0.0.3
.....
-Latest change: 2024-12-18
+Latest change: 2024-12-20
================================================================================================= =========== ============================================================================================
Commit Committed Subject
================================================================================================= =========== ============================================================================================
+`2723508345 <https://github.com/apache/airflow/commit/2723508345d5cf074aeb673955ce72996785f2bc>`_ 2024-12-20 ``Prepare docs for Nov 1st wave of providers Dec 2024 (#45042)``
`2a33da0246 <https://github.com/apache/airflow/commit/2a33da0246c811a98d5cdaf0af2bcca0dee8556a>`_ 2024-12-18 ``Remove references to AIRFLOW_V_2_9_PLUS (#44987)``
`4b38bed76c <https://github.com/apache/airflow/commit/4b38bed76c1ea5fe84a6bc678ce87e20d563adc0>`_ 2024-12-16 ``Bump min version of Providers to 2.9 (#44956)``
`8af1bbdf25 <https://github.com/apache/airflow/commit/8af1bbdf25e2650e617d456f729d1d4f46465524>`_ 2024-12-12 ``Remove Pydanitc models introduced for AIP-44 (#44552)``
diff --git a/providers/standard/docs/index.rst b/providers/standard/docs/index.rst
index e742d292b96..e15aa05d733 100644
--- a/providers/standard/docs/index.rst
+++ b/providers/standard/docs/index.rst
@@ -66,7 +66,7 @@ apache-airflow-providers-standard package
Airflow Standard Provider
-Release: 0.0.3
+Release: 0.1.0
Provider package
----------------
diff --git a/providers/standard/provider.yaml b/providers/standard/provider.yaml
index b0e79dbf124..b1da4e1723e 100644
--- a/providers/standard/provider.yaml
+++ b/providers/standard/provider.yaml
@@ -21,9 +21,10 @@ name: Standard
description: |
Airflow Standard Provider
state: ready
-source-date-epoch: 1734536895
+source-date-epoch: 1738365402
# note that those versions are maintained by release manager - do not update them manually
versions:
+ - 0.1.0
- 0.0.3
- 0.0.2
- 0.0.1
diff --git a/providers/standard/pyproject.toml b/providers/standard/pyproject.toml
index 1d888d7c1f7..4be7489c290 100644
--- a/providers/standard/pyproject.toml
+++ b/providers/standard/pyproject.toml
@@ -25,7 +25,7 @@ build-backend = "flit_core.buildapi"
[project]
name = "apache-airflow-providers-standard"
-version = "0.0.3"
+version = "0.1.0"
description = "Provider package apache-airflow-providers-standard for Apache Airflow"
readme = "README.rst"
authors = [
@@ -60,8 +60,8 @@ dependencies = [
]
[project.urls]
-"Documentation" = "https://airflow.apache.org/docs/apache-airflow-providers-standard/0.0.3"
-"Changelog" = "https://airflow.apache.org/docs/apache-airflow-providers-standard/0.0.3/changelog.html"
+"Documentation" = "https://airflow.apache.org/docs/apache-airflow-providers-standard/0.1.0"
+"Changelog" = "https://airflow.apache.org/docs/apache-airflow-providers-standard/0.1.0/changelog.html"
"Bug Tracker" = "https://github.com/apache/airflow/issues"
"Source Code" = "https://github.com/apache/airflow"
"Slack Chat" = "https://s.apache.org/airflow-slack"
diff --git a/providers/standard/src/airflow/providers/standard/__init__.py b/providers/standard/src/airflow/providers/standard/__init__.py
index 3fd5eb32418..2eb070c9f28 100644
--- a/providers/standard/src/airflow/providers/standard/__init__.py
+++ b/providers/standard/src/airflow/providers/standard/__init__.py
@@ -29,7 +29,7 @@ from airflow import __version__ as airflow_version
__all__ = ["__version__"]
-__version__ = "0.0.3"
+__version__ = "0.1.0"
if packaging.version.parse(packaging.version.parse(airflow_version).base_version) < packaging.version.parse(
"2.9.0"
diff --git a/providers/standard/src/airflow/providers/standard/get_provider_info.py b/providers/standard/src/airflow/providers/standard/get_provider_info.py
index 2c510fc7029..344a9eced9a 100644
--- a/providers/standard/src/airflow/providers/standard/get_provider_info.py
+++ b/providers/standard/src/airflow/providers/standard/get_provider_info.py
@@ -27,8 +27,8 @@ def get_provider_info():
"name": "Standard",
"description": "Airflow Standard Provider\n",
"state": "ready",
- "source-date-epoch": 1734536895,
- "versions": ["0.0.3", "0.0.2", "0.0.1"],
+ "source-date-epoch": 1738365402,
+ "versions": ["0.1.0", "0.0.3", "0.0.2", "0.0.1"],
"integrations": [
{
"integration-name": "Standard",
(airflow) 03/06: Update RELEASE_NOTES.rst
Posted by je...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
jedcunningham pushed a commit to branch v3-0-test
in repository https://gitbox.apache.org/repos/asf/airflow.git
commit b827d8358966dd5d5456e14016716d473b161525
Author: Jed Cunningham <je...@apache.org>
AuthorDate: Thu Feb 20 14:34:47 2025 -0700
Update RELEASE_NOTES.rst
---
RELEASE_NOTES.rst | 96 +++++++++++++++++++++++++++++++++++++++++
airflow/reproducible_build.yaml | 4 +-
docs/spelling_wordlist.txt | 2 +
3 files changed, 100 insertions(+), 2 deletions(-)
diff --git a/RELEASE_NOTES.rst b/RELEASE_NOTES.rst
index 780e33ee8e4..171049b4455 100644
--- a/RELEASE_NOTES.rst
+++ b/RELEASE_NOTES.rst
@@ -21,6 +21,102 @@
.. towncrier release notes start
+Airflow 3.0.0alpha4 (2025-02-20)
+--------------------------------
+
+Airflow 3.0 is a huge milestone for the Airflow project; the first major release in over four years, and brings
+great improvements to the entire community.
+
+Highly requested UX features
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+DAG Versioning
+""""""""""""""
+
+Airflow now tracks DAG versions, providing better visibility into DAG changes over time. This enables users to view
+historical DAG run information, inspect historical DAG structures associated with that historical DAG run and execution states.
+
+Airflow now introduces DAG Bundles which allow tasks run with the correct code version even when DAGs evolve. Airflow also now
+supports the sourcing of these DAG bundles from multiple locations which enables more efficient DAG parsing and better control over refresh behaviour.
+
+Collectively, these improve observability and reliability across workflows.
+
+Modern Web Application
+""""""""""""""""""""""
+
+The Airflow UI is now completely React-based and fully API-driven using a new UI REST API.
+This overhaul improves user experience, maintainability and is a foundation for extensibility. Key feature enhancements include a new component-based design system
+(with dark mode) and an improved information architecture.
+
+We have also removed Flask AppBuilder as a core dependency. However, since FAB remains widely used for authentication and custom plugins,
+we have retained backwards compatibility for FAB plugins to ensure a smooth transition for users, while setting the stage for its eventual removal.
+
+Additionally, we have introduced a new flexible React-based plugin system to allow:
+- Custom widgets and information panels within the Grid View
+- Enhanced visibility of business-specific workflow details
+- Seamless integration of Airflow UI with external reporting tools like Grafana or Power BI
+
+Scheduler-managed Backfills
+"""""""""""""""""""""""""""
+
+In Airflow 3.0, Backfills are now first-class citizens, directly integrated into the Airflow scheduler. This enables better
+scalability, diagnostics, and support through the UI / API. This also eliminated redundancy in the scheduling logic, making Airflow more maintainable.
+
+Airflow 3.0 enables Tasks to be Run anywhere, at any time, in any language
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Task Execution Interface
+""""""""""""""""""""""""
+
+The Task Execution Interface evolves Airflow into a client / server architecture to enable easier upgrades, multi-cloud deployments, and multi-language support.
+This decouples task execution from Airflow internals, eliminating direct interaction from tasks with the Airflow metadatabase. These interactions
+now go through an API, which enables remote execution across network boundaries. This API based interaction also enables multi-language support
+for task execution while keeping DAGs in Python.
+Furthermore, this enhances security and scalability, reducing conflicts in dependency management.
+
+Edge Executor (Remote Task Execution)
+"""""""""""""""""""""""""""""""""""""
+
+The Edge Executor, designed for remote task execution across network boundaries is now based on the Task Execution Interface above.
+This enables seamless execution of tasks in remote environments without requiring direct database or message broker connections,
+making Airflow more scalable across diverse infrastructures.
+
+Data Assets and Event Driven Scheduling
+"""""""""""""""""""""""""""""""""""""""
+
+Airflow is evolving to be a more integrated part of the entire data ecosystem, in better understanding the data it
+operates on and to trigger DAGs based on changes in the surrounding data ecosystem.
+
+Asset-Centric Syntax
+""""""""""""""""""""
+
+Airflow evolution of Datasets into Data Assets enables it to better understand the data it orchestrates. Airflow 3 introduces
+the concept of Data Assets which go beyond physical Datasets such as tables and files to now expand to ML models, etc.
+Airflow 3 enables explicit definition of asset dependencies, making them easier to track and manage. The introduction of the
+@asset decorator streamlines defining assets within DAGs and clarifies dependency chains.
+
+
+External Event-Driven Scheduling in Airflow
+""""""""""""""""""""""""""""""""""""""""""""
+Airflow 3 introduces native event-driven capabilities, allowing DAGs to be triggered by external events like message queues.
+It builds on existing dataset-based scheduling (now referred to as Data Assets) and enhances monitoring, execution efficiency,
+and API support for event-based workflows.
+
+Enhanced Security in CLI via Integration of API
+"""""""""""""""""""""""""""""""""""""""""""""""
+
+Airflow 3 improves the security of Airflow and reduces the maintenance burden by having the CLI use the Airflow APIs
+(now significantly enhanced as detailed above). Evolving to have all access go through the APIs instead of direct database access
+is an important evolution for Airflow. This simplifies CLI deployment, reduces redundancy, and improves maintainability.
+
+Inference execution and hyper-parameter turning
+""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+
+Airflow currently uses execution_date to identify DAG runs, which introduces limitations, especially for dynamic workflows.
+In Airflow 3, execution_date has been renamed to logical_date and the constraint has selectively been removed to enable DAG
+execution for inference runs to be more intuitive and scalable.
+
+
Airflow 2.10.5 (2025-02-10)
---------------------------
diff --git a/airflow/reproducible_build.yaml b/airflow/reproducible_build.yaml
index 0db388d56b9..41c3db6b376 100644
--- a/airflow/reproducible_build.yaml
+++ b/airflow/reproducible_build.yaml
@@ -1,2 +1,2 @@
-release-notes-hash: 8c02811625ac7262d5ce34eb4cd7c5b0
-source-date-epoch: 1739197544
+release-notes-hash: e8b6ebedaa6a5c6edbc77fc8ccb4b3f2
+source-date-epoch: 1740087049
diff --git a/docs/spelling_wordlist.txt b/docs/spelling_wordlist.txt
index 2f7a408bb1a..57de66244a6 100644
--- a/docs/spelling_wordlist.txt
+++ b/docs/spelling_wordlist.txt
@@ -741,6 +741,7 @@ googleapiclient
GoogleDisplayVideo
gpu
gpus
+Grafana
graphviz
greenlet
Groupalia
@@ -1414,6 +1415,7 @@ RefreshError
regexes
reidentify
ReidentifyContentResponse
+reimagined
reinit
Reinitialising
reinitialization