This is an automated email from the ASF dual-hosted git repository.
kaxilnaik pushed a change to annotated tag 3.1.0b1
in repository https://gitbox.apache.org/repos/asf/airflow.git
*** WARNING: tag 3.1.0b1 was modified! ***
from 1e8863cc7d3 (tag)
to bb0c213fe96 (tag)
tagging 1d9e6c0fc96bb6b507481b4d721c7f0c350d6981 (commit)
replaces providers-amazon/9.13.0
by Kaxil Naik
on Tue Sep 9 16:19:23 2025 -0600
- Log -----------------------------------------------------------------
Apache Airflow 3.1.0b1
-----BEGIN PGP SIGNATURE-----
iQFIBAABCAAyFiEEzeFcbk06jsTs9LpLZnTgitfeQG8FAmjAp+sUHGtheGlsbmFp
a0BnbWFpbC5jb20ACgkQZnTgitfeQG+G7Qf9Gjf5/WiTbIkjDhYvhEGXSs1j7P/4
tDMMtqKBWMFiHjzZO2WA1X6gZg1ftT+y4R8mEEdWFB8qCZUaHBe01k150O1Bnxa2
HU53VXV//Ygil/C8Izjvd2Df3tdw+Or5uhIHO/Ft2L8q0HnE7C4YpP1aLZrHkKhr
B2BxB4OkXXOmBt+I4JTuj97LYExremBZ/S8V4CD+49Hj0NRjejmr/MDoA+HhYb3s
x6AyTp2nm6dTlckd6mlKdhm/Hy+b9BRCPzaogvjDo/jpnMW4bADvaGSeJcWGFeLB
YGLBNK+bG2LU4BBXt1okhIBv+5OcHt832FefcpByttkYgvjxnUyzaTEBbg==
=Zgt1
-----END PGP SIGNATURE-----
-----------------------------------------------------------------------
omit 45364e55cc0 Add release notes for 3.1.0b1
omit 8bf963c9d84 Pin Task-SDK for Airflow meta package
omit 4fdfdc10f37 Update default branches for 3-1
add 957fc1c2388 Switch all airflow logging to structlog (#52651)
add 3aa105685e4 Add guards for registering middlewares from plugins
(#55399)
add 36add023a70 Allow attachment of multiple deadlines to a DAG (#55086)
add bb53eedfdda Optimize Gantt group expansion with debouncing and
deferred rendering (#55334)
add 5cfba2bbaba Fix graph export cropping when view is partial (#55012)
add bcd0d090058 Complete Arabic translation 2025-09-09 (#55435)
add f93fef8b8d1 Fix Dag processor crashing under `airflow standalone`
(#55434)
add ab828974e95 [I18N] Add Simplified Chinese (zh-CN) UI Translation
(#55122)
add 0e4cbef8bd6 Fixup to structlog migration - logging folder not being
created correctly. (#55431)
add 84661e28af0 Fix static checks in boring-cyborg.yml (#55441)
add e21835c19d6 chore(ui): add bottom padding to DAG list (#55415)
add 6e2da13837c Update default branches for 3-1
add d3f6d90c165 Pin Task-SDK for Airflow meta package
add 578d190f763 Add release notes for 3.1.0b1
add 1d9e6c0fc96 Fix scheduler ``serve_logs`` subprocess file descriptor
errors (#55443)
This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
annotated tag 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 (1e8863cc7d3)
\
N -- N -- N refs/tags/3.1.0b1 (bb0c213fe96)
You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.
Any revisions marked "omit" are not gone; other references still
refer to them. Any revisions marked "discard" are gone forever.
No new revisions were added by this update.
Summary of changes:
.github/CODEOWNERS | 2 +
.github/boring-cyborg.yml | 5 +-
RELEASE_NOTES.rst | 8 +-
airflow-core/pyproject.toml | 11 +-
airflow-core/src/airflow/_shared/logging | 1 +
airflow-core/src/airflow/api_fastapi/app.py | 4 +
.../airflow/cli/commands/dag_processor_command.py | 3 +-
.../config_templates/airflow_local_settings.py | 3 +-
.../src/airflow/dag_processing/collection.py | 4 +-
airflow-core/src/airflow/dag_processing/manager.py | 28 +-
.../src/airflow/jobs/scheduler_job_runner.py | 4 +-
.../src/airflow/jobs/triggerer_job_runner.py | 18 +-
airflow-core/src/airflow/logging_config.py | 33 +-
airflow-core/src/airflow/models/dag.py | 17 +-
airflow-core/src/airflow/models/dagrun.py | 10 +-
airflow-core/src/airflow/serialization/schema.json | 4 +
.../airflow/serialization/serialized_objects.py | 43 +-
.../airflow/ui/public/i18n/locales/ar/common.json | 3 +-
.../ui/public/i18n/locales/zh-CN/admin.json | 167 ++++++
.../ui/public/i18n/locales/zh-CN/assets.json | 30 ++
.../ui/public/i18n/locales/zh-CN/browse.json | 26 +
.../ui/public/i18n/locales/zh-CN/common.json | 315 +++++++++++
.../ui/public/i18n/locales/zh-CN/components.json | 134 +++++
.../airflow/ui/public/i18n/locales/zh-CN/dag.json | 149 ++++++
.../airflow/ui/public/i18n/locales/zh-CN/dags.json | 97 ++++
.../ui/public/i18n/locales/zh-CN/dashboard.json | 45 ++
.../airflow/ui/public/i18n/locales/zh-CN/hitl.json | 31 ++
.../ui/public/i18n/locales/zh-CN/tasks.json | 10 +
.../ui/src/components/Graph/DownloadButton.tsx | 15 +-
.../src/context/openGroups/OpenGroupsProvider.tsx | 32 +-
airflow-core/src/airflow/ui/src/i18n/config.ts | 3 +-
.../airflow/ui/src/layouts/Details/Gantt/Gantt.tsx | 8 +-
.../src/airflow/ui/src/pages/DagsList/DagsList.tsx | 2 +-
airflow-core/src/airflow/utils/cli.py | 11 +
.../airflow/utils/log/file_processor_handler.py | 4 +-
airflow-core/src/airflow/utils/log/log_reader.py | 7 +-
.../src/airflow/utils/log/logging_mixin.py | 16 +-
airflow-core/src/airflow/utils/retries.py | 11 +-
airflow-core/src/airflow/utils/serve_logs/core.py | 7 +-
.../src/airflow/utils/serve_logs/log_server.py | 10 +-
.../tests/integration/otel/dags/otel_test_dag.py | 2 +-
airflow-core/tests/integration/otel/test_otel.py | 6 +-
.../tests/unit/always/test_providers_manager.py | 18 +-
.../api_fastapi/core_api/routes/public/test_log.py | 19 +-
.../tests/unit/cli/commands/test_task_command.py | 3 -
airflow-core/tests/unit/cli/conftest.py | 16 +-
.../tests/unit/core/test_logging_config.py | 422 ---------------
airflow-core/tests/unit/core/test_stats.py | 8 +-
.../tests/unit/dag_processing/test_manager.py | 3 -
airflow-core/tests/unit/models/test_dag.py | 61 ++-
.../unit/serialization/test_dag_serialization.py | 6 -
airflow-core/tests/unit/task/conftest.py | 7 -
.../tests/unit/utils/log/test_log_reader.py | 28 +-
airflow-core/tests/unit/utils/test_log_handlers.py | 6 +-
.../tests/unit/utils/test_logging_mixin.py | 12 -
.../tests/unit/utils/test_process_utils.py | 11 +-
airflow-core/tests/unit/utils/test_retries.py | 2 +-
.../test_task_handler_with_custom_formatter.py | 113 ----
.../src/airflow_breeze/utils/selective_checks.py | 75 ---
dev/breeze/tests/test_selective_checks.py | 240 +--------
dev/i18n/check_translations_completeness.py | 1 +
devel-common/src/tests_common/pytest_plugin.py | 142 +++--
devel-common/src/tests_common/test_utils/logs.py | 244 +++++++++
.../test_kubernetes_pod_operator.py | 33 +-
.../src/airflow/providers/amazon/aws/hooks/glue.py | 2 +-
.../providers/amazon/aws/utils/task_log_fetcher.py | 2 +-
.../amazon/aws/log/test_cloudwatch_task_handler.py | 9 +-
.../unit/amazon/aws/log/test_s3_task_handler.py | 41 +-
.../airflow/providers/apache/beam/hooks/beam.py | 8 +-
.../apache/flink/sensors/test_flink_kubernetes.py | 28 +-
.../unit/celery/log_handlers/test_log_handlers.py | 2 -
.../kubernetes/log_handlers/test_log_handlers.py | 5 +-
.../kubernetes/sensors/test_spark_kubernetes.py | 27 +-
.../sql/tests/unit/common/sql/hooks/test_dbapi.py | 8 +-
.../sql/tests/unit/common/sql/hooks/test_sql.py | 2 -
.../providers/databricks/operators/databricks.py | 9 +-
.../databricks/plugins/databricks_workflow.py | 12 +-
.../tests/unit/databricks/hooks/test_databricks.py | 1 -
.../airflow/providers/docker/operators/docker.py | 9 +-
.../tests/unit/docker/decorators/test_docker.py | 16 +-
.../google/cloud/utils/bigquery_get_data.py | 2 +-
.../microsoft/azure/log/test_wasb_task_handler.py | 26 +-
.../airflow/providers/microsoft/psrp/hooks/psrp.py | 12 +-
.../unit/microsoft/psrp/operators/test_psrp.py | 2 +-
.../providers/snowflake/hooks/snowflake_sql_api.py | 2 +-
.../ssh/src/airflow/providers/ssh/hooks/ssh.py | 6 +
.../tests/unit/standard/operators/test_python.py | 17 +-
pyproject.toml | 9 +-
reproducible_build.yaml | 4 +-
shared/{timezones => logging}/pyproject.toml | 9 +-
.../src/airflow_shared/logging}/__init__.py | 9 +-
.../src/airflow_shared/logging/_noncaching.py | 34 +-
.../airflow_shared/logging/percent_formatter.py | 153 ++++++
.../src/airflow_shared/logging/structlog.py | 588 +++++++++++++++++++++
shared/logging/src/airflow_shared/logging/types.py | 43 ++
shared/logging/tests/logging/test_structlog.py | 282 ++++++++++
task-sdk/pyproject.toml | 9 +-
task-sdk/src/airflow/sdk/_shared/logging | 1 +
.../src/airflow/sdk/definitions/_internal/node.py | 11 +-
task-sdk/src/airflow/sdk/definitions/dag.py | 45 +-
.../airflow/sdk/execution_time/execute_workload.py | 2 +-
.../src/airflow/sdk/execution_time/supervisor.py | 19 +-
.../src/airflow/sdk/execution_time/task_runner.py | 2 +-
task-sdk/src/airflow/sdk/log.py | 411 ++++----------
task-sdk/src/airflow/sdk/types.py | 1 +
task-sdk/tests/conftest.py | 30 +-
task-sdk/tests/task_sdk/bases/test_operator.py | 28 +-
.../tests/task_sdk/definitions/test_xcom_arg.py | 82 ++-
task-sdk/tests/task_sdk/log/test_log.py | 225 --------
109 files changed, 3121 insertions(+), 1933 deletions(-)
create mode 120000 airflow-core/src/airflow/_shared/logging
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/zh-CN/admin.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/zh-CN/assets.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/zh-CN/browse.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/zh-CN/common.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/zh-CN/components.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/zh-CN/dag.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/zh-CN/dags.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/zh-CN/dashboard.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/zh-CN/hitl.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/zh-CN/tasks.json
delete mode 100644 airflow-core/tests/unit/core/test_logging_config.py
delete mode 100644
airflow-core/tests/unit/utils/test_task_handler_with_custom_formatter.py
copy shared/{timezones => logging}/pyproject.toml (89%)
copy {airflow-core/src/airflow/utils/serve_logs =>
shared/logging/src/airflow_shared/logging}/__init__.py (84%)
copy providers/sendgrid/src/airflow/providers/sendgrid/version_compat.py =>
shared/logging/src/airflow_shared/logging/_noncaching.py (59%)
create mode 100644
shared/logging/src/airflow_shared/logging/percent_formatter.py
create mode 100644 shared/logging/src/airflow_shared/logging/structlog.py
create mode 100644 shared/logging/src/airflow_shared/logging/types.py
create mode 100644 shared/logging/tests/logging/test_structlog.py
create mode 120000 task-sdk/src/airflow/sdk/_shared/logging
delete mode 100644 task-sdk/tests/task_sdk/log/test_log.py