This is an automated email from the ASF dual-hosted git repository.
vincbeck pushed a change to branch vincbeck/fab_remove_sqla_limit
in repository https://gitbox.apache.org/repos/asf/airflow.git
omit 4b90847fc58 Remove SQLA 1 limit in Fab provider
add ab8820e2d71 Fix go back button from fab iframe (#58997)
add 4970ea2978e Fix task instance and runs tooltips in Grid view (#58359)
add 1b30bf90a58 Bump the fab-ui-package-updates group across 1 directory
with 2 updates (#58954)
add 76fe18d9883 Adding Task SDK integration tests for asset operations
(#59000)
add c97dbbdf263 Refactor FavoriteDags layout for improved responsiveness
(#59014)
add b653efa9556 Refactor Dashboard layout and Health component
responsiveness (#59015)
add c02ae15f953 Bump the core-ui-package-updates group across 1 directory
with 10 updates (#59009)
add 28e6122df05 Remove global from celery provider (#58869)
add 2017714aebe Retry on `RedshiftSQLHook.get_conn` (#59017)
add 729571b1a8d Update the documentation for the LocalExecutor (#58990)
add ab71473d29e Update logging documentation for Azure Blob Storage
(#59016)
add 4a5451632ea Fix CloudwatchTaskHandler display error (#54054)
add 02c49379153 fix(sftp): add default port to SFTPHookAsync (#58945)
add 3a9fad1667d Decouple xcom public API from using XcomEncoder (#58900)
add caa3d0d21e9 provide a clear naming and description for the attribute
caching get_template_context (#59023)
add 430f0e08d30 Fixing LLM providers tests (#59031)
add d024a46ce7d Change task log source display to hidden by default
(#58749)
add 0a1e798fb71 Add UI/API performance tips (#59004)
add ba7e2fb4685 feat: added toasters for permission denied (#57966)
(#58016)
add d3bc5b96e8f Move HTTPAuthorizationCredentials import from
TYPE_CHECKING block to (#59048)
add d3fecc2bffc Update prek badge URL in README (#59055)
add 8ec7601eab6 Fix TI overview trend count link (#59059)
add 462f71fa6eb i18n(Ko): add missing translations in common.json (Dec 4)
(#59039)
add f0b2ae95a61 i18n(Ko): add missing translations in hitl.json (#59037)
add 36ecfe20b82 i18n(Ko): add missing translations in assets.json (Nov 26)
(#58709)
add fe26bfe0575 Uncomment Python version pin in `check-lazy-logging`
(#59047)
add cd255d7bffe Bump ruff to 0.14.8, uv to 0.9.15 (#59058)
add c63de7b0701 i18n(ko): translating in components.json (Dec 4) (#59040)
add 5bf9983746d i18n(Ko) : add mission translations in dags.json (Dec 4)
(#59041)
add be38f92ed8f Fix readme from generated code (#59070)
add 52526b3f605 Link AIP-76 todos to issues (#59063)
add 337aee896a9 Move the traces and metrics code under a common
observability package (#56187)
add 65ca7d337d4 chore: Adjust AirflowRunFacet and docs after moving OL
methods to BaseSQLOperator (#58903)
add 056efdbc1ad keycloak: enable client_secret retrieval from secrets
backend (#59065)
add f7dd2d9aec2 Remove SQLA 1 limit in Fab provider
add 2e3039ae196 Set `SQLALCHEMY_ENGINE_DEBUG`
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 (4b90847fc58)
\
N -- N -- N refs/heads/vincbeck/fab_remove_sqla_limit
(2e3039ae196)
You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.
Any revisions marked "omit" are not gone; other references still
refer to them. Any revisions marked "discard" are gone forever.
No new revisions were added by this update.
Summary of changes:
.github/actions/breeze/action.yml | 2 +-
.github/actions/install-prek/action.yml | 2 +-
.github/workflows/basic-tests.yml | 2 +-
.github/workflows/release_dockerhub_image.yml | 2 +-
.pre-commit-config.yaml | 2 +-
Dockerfile | 2 +-
Dockerfile.ci | 4 +-
README.md | 2 +-
airflow-core/docs/best-practices.rst | 2 +-
airflow-core/docs/core-concepts/executor/local.rst | 23 +-
airflow-core/docs/howto/index.rst | 1 +
airflow-core/docs/howto/performance.rst | 55 +
airflow-core/pyproject.toml | 2 +
airflow-core/src/airflow/__init__.py | 4 +
airflow-core/src/airflow/_shared/observability | 1 +
.../auth/managers/simple/ui/package-lock.json | 1653 ++++++++++----------
.../auth/managers/simple/ui/package.json | 16 +-
.../auth/managers/simple/ui/pnpm-lock.yaml | 322 ++--
.../src/airflow/api_fastapi/common/parameters.py | 7 +-
.../api_fastapi/core_api/routes/public/xcom.py | 7 +-
.../src/airflow/api_fastapi/core_api/security.py | 3 +-
airflow-core/src/airflow/assets/manager.py | 5 +-
.../src/airflow/cli/commands/daemon_utils.py | 2 +-
airflow-core/src/airflow/dag_processing/manager.py | 4 +-
.../src/airflow/dag_processing/processor.py | 2 +-
.../example_dags/example_outlet_event_extra.py | 1 +
.../src/airflow/executors/base_executor.py | 15 +-
.../src/airflow/jobs/dag_processor_job_runner.py | 2 +-
airflow-core/src/airflow/jobs/job.py | 4 +-
.../src/airflow/jobs/scheduler_job_runner.py | 13 +-
.../src/airflow/jobs/triggerer_job_runner.py | 4 +-
airflow-core/src/airflow/models/callback.py | 2 +-
airflow-core/src/airflow/models/dagrun.py | 5 +-
airflow-core/src/airflow/models/deadline.py | 2 +-
airflow-core/src/airflow/models/taskinstance.py | 3 +-
.../airflow/{metrics => observability}/__init__.py | 0
.../{_shared => observability/metrics}/__init__.py | 0
.../observability/metrics/datadog_logger.py | 40 +
.../airflow/observability/metrics/otel_logger.py | 43 +
.../airflow/observability/metrics/statsd_logger.py | 63 +
.../src/airflow/{ => observability}/stats.py | 10 +-
airflow-core/src/airflow/observability/trace.py | 122 ++
.../common => observability/traces}/__init__.py | 0
.../airflow/observability/traces/otel_tracer.py | 33 +-
airflow-core/src/airflow/plugins_manager.py | 2 +-
airflow-core/src/airflow/serialization/serde.py | 2 +-
.../airflow/serialization/serialized_objects.py | 2 +-
airflow-core/src/airflow/traces/utils.py | 114 --
.../ui/public/i18n/locales/en/components.json | 3 +
.../airflow/ui/public/i18n/locales/ko/assets.json | 1 +
.../airflow/ui/public/i18n/locales/ko/common.json | 6 +-
.../ui/public/i18n/locales/ko/components.json | 7 +
.../airflow/ui/public/i18n/locales/ko/dags.json | 5 +
.../airflow/ui/public/i18n/locales/ko/hitl.json | 3 +-
.../src/airflow/ui/src/components/BasicTooltip.tsx | 127 ++
.../src/airflow/ui/src/components/DagRunInfo.tsx | 2 +-
.../src/airflow/ui/src/components/HoverTooltip.tsx | 63 -
.../ui/src/components/TaskInstanceTooltip.tsx | 5 +-
.../src/components/TriggerDag/TriggerDAGForm.tsx | 6 +-
.../ui/src/layouts/Details/Grid/GridButton.tsx | 66 +-
.../airflow/ui/src/layouts/Details/Grid/GridTI.tsx | 65 +-
.../ui/src/pages/Dag/Calendar/CalendarCell.tsx | 15 +-
.../ui/src/pages/Dag/Calendar/CalendarTooltip.tsx | 104 +-
.../airflow/ui/src/pages/Dashboard/Dashboard.tsx | 4 +-
.../Dashboard/FavoriteDags/FavoriteDagCard.tsx | 4 +-
.../pages/Dashboard/FavoriteDags/FavoriteDags.tsx | 22 +-
.../ui/src/pages/Dashboard/Health/Health.tsx | 2 +-
airflow-core/src/airflow/ui/src/pages/Security.tsx | 23 +-
.../ui/src/pages/Task/Overview/Overview.tsx | 2 +-
.../ui/src/pages/TaskInstance/Logs/Logs.test.tsx | 22 +-
.../ui/src/pages/TaskInstance/Logs/Logs.tsx | 2 +-
.../src/airflow/ui/src/queries/useTrigger.ts | 13 +-
.../tests/integration/otel/dags/otel_test_dag.py | 4 +-
.../dags/otel_test_dag_with_pause_between_tasks.py | 4 +-
.../otel/dags/otel_test_dag_with_pause_in_task.py | 4 +-
airflow-core/tests/integration/otel/test_otel.py | 2 +-
.../core_api/routes/public/test_dags.py | 80 +-
.../core_api/routes/public/test_event_logs.py | 53 +-
.../core_api/routes/public/test_hitl.py | 4 +
.../core_api/routes/public/test_task_instances.py | 4 +-
airflow-core/tests/unit/jobs/test_scheduler_job.py | 2 +-
airflow-core/tests/unit/models/test_dagrun.py | 4 +-
.../tests/unit/models/test_taskinstance.py | 2 +-
.../unit/observability}/__init__.py | 0
.../unit/observability/metrics}/__init__.py | 0
.../{core => observability/metrics}/test_stats.py | 124 +-
.../unit/observability/traces}/__init__.py | 0
.../traces}/test_otel_tracer.py | 36 +-
contributing-docs/05_pull_requests.rst | 4 +-
dev/breeze/doc/ci/02_images.md | 2 +-
.../commands/release_management_commands.py | 2 +-
dev/breeze/src/airflow_breeze/global_constants.py | 2 +-
.../tests/test_pytest_args_for_test_types.py | 1 +
dev/breeze/uv.lock | 56 +-
devel-common/pyproject.toml | 2 +-
.../src/sphinx_exts/providers_extensions.py | 49 +-
.../sphinx_exts/templates/openlineage.rst.jinja2 | 41 +-
generated/PYPI_README.md | 2 +-
providers/amazon/pyproject.toml | 2 +-
.../aws/executors/aws_lambda/lambda_executor.py | 2 +-
.../amazon/aws/executors/batch/batch_executor.py | 2 +-
.../amazon/aws/executors/ecs/ecs_executor.py | 2 +-
.../src/airflow/providers/amazon/aws/hooks/logs.py | 12 +-
.../providers/amazon/aws/hooks/redshift_sql.py | 11 +-
.../amazon/aws/log/cloudwatch_task_handler.py | 70 +-
.../amazon/aws/log/test_cloudwatch_task_handler.py | 34 +-
providers/celery/pyproject.toml | 2 +-
.../providers/celery/executors/celery_executor.py | 3 +-
.../celery/executors/celery_executor_utils.py | 26 +-
.../integration/celery/test_celery_executor.py | 4 +-
.../unit/celery/executors/test_celery_executor.py | 2 +-
providers/cncf/kubernetes/pyproject.toml | 2 +-
.../kubernetes/executors/kubernetes_executor.py | 3 +-
.../src/airflow/providers/common/compat/sdk.py | 6 +
providers/edge3/pyproject.toml | 2 +-
.../providers/edge3/executors/edge_executor.py | 3 +-
.../airflow/providers/edge3/models/edge_worker.py | 3 +-
.../providers/edge3/worker_api/routes/jobs.py | 3 +-
.../providers/edge3/worker_api/routes/worker.py | 3 +-
.../unit/edge3/executors/test_edge_executor.py | 4 +-
.../unit/edge3/worker_api/routes/test_jobs.py | 3 +-
.../airflow/providers/fab/www/package-lock.json | 40 +-
.../fab/src/airflow/providers/fab/www/package.json | 4 +-
providers/fab/www-hash.txt | 2 +-
providers/keycloak/provider.yaml | 1 +
.../providers/keycloak/get_provider_info.py | 1 +
providers/microsoft/azure/docs/logging/index.rst | 2 +-
providers/openlineage/pyproject.toml | 2 +-
.../providers/openlineage/plugins/adapter.py | 2 +-
.../providers/openlineage/plugins/listener.py | 3 +-
.../airflow/providers/openlineage/utils/utils.py | 17 +
.../tests/unit/openlineage/utils/test_utils.py | 150 +-
.../system/pinecone/example_create_pod_index.py | 13 +-
.../system/pinecone/example_pinecone_cohere.py | 32 +-
.../system/pinecone/example_pinecone_openai.py | 10 +-
.../sftp/src/airflow/providers/sftp/hooks/sftp.py | 27 +-
providers/sftp/tests/unit/sftp/hooks/test_sftp.py | 61 +
pyproject.toml | 12 +-
scripts/ci/prek/check_imports_in_providers.py | 2 +-
scripts/ci/prek/check_lazy_logging.py | 2 +-
.../check_template_context_variable_in_sync.py | 4 +-
scripts/ci/prek/check_tests_in_right_folders.py | 1 +
scripts/ci/prek/ruff_format.py | 2 +-
scripts/ci/prek/update_airflow_pyproject_toml.py | 8 +-
scripts/docker/entrypoint_ci.sh | 2 +
scripts/tools/setup_breeze | 2 +-
shared/{timezones => observability}/pyproject.toml | 20 +-
.../src/airflow_shared/observability}/__init__.py | 0
.../src/airflow_shared/observability/exceptions.py | 7 +-
.../observability/metrics}/__init__.py | 0
.../observability}/metrics/base_stats_logger.py | 4 +-
.../observability}/metrics/datadog_logger.py | 49 +-
.../observability}/metrics/otel_logger.py | 47 +-
.../observability}/metrics/protocols.py | 0
.../observability}/metrics/statsd_logger.py | 70 +-
.../observability}/metrics/validators.py | 40 +-
.../observability}/traces/__init__.py | 0
.../observability/traces/base_tracer.py | 106 +-
.../observability}/traces/otel_tracer.py | 53 +-
.../airflow_shared/observability/traces/utils.py | 36 +-
.../tests/conftest.py | 0
.../observability/tests/observability}/__init__.py | 0
.../tests/observability/metrics}/__init__.py | 0
.../observability/metrics}/test_otel_logger.py | 9 +-
.../tests/observability}/test_otel_utils.py | 8 +-
.../tests/task_sdk_tests/test_asset_operations.py | 36 +-
task-sdk/docs/api.rst | 4 +
task-sdk/pyproject.toml | 15 +-
task-sdk/src/airflow/sdk/__init__.py | 4 +
task-sdk/src/airflow/sdk/_shared/observability | 1 +
task-sdk/src/airflow/sdk/configuration.py | 2 +-
.../src/airflow/sdk/execution_time/task_runner.py | 14 +-
task-sdk/src/airflow/sdk/io/fs.py | 2 +-
.../src/airflow/sdk/observability}/__init__.py | 0
.../airflow/sdk/observability/metrics}/__init__.py | 0
.../sdk/observability/metrics/datadog_logger.py | 40 +
.../sdk/observability/metrics/otel_logger.py | 43 +
.../sdk/observability/metrics/statsd_logger.py | 63 +
.../src/airflow/sdk/observability}/stats.py | 12 +-
task-sdk/src/airflow/sdk/observability/trace.py | 122 ++
.../airflow/sdk/observability/traces}/__init__.py | 0
.../sdk/observability/traces/otel_tracer.py | 38 +-
task-sdk/tests/task_sdk/docs/test_public_api.py | 1 +
.../tests/task_sdk/execution_time/test_sentry.py | 2 +-
184 files changed, 3066 insertions(+), 2053 deletions(-)
create mode 100644 airflow-core/docs/howto/performance.rst
create mode 120000 airflow-core/src/airflow/_shared/observability
rename airflow-core/src/airflow/{metrics => observability}/__init__.py (100%)
copy airflow-core/src/airflow/{_shared => observability/metrics}/__init__.py
(100%)
create mode 100644
airflow-core/src/airflow/observability/metrics/datadog_logger.py
create mode 100644
airflow-core/src/airflow/observability/metrics/otel_logger.py
create mode 100644
airflow-core/src/airflow/observability/metrics/statsd_logger.py
copy airflow-core/src/airflow/{ => observability}/stats.py (87%)
create mode 100644 airflow-core/src/airflow/observability/trace.py
copy airflow-core/src/airflow/{api/common => observability/traces}/__init__.py
(100%)
copy
providers/fab/src/airflow/providers/fab/www/extensions/init_wsgi_middlewares.py
=> airflow-core/src/airflow/observability/traces/otel_tracer.py (55%)
delete mode 100644 airflow-core/src/airflow/traces/utils.py
create mode 100644 airflow-core/src/airflow/ui/src/components/BasicTooltip.tsx
delete mode 100644 airflow-core/src/airflow/ui/src/components/HoverTooltip.tsx
copy airflow-core/{src/airflow/_shared =>
tests/unit/observability}/__init__.py (100%)
copy airflow-core/{src/airflow/_shared =>
tests/unit/observability/metrics}/__init__.py (100%)
rename airflow-core/tests/unit/{core => observability/metrics}/test_stats.py
(80%)
copy airflow-core/{src/airflow/_shared =>
tests/unit/observability/traces}/__init__.py (100%)
rename airflow-core/tests/unit/{core =>
observability/traces}/test_otel_tracer.py (90%)
copy shared/{timezones => observability}/pyproject.toml (72%)
copy {airflow-core/src/airflow/_shared =>
shared/observability/src/airflow_shared/observability}/__init__.py (100%)
copy airflow-core/src/airflow/version.py =>
shared/observability/src/airflow_shared/observability/exceptions.py (86%)
copy {airflow-core/src/airflow/_shared =>
shared/observability/src/airflow_shared/observability/metrics}/__init__.py
(100%)
rename {airflow-core/src/airflow =>
shared/observability/src/airflow_shared/observability}/metrics/base_stats_logger.py
(96%)
rename {airflow-core/src/airflow =>
shared/observability/src/airflow_shared/observability}/metrics/datadog_logger.py
(80%)
rename {airflow-core/src/airflow =>
shared/observability/src/airflow_shared/observability}/metrics/otel_logger.py
(92%)
rename {airflow-core/src/airflow =>
shared/observability/src/airflow_shared/observability}/metrics/protocols.py
(100%)
rename {airflow-core/src/airflow =>
shared/observability/src/airflow_shared/observability}/metrics/statsd_logger.py
(73%)
rename {airflow-core/src/airflow =>
shared/observability/src/airflow_shared/observability}/metrics/validators.py
(91%)
rename {airflow-core/src/airflow =>
shared/observability/src/airflow_shared/observability}/traces/__init__.py (100%)
rename airflow-core/src/airflow/traces/tracer.py =>
shared/observability/src/airflow_shared/observability/traces/base_tracer.py
(60%)
rename {airflow-core/src/airflow =>
shared/observability/src/airflow_shared/observability}/traces/otel_tracer.py
(92%)
copy airflow-core/src/airflow/utils/dates.py =>
shared/observability/src/airflow_shared/observability/traces/utils.py (57%)
copy shared/{secrets_masker => observability}/tests/conftest.py (100%)
copy {airflow-core/src/airflow/_shared =>
shared/observability/tests/observability}/__init__.py (100%)
copy {airflow-core/src/airflow/_shared =>
shared/observability/tests/observability/metrics}/__init__.py (100%)
rename {airflow-core/tests/unit/core =>
shared/observability/tests/observability/metrics}/test_otel_logger.py (97%)
rename {airflow-core/tests/unit/utils =>
shared/observability/tests/observability}/test_otel_utils.py (98%)
create mode 120000 task-sdk/src/airflow/sdk/_shared/observability
copy {airflow-core/src/airflow/_shared =>
task-sdk/src/airflow/sdk/observability}/__init__.py (100%)
copy {airflow-core/src/airflow/_shared =>
task-sdk/src/airflow/sdk/observability/metrics}/__init__.py (100%)
create mode 100644
task-sdk/src/airflow/sdk/observability/metrics/datadog_logger.py
create mode 100644
task-sdk/src/airflow/sdk/observability/metrics/otel_logger.py
create mode 100644
task-sdk/src/airflow/sdk/observability/metrics/statsd_logger.py
rename {airflow-core/src/airflow =>
task-sdk/src/airflow/sdk/observability}/stats.py (85%)
create mode 100644 task-sdk/src/airflow/sdk/observability/trace.py
copy {airflow-core/src/airflow/api/common =>
task-sdk/src/airflow/sdk/observability/traces}/__init__.py (100%)
copy devel-common/src/sphinx_exts/providers_packages_ref.py =>
task-sdk/src/airflow/sdk/observability/traces/otel_tracer.py (54%)