This is an automated email from the ASF dual-hosted git repository.
github-bot pushed a change to branch
dependabot/npm_and_yarn/providers/edge3/src/airflow/providers/edge3/plugins/www/edge-ui-package-updates-ad640cb911
in repository https://gitbox.apache.org/repos/asf/airflow.git
omit 37a2bd4e673 Bump eslint-plugin-react-refresh
add dcb40503d4f Fix ModuleNotFoundError in kubernetes cleanup cronjob
(#61673)
add f139d6b16eb Specify the mypy hook as part of the error message (#61712)
add c36678f9a5a Add XCom serilizer for pendulum.date.Date (#61176)
add 4ce8fc40a46 Bump rich-click>=1.9.7 (#61708)
add 4b4e66de0d3 add missing variables (#61723)
add 0085ca619c9 Add Google Cloud Ray Job integration (#59558)
add 615a488163b Handle HTTP 422 responses bypass to _process_response
instead of raising immediately in Snowflake SQL API hook (#60891)
add 5a4a8be24eb Add max_mails parameter to attachment methods in IMAP hook
(#60963)
add 05b4793138e Refresh uv.lock in breeze (#61690)
add 6acc7de653a Add best-effort cleanup to EcsRunTaskOperator on
post-start failure (#61051)
add a5d343d37ce Cleanup Cassandra driver dependencies (#61724)
add 19c1a16dc8b Use SQLA's native Uuid/JSON instead of sqlalchemy-utils'
types (#61532)
add 197edfd873a Fix list dag versions permissions (#61675)
add 6ca21bfbad9 Add best-effort cleanup to EksCreateNodegroupOperator on
post-create failure (#61145)
add 23fd39b8c3a Support string update_mask in
FABAuthManagerRoles.patch_role (#61507)
add ca1640acdf3 Move exception handling from Google Bigtable operators to
hooks (#61124)
add e5ef1d0b122 Fix 500 Internal Server Error when JWT user does not exist
in FabAuth… (#61517)
add ff33e4f26e0 Fix Redis import race condition in Celery executor (#61362)
add 0df2f594140 Add best-effort cleanup to EmrCreateJobFlowOperator on
post-creation failure (#61010)
add 602c9976ff8 Use TaskFormatter for Celery log formatting instead of
default Formatter (#61701)
add 8396957b1f6 Add resume_glue_job_on_retry to GlueJobOperator (#59392)
add a239e43a58c Bump eslint-plugin-react-refresh
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 (37a2bd4e673)
\
N -- N -- N
refs/heads/dependabot/npm_and_yarn/providers/edge3/src/airflow/providers/edge3/plugins/www/edge-ui-package-updates-ad640cb911
(a239e43a58c)
You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.
Any revisions marked "omit" are not gone; other references still
refer to them. Any revisions marked "discard" are gone forever.
No new revisions were added by this update.
Summary of changes:
airflow-core/docs/img/airflow_erd.sha256 | 2 +-
airflow-core/docs/img/airflow_erd.svg | 1670 ++++++++++----------
airflow-core/docs/migrations-ref.rst | 4 +-
airflow-core/pyproject.toml | 1 -
.../core_api/datamodels/task_instances.py | 3 +-
.../api_fastapi/core_api/openapi/_private_ui.yaml | 1 +
.../core_api/openapi/v2-rest-api-generated.yaml | 1 +
.../core_api/routes/public/dag_versions.py | 8 +-
.../src/airflow/api_fastapi/core_api/security.py | 11 +
.../src/airflow/api_fastapi/execution_api/deps.py | 2 +-
.../api_fastapi/execution_api/routes/hitl.py | 13 +-
.../execution_api/routes/task_instances.py | 74 +-
.../execution_api/routes/task_reschedules.py | 2 +-
.../src/airflow/jobs/scheduler_job_runner.py | 12 +-
.../versions/0047_3_0_0_add_dag_versioning.py | 17 +-
.../0052_3_0_0_add_deadline_alerts_table.py | 3 +-
.../0068_3_0_0_ti_table_id_unique_per_try.py | 9 +-
...d_url_and_template_params_to_dagbundle_model.py | 3 +-
.../migrations/versions/0083_3_1_0_add_teams.py | 11 +-
.../0091_3_2_0_restructure_callback_table.py | 3 +-
...0_replace_deadline_inline_callback_with_fkey.py | 19 +-
.../0099_3_2_0_ui_improvements_for_deadlines.py | 7 +-
.../versions/0103_3_2_0_fix_uuid_column_types.py | 276 ++++
airflow-core/src/airflow/models/callback.py | 6 +-
airflow-core/src/airflow/models/dag_version.py | 5 +-
airflow-core/src/airflow/models/dagbag.py | 5 +-
airflow-core/src/airflow/models/dagbundle.py | 4 +-
airflow-core/src/airflow/models/dagcode.py | 9 +-
airflow-core/src/airflow/models/dagrun.py | 25 +-
airflow-core/src/airflow/models/deadline.py | 16 +-
airflow-core/src/airflow/models/deadline_alert.py | 17 +-
airflow-core/src/airflow/models/hitl.py | 8 +-
airflow-core/src/airflow/models/hitl_history.py | 8 +-
airflow-core/src/airflow/models/serialized_dag.py | 15 +-
airflow-core/src/airflow/models/taskinstance.py | 28 +-
.../src/airflow/models/taskinstancehistory.py | 11 +-
airflow-core/src/airflow/models/taskreschedule.py | 13 +-
.../airflow/ui/openapi-gen/requests/schemas.gen.ts | 1 +
airflow-core/src/airflow/utils/db.py | 2 +-
.../tests/unit/always/test_project_structure.py | 1 +
.../api_fastapi/common/test_uuid_serialization.py | 49 +
.../core_api/routes/public/test_dag_versions.py | 26 +-
.../core_api/routes/public/test_hitl.py | 2 +-
.../api_fastapi/core_api/routes/public/test_log.py | 4 +-
.../execution_api/versions/head/test_hitl.py | 10 +-
.../versions/head/test_task_instances.py | 10 +-
airflow-core/tests/unit/jobs/test_scheduler_job.py | 18 +-
airflow-core/tests/unit/models/test_dagrun.py | 4 +-
.../tests/unit/models/test_taskinstance.py | 4 +-
.../src/airflowctl/api/datamodels/generated.py | 2 +-
dev/breeze/doc/images/output-commands.svg | 200 +--
dev/breeze/doc/images/output_build-docs.svg | 70 +-
dev/breeze/doc/images/output_build-docs.txt | 2 +-
dev/breeze/doc/images/output_ci-image.txt | 2 +-
dev/breeze/doc/images/output_ci-image_build.svg | 188 +--
dev/breeze/doc/images/output_ci-image_build.txt | 2 +-
.../images/output_ci-image_export-mount-cache.svg | 10 +-
.../images/output_ci-image_export-mount-cache.txt | 2 +-
.../images/output_ci-image_import-mount-cache.svg | 10 +-
.../images/output_ci-image_import-mount-cache.txt | 2 +-
dev/breeze/doc/images/output_ci-image_load.svg | 68 +-
dev/breeze/doc/images/output_ci-image_load.txt | 2 +-
dev/breeze/doc/images/output_ci-image_pull.svg | 52 +-
dev/breeze/doc/images/output_ci-image_pull.txt | 2 +-
dev/breeze/doc/images/output_ci-image_save.svg | 16 +-
dev/breeze/doc/images/output_ci-image_save.txt | 2 +-
dev/breeze/doc/images/output_ci-image_verify.svg | 54 +-
dev/breeze/doc/images/output_ci-image_verify.txt | 2 +-
dev/breeze/doc/images/output_ci.txt | 2 +-
dev/breeze/doc/images/output_ci_fix-ownership.svg | 4 +-
dev/breeze/doc/images/output_ci_fix-ownership.txt | 2 +-
dev/breeze/doc/images/output_ci_free-space.svg | 4 +-
dev/breeze/doc/images/output_ci_free-space.txt | 2 +-
.../doc/images/output_ci_get-workflow-info.svg | 4 +-
.../doc/images/output_ci_get-workflow-info.txt | 2 +-
dev/breeze/doc/images/output_ci_resource-check.svg | 2 +-
dev/breeze/doc/images/output_ci_resource-check.txt | 2 +-
.../doc/images/output_ci_selective-check.svg | 44 +-
.../doc/images/output_ci_selective-check.txt | 2 +-
dev/breeze/doc/images/output_ci_upgrade.svg | 16 +-
dev/breeze/doc/images/output_ci_upgrade.txt | 2 +-
dev/breeze/doc/images/output_cleanup.svg | 6 +-
dev/breeze/doc/images/output_cleanup.txt | 2 +-
dev/breeze/doc/images/output_doctor.svg | 4 +-
dev/breeze/doc/images/output_doctor.txt | 2 +-
dev/breeze/doc/images/output_down.svg | 6 +-
dev/breeze/doc/images/output_down.txt | 2 +-
dev/breeze/doc/images/output_exec.svg | 2 +-
dev/breeze/doc/images/output_exec.txt | 2 +-
.../doc/images/output_generate-migration-file.svg | 6 +-
.../doc/images/output_generate-migration-file.txt | 2 +-
dev/breeze/doc/images/output_k8s.txt | 2 +-
.../doc/images/output_k8s_build-k8s-image.svg | 60 +-
.../doc/images/output_k8s_build-k8s-image.txt | 2 +-
.../doc/images/output_k8s_configure-cluster.svg | 62 +-
.../doc/images/output_k8s_configure-cluster.txt | 2 +-
.../doc/images/output_k8s_create-cluster.svg | 68 +-
.../doc/images/output_k8s_create-cluster.txt | 2 +-
.../doc/images/output_k8s_delete-cluster.svg | 32 +-
.../doc/images/output_k8s_delete-cluster.txt | 2 +-
.../doc/images/output_k8s_deploy-airflow.svg | 86 +-
.../doc/images/output_k8s_deploy-airflow.txt | 2 +-
dev/breeze/doc/images/output_k8s_dev.svg | 64 +-
dev/breeze/doc/images/output_k8s_dev.txt | 2 +-
dev/breeze/doc/images/output_k8s_k9s.svg | 32 +-
dev/breeze/doc/images/output_k8s_k9s.txt | 2 +-
dev/breeze/doc/images/output_k8s_logs.svg | 32 +-
dev/breeze/doc/images/output_k8s_logs.txt | 2 +-
.../doc/images/output_k8s_run-complete-tests.svg | 90 +-
.../doc/images/output_k8s_run-complete-tests.txt | 2 +-
dev/breeze/doc/images/output_k8s_setup-env.svg | 4 +-
dev/breeze/doc/images/output_k8s_setup-env.txt | 2 +-
dev/breeze/doc/images/output_k8s_shell.svg | 44 +-
dev/breeze/doc/images/output_k8s_shell.txt | 2 +-
dev/breeze/doc/images/output_k8s_status.svg | 38 +-
dev/breeze/doc/images/output_k8s_status.txt | 2 +-
dev/breeze/doc/images/output_k8s_tests.svg | 74 +-
dev/breeze/doc/images/output_k8s_tests.txt | 2 +-
.../doc/images/output_k8s_upload-k8s-image.svg | 58 +-
.../doc/images/output_k8s_upload-k8s-image.txt | 2 +-
dev/breeze/doc/images/output_prod-image.txt | 2 +-
dev/breeze/doc/images/output_prod-image_build.svg | 230 ++-
dev/breeze/doc/images/output_prod-image_build.txt | 2 +-
dev/breeze/doc/images/output_prod-image_load.svg | 56 +-
dev/breeze/doc/images/output_prod-image_load.txt | 2 +-
dev/breeze/doc/images/output_prod-image_pull.svg | 52 +-
dev/breeze/doc/images/output_prod-image_pull.txt | 2 +-
dev/breeze/doc/images/output_prod-image_save.svg | 16 +-
dev/breeze/doc/images/output_prod-image_save.txt | 2 +-
dev/breeze/doc/images/output_prod-image_verify.svg | 58 +-
dev/breeze/doc/images/output_prod-image_verify.txt | 2 +-
.../doc/images/output_release-management.txt | 2 +-
...tput_release-management_add-back-references.svg | 14 +-
...tput_release-management_add-back-references.txt | 2 +-
...tput_release-management_check-release-files.svg | 50 +-
...tput_release-management_check-release-files.txt | 2 +-
...ase-management_clean-old-provider-artifacts.svg | 8 +-
...ase-management_clean-old-provider-artifacts.txt | 2 +-
...elease-management_constraints-version-check.svg | 54 +-
...elease-management_constraints-version-check.txt | 2 +-
...tput_release-management_create-minor-branch.svg | 10 +-
...tput_release-management_create-minor-branch.txt | 2 +-
...put_release-management_generate-constraints.svg | 56 +-
...put_release-management_generate-constraints.txt | 2 +-
...ease-management_generate-issue-content-core.svg | 34 +-
...ease-management_generate-issue-content-core.txt | 2 +-
...anagement_generate-issue-content-helm-chart.svg | 34 +-
...anagement_generate-issue-content-helm-chart.txt | 2 +-
...management_generate-issue-content-providers.svg | 30 +-
...management_generate-issue-content-providers.txt | 2 +-
...ease-management_generate-providers-metadata.svg | 60 +-
...ease-management_generate-providers-metadata.txt | 2 +-
...e-management_install-provider-distributions.svg | 180 +--
...e-management_install-provider-distributions.txt | 2 +-
...output_release-management_merge-prod-images.svg | 60 +-
...output_release-management_merge-prod-images.txt | 2 +-
...anagement_prepare-airflow-ctl-distributions.svg | 12 +-
...anagement_prepare-airflow-ctl-distributions.txt | 2 +-
...se-management_prepare-airflow-distributions.svg | 12 +-
...se-management_prepare-airflow-distributions.txt | 2 +-
...lease-management_prepare-helm-chart-package.svg | 28 +-
...lease-management_prepare-helm-chart-package.txt | 2 +-
...lease-management_prepare-helm-chart-tarball.svg | 52 +-
...lease-management_prepare-helm-chart-tarball.txt | 2 +-
...e-management_prepare-provider-distributions.svg | 54 +-
...e-management_prepare-provider-distributions.txt | 2 +-
...e-management_prepare-provider-documentation.svg | 84 +-
...e-management_prepare-provider-documentation.txt | 2 +-
...ut_release-management_prepare-python-client.svg | 42 +-
...ut_release-management_prepare-python-client.txt | 2 +-
.../output_release-management_prepare-tarball.svg | 46 +-
.../output_release-management_prepare-tarball.txt | 2 +-
...e-management_prepare-task-sdk-distributions.svg | 12 +-
...e-management_prepare-task-sdk-distributions.txt | 2 +-
...utput_release-management_publish-docs-to-s3.svg | 50 +-
...utput_release-management_publish-docs-to-s3.txt | 2 +-
.../output_release-management_publish-docs.svg | 52 +-
.../output_release-management_publish-docs.txt | 2 +-
...tput_release-management_release-prod-images.svg | 72 +-
...tput_release-management_release-prod-images.txt | 2 +-
.../output_release-management_start-rc-process.svg | 20 +-
.../output_release-management_start-rc-process.txt | 2 +-
.../output_release-management_start-release.svg | 12 +-
.../output_release-management_start-release.txt | 2 +-
.../output_release-management_tag-providers.svg | 34 +-
.../output_release-management_tag-providers.txt | 2 +-
...utput_release-management_update-constraints.svg | 64 +-
...utput_release-management_update-constraints.txt | 2 +-
...se-management_update-providers-next-version.svg | 2 +-
...se-management_update-providers-next-version.txt | 2 +-
...se-management_verify-provider-distributions.svg | 160 +-
...se-management_verify-provider-distributions.txt | 2 +-
.../output_release-management_verify-rc-by-pmc.svg | 50 +-
.../output_release-management_verify-rc-by-pmc.txt | 2 +-
dev/breeze/doc/images/output_run.svg | 104 +-
dev/breeze/doc/images/output_run.txt | 2 +-
dev/breeze/doc/images/output_sbom.txt | 2 +-
.../output_sbom_build-all-airflow-images.svg | 48 +-
.../output_sbom_build-all-airflow-images.txt | 2 +-
.../output_sbom_export-dependency-information.svg | 66 +-
.../output_sbom_export-dependency-information.txt | 2 +-
...output_sbom_generate-providers-requirements.svg | 88 +-
...output_sbom_generate-providers-requirements.txt | 2 +-
.../images/output_sbom_update-sbom-information.svg | 106 +-
.../images/output_sbom_update-sbom-information.txt | 2 +-
dev/breeze/doc/images/output_setup.txt | 2 +-
.../doc/images/output_setup_autocomplete.svg | 4 +-
.../doc/images/output_setup_autocomplete.txt | 2 +-
.../output_setup_check-all-params-in-groups.svg | 94 +-
.../output_setup_check-all-params-in-groups.txt | 2 +-
dev/breeze/doc/images/output_setup_config.svg | 52 +-
dev/breeze/doc/images/output_setup_config.txt | 2 +-
.../output_setup_regenerate-command-images.svg | 78 +-
.../output_setup_regenerate-command-images.txt | 2 +-
.../doc/images/output_setup_self-upgrade.txt | 2 +-
.../output_setup_synchronize-local-mounts.svg | 2 +-
.../output_setup_synchronize-local-mounts.txt | 2 +-
dev/breeze/doc/images/output_setup_version.svg | 2 +-
dev/breeze/doc/images/output_setup_version.txt | 2 +-
dev/breeze/doc/images/output_shell.svg | 406 ++---
dev/breeze/doc/images/output_shell.txt | 2 +-
dev/breeze/doc/images/output_start-airflow.svg | 344 ++--
dev/breeze/doc/images/output_start-airflow.txt | 2 +-
dev/breeze/doc/images/output_testing.txt | 2 +-
...utput_testing_airflow-ctl-integration-tests.svg | 40 +-
...utput_testing_airflow-ctl-integration-tests.txt | 2 +-
.../images/output_testing_airflow-ctl-tests.svg | 10 +-
.../images/output_testing_airflow-ctl-tests.txt | 2 +-
.../images/output_testing_airflow-e2e-tests.svg | 38 +-
.../images/output_testing_airflow-e2e-tests.txt | 2 +-
.../output_testing_core-integration-tests.svg | 100 +-
.../output_testing_core-integration-tests.txt | 2 +-
.../doc/images/output_testing_core-tests.svg | 246 ++-
.../doc/images/output_testing_core-tests.txt | 2 +-
.../images/output_testing_docker-compose-tests.svg | 36 +-
.../images/output_testing_docker-compose-tests.txt | 2 +-
.../doc/images/output_testing_helm-tests.svg | 60 +-
.../doc/images/output_testing_helm-tests.txt | 2 +-
.../output_testing_providers-integration-tests.svg | 104 +-
.../output_testing_providers-integration-tests.txt | 2 +-
.../doc/images/output_testing_providers-tests.svg | 268 ++--
.../doc/images/output_testing_providers-tests.txt | 2 +-
.../output_testing_python-api-client-tests.svg | 80 +-
.../output_testing_python-api-client-tests.txt | 2 +-
.../doc/images/output_testing_system-tests.svg | 162 +-
.../doc/images/output_testing_system-tests.txt | 2 +-
.../output_testing_task-sdk-integration-tests.svg | 50 +-
.../output_testing_task-sdk-integration-tests.txt | 2 +-
.../doc/images/output_testing_task-sdk-tests.svg | 68 +-
.../doc/images/output_testing_task-sdk-tests.txt | 2 +-
.../doc/images/output_testing_ui-e2e-tests.svg | 34 +-
.../doc/images/output_testing_ui-e2e-tests.txt | 2 +-
dev/breeze/doc/images/output_ui.txt | 2 +-
.../output_ui_check-translation-completeness.svg | 6 +-
.../output_ui_check-translation-completeness.txt | 2 +-
dev/breeze/doc/images/output_ui_compile-assets.svg | 8 +-
dev/breeze/doc/images/output_ui_compile-assets.txt | 2 +-
dev/breeze/doc/images/output_workflow-run.txt | 2 +-
.../images/output_workflow-run_publish-docs.svg | 72 +-
.../images/output_workflow-run_publish-docs.txt | 2 +-
dev/breeze/pyproject.toml | 4 +-
dev/breeze/src/airflow_breeze/utils/recording.py | 7 +-
dev/breeze/uv.lock | 11 +-
dev/prepare_bulk_issues.py | 2 +-
dev/pyproject.toml | 2 +-
devel-common/pyproject.toml | 4 +-
.../src/tests_common/test_utils/api_fastapi.py | 3 +
docs/spelling_wordlist.txt | 1 +
.../airflow/providers/amazon/aws/operators/ecs.py | 132 +-
.../airflow/providers/amazon/aws/operators/eks.py | 65 +-
.../airflow/providers/amazon/aws/operators/emr.py | 120 +-
.../airflow/providers/amazon/aws/operators/glue.py | 33 +-
.../tests/unit/amazon/aws/operators/test_ecs.py | 92 ++
.../tests/unit/amazon/aws/operators/test_eks.py | 89 +-
.../aws/operators/test_emr_create_job_flow.py | 76 +
.../tests/unit/amazon/aws/operators/test_glue.py | 101 ++
providers/apache/cassandra/docs/index.rst | 9 +-
providers/apache/cassandra/pyproject.toml | 5 +-
.../airflow/providers/celery/cli/celery_command.py | 3 +-
.../celery/executors/celery_executor_utils.py | 17 +
.../tests/unit/celery/cli/test_celery_command.py | 52 +
.../cncf/kubernetes/cli/kubernetes_command.py | 8 +-
.../fab/auth_manager/api_fastapi/services/roles.py | 3 +-
.../providers/fab/auth_manager/fab_auth_manager.py | 6 +-
.../api_fastapi/services/test_roles.py | 4 +-
.../unit/fab/auth_manager/test_fab_auth_manager.py | 20 +
providers/google/docs/operators/cloud/ray.rst | 90 ++
providers/google/provider.yaml | 12 +
.../providers/google/cloud/hooks/bigtable.py | 24 +-
.../airflow/providers/google/cloud/hooks/ray.py | 234 +++
.../airflow/providers/google/cloud/links/ray.py} | 27 +-
.../providers/google/cloud/operators/bigtable.py | 88 +-
.../providers/google/cloud/operators/ray.py | 449 ++++++
.../airflow/providers/google/get_provider_info.py | 15 +
.../tests/system/google/cloud/ray}/__init__.py | 0
.../example_ray_job.py} | 125 +-
.../system/google/cloud/ray/resources}/__init__.py | 0
.../system/google/cloud/ray/resources/heavy.py | 44 +-
.../tests/unit/google/cloud/hooks/test_bigtable.py | 47 +
.../tests/unit/google/cloud/hooks/test_ray.py | 160 ++
.../tests/unit/google/cloud/links/test_ray.py | 55 +
.../unit/google/cloud/operators/test_bigtable.py | 38 +-
.../tests/unit/google/cloud/operators/test_ray.py | 334 ++++
.../imap/src/airflow/providers/imap/hooks/imap.py | 41 +-
providers/imap/tests/unit/imap/hooks/test_imap.py | 51 +
.../unit/openlineage/plugins/test_listener.py | 3 +-
.../providers/snowflake/hooks/snowflake_sql_api.py | 13 +-
.../unit/snowflake/hooks/test_snowflake_sql_api.py | 142 +-
.../tests/unit/standard/operators/test_hitl.py | 2 +-
scripts/ci/prek/mypy_folder.py | 4 +-
.../src/airflow/sdk/serde/serializers/datetime.py | 13 +-
task-sdk/tests/task_sdk/serde/test_serializers.py | 5 +-
312 files changed, 6596 insertions(+), 5110 deletions(-)
create mode 100644
airflow-core/src/airflow/migrations/versions/0103_3_2_0_fix_uuid_column_types.py
create mode 100644
airflow-core/tests/unit/api_fastapi/common/test_uuid_serialization.py
create mode 100644 providers/google/docs/operators/cloud/ray.rst
create mode 100644
providers/google/src/airflow/providers/google/cloud/hooks/ray.py
copy providers/{standard/src/airflow/providers/standard/operators/smooth.py =>
google/src/airflow/providers/google/cloud/links/ray.py} (59%)
create mode 100644
providers/google/src/airflow/providers/google/cloud/operators/ray.py
copy {airflow-core/src/airflow/_shared =>
providers/google/tests/system/google/cloud/ray}/__init__.py (100%)
copy
providers/google/tests/system/google/cloud/{vertex_ai/example_vertex_ai_ray.py
=> ray/example_ray_job.py} (54%)
copy {airflow-core/src/airflow/_shared =>
providers/google/tests/system/google/cloud/ray/resources}/__init__.py (100%)
copy shared/listeners/src/airflow_shared/listeners/spec/lifecycle.py =>
providers/google/tests/system/google/cloud/ray/resources/heavy.py (52%)
create mode 100644 providers/google/tests/unit/google/cloud/hooks/test_ray.py
create mode 100644 providers/google/tests/unit/google/cloud/links/test_ray.py
create mode 100644
providers/google/tests/unit/google/cloud/operators/test_ray.py