This is an automated email from the ASF dual-hosted git repository.
kaxilnaik pushed a change to branch v3-1-stable
in repository https://gitbox.apache.org/repos/asf/airflow.git
from 54bd5d8cd9f Update 3.1.0 release notes
add 6d2aac69c8e Temporarily mark `test_reading_from_pipes` as xfail
add 0e9bc26ac58 Relax requirement on Task SDK for meta package
add 39aaaff583c Bump ruff up to 0.13.2 (#56102)
add 1822c8b9a07 Remove self-reference in best practices documentation
(#56111)
add dabb34bd725 Bump Airflow to 3.1.1 and Task SDK to 1.1.1
add 5f83aed0071 Fix Python 3.12+ fork warning in async connection tests
(#56019)
add 0bf109000de Bump apache-airflow from 3.0.6 to 3.1.0 (#56151)
add 5355fe04261 [v3-1-test] Detect interactive terminal to set colored
logging + support override env variables (#56132) (#56157)
add 38ed3808897 Fix upgrade checks with prek in v3-1-test (#56171)
add d581408c5f5 [v3-1-test] Update changelog of dockerfile to include Fab
missing in Python 3.13 (#56176) (#56179)
add 6a3d1650db4 [v3-1-test] Add react-router-dom to external deps in
plugins (#56205) (#56213)
add 609297260f2 [v3-1-test] Fix upgrade checks with prek (#56222) (#56231)
add ac730eeea13 [v3-1-test] Bump version of providers (#56208) (#56251)
add 431baacde0f [v3-1-test] Replace defaultValue with value in
TaskTrySelect (#56141) (#56258)
add 4465006f731 [v3-1-test] Support Dynamic UI Alerts (#54677) (#56259)
add 942928bcfe5 [v3-1-test] Fix cron expression display for Day-of-Month
and Day-of-Week conflicts (#54644) (#56255)
add bf2f633a554 [v3-1-test] fix(api_fastapi): adjust model validator
signature of TriggerDAGRunPostBody (#56025) (#56026) (#56256)
add a85240c18ef [v3-1-test] UI: Add Expand/Collapse all to XComs page
(#56083) (#56285)
add 82b0f0bbdd3 [v3-1-test] Fix scheduler crash during 3.0 to 3.1
migration when retry_delay is None (#56202) (#56236)
add 3dafbf9dc49 [v3-1-test] Fix multi-line drag selection in task log view
(#56238) (#56300)
add 406868167c0 [v3-1-test] Fix FAB provider name in auth manager section
of release notes (#56301) (#56317)
add 1da7340e13a [v3-1-test] Use TI duration from db instead of UI
calculated (#56310) (#56329)
add 12a75c0c503 [v3-1-test] Fix failed image build in v3-1-test (#56352)
add bcd14991095 [v3-1-test] Cleanup disk space in image cache push jobs
(#56198) (#56203)
add 1e450303e3a [v3-1-test] Expand and collapse group component (#56293)
(#56334)
add 811ce2e655d Upgrade tools on v3-1-test (#56375)
add 0238b95c812 [v3-1-test] Restrict universal-pathlib 0.3.0 (#56370)
(#56376)
add c474be9ff06 [v3-1-test] Temporarily limit fastapi to less than 0.118.0
to fix CI (#56239) (#56386)
add 7f5e42c7c63 [v3-1-test] Make Dag Run ID visible in Dag Header Card
(#56392) (#56409)
add df1b0262af9 [v3-1-test] Use Task Display Name in Grid if existing
(#56393) (#56410)
add 6ce887f7ef8 [v3-1-test] fix: show appropriate time units in grid view
(#56403) (#56414)
add 49c0fff4a49 [v3-1-test] Fix scheduler crash with email notifications
(#56429) (#56431)
add 327d36c6e47 Limit astroid to < 4 to fix broken docs builds (#56419)
add 4cf03c0d30e [v3-1-test] Add uvicorn to spelling ignore list (#56441)
(#56442)
add 1b33eb631f7 [v3-1-test] Emit log stream stopped warning as ndjson
(#56474) (#56480)
add aa37f1ad3a6 [v3-1-test] Fix broken main after pydantic 2.12.0 (#56483)
(#56489)
add 260536c10c9 [v3-1-test] Bump uv version to 0.9.0 and ruff to 0.14.0
(#56467) (#56491)
add 8e1c5191a61 [v3-1-test] 56058: Validating latestRun before accessing
its properties (#56303) (#56488)
add c4a4b0280c3 [v3-1-test] Allow sub-pages in React UI plugins (#56413)
(#56485)
add ac135bb26ef [v3-1-test] feat: make clipboard hover (#56382) (#56484)
add a1f72f10db6 [v3-1-test] Use Task Display Name in Graph if existing
(#56455) (#56511)
add 00fd7d4951b [v3-1-test] Fix broken main after pydantic 2.12.0 - partly
cleanup (#56514) (#56569)
add 4d79d1a8789 [v3-1-test] Add rancher-desktop to PREFERRED_CONTEXTS in
docker_command_utils (#56525) (#56530)
add 0197305c779 [v3-1-test] Fix install_java.sh (#56211) (#56358)
add 994f1424515 [v3-1-test] Upgrade important dependencies for 3-1 branch
(#56577)
add a3b785616ac [v3-1-test] Fix migration errors for Pydantic 2.12.0
(#56579) (#56581)
add 26e7b279870 [v3-1-test] UI: Fix Grid for cleared runs when tasks were
removed (#56085) (#56297)
add 723a181085f [v3-1-test] Use name passed to `@asset` decorator when
fetching the asset. (#56434) (#56611)
add 1c476da4983 [v3-1-test] Update ASF logos in documentation to the new
Oak logo (#56598) (#56601)
add e6d474c009c [v3-1-test] Remove some irrelevant TODOs in task sdk
(#56506) (#56600)
add 477d97aa68a [v3-1-test] Fix: Correctly parse JSON for --dag_run_conf
in airflow dags backfill CLI (#56380) (#56599)
add 8af7e9af291 [v3-1-test] Fix retry callbacks not executing for
externally killed tasks (#56586) (#56607)
add ffe2a7c1eed [v3-1-test] Upgrade to latest versions of prek, uv, golang
(#56618)
add 3d59ae3c0b5 [v3-1-test] Complete `snowflake-snowpark-python` pip
resolver hint (#56606) (#56619)
add b9d4b097f5c [v3-1-test] Upgrade zizmor and uv to latest versions
(#56620) (#56622)
add 8cc0a4eba0d [v3-1-test] Remove ``dagReports`` API endpoint (#56609)
(#56621)
add 04b76225fbb Fix UI keeps poking pools API when no permission (#56163)
(#56626)
add 48a1e5293fc Fix Connection or Variable access in Server context
(#56602)
add 903f54c4173 Improve API doc for ordering query param (#55988)
add a6781e84888 Improve API sort documentation (#56617)
add 09add6ed452 Add optional pending dag runs check to auto refresh
(#56014) (#56648)
add 8a825cab9a2 [v3-1-test] bump zizmor and python 3.13 patch level
version in global_constants (#56639) (#56644)
add c5a7e64e797 [v3-1-test] Bump hatch version to 1.15.0 (#56652) (#56659)
add e11cac18653 [v3-1-test] Finalising Core Documentation Pages Screenshot
Update (#56167) (#56637)
add 4444168f87c Fix AutoRefresh when only 1 dag run is running (#56623)
(#56649)
add f05976b998f [v3-1-test] Fix task SDK connection error handling to
match airflow-core behavior (#56650) (#56653)
add 75ffacde3df [v3-1-test] chore: add credentials to access local airflow
instance (#56636) (#56662)
add 04b56eb361b [v3-1-test] Improve UI retry strategy on client errors
(#56625) (#56638)
add 411ddeb5d31 Update bulk API permission check to handle
`action_on_existence` (#56672)
add 595b3ea748c [v3-1-test] Add cleanup of free space for provider tests
(#56681) (#56682)
add 2f5cdff247b Update authentication to handle JWT token in backend
(#56677)
add 6f453894687 Fix KeyError when accessing retry_delay on MappedOperator
without explicit value (#56605)
add d2f3c457699 [v3-1-test] Free disk space for mypy jobs (#56703) (#56709)
add 9c40d2158f6 [v3-1-test] Fix custom timetable generate_run_id not
called for manual triggers (#56373) (#56699)
add d2de0140214 [v3-1-test] Add ANSI support to log viewer (#56463)
(#56721)
add 7b2e0d8bc9c [v3-1-test] fix: corrects otel serialization of file paths
in dag processor (#56665) (#56718)
add 5377c42f268 [v3-1-test] Add Audit Logs detailed documentation (#56640)
(#56719)
add d460f4e1772 [v3-1-test] Added missing babel dependency in Task SDK
(#56553) (#56592)
add 910a923e48b Add resize function for Dag Documentation (#56344)
add 9e110f1e196 [v3-1-test] Add Greek UI translation (#56229) (#56724)
add 664a725cf7a [v3-1-test] Remove mock_supervisor_comms in core
connection tests (#56714) (#56728)
add 53c05a0e80c [v3-1-test] Fix task retries executing wrong method after
deferred state (#56731) (#56737)
add 6635f2fd2fd attempt to update 3.0.1 release notes for serialization
interface change (#56318)
add dbb18ca89a7 [v3-1-test] Free up disk space in k8s tests (#56746)
(#56748)
add 70b92b11308 [v3-1-test] Fix: Preserve key structure when adding plural
forms in add_keys (#56753) (#56765)
add aec0fcd6f54 Bump upgrade check versions (#56743) (#56757)
add 7c221031cc6 [v3-1-test] Add auto refresh to backfill banner (#56226)
(#56774)
add a3f05e09112 Migrate CreateAssetEventsBody to Pydantic v2 ConfigDict
(#56697) (#56772)
add a0551a0a269 [v3-1-test] Clean prek cache before running static checks
(#56788) (#56792)
add 7f6c3ec227a [v3-1-test] Updated codeowners for ci/dev tooling (#56798)
(#56799)
add 5b8b909282d [v3-1-test] Update all hatch versions in all files
(#56784) (#56817)
add 6452515260e [v3-1-test] Restore prek cache in a more robust way
(#56796) (#56826)
add 5202e770cf3 [v3-1-test] Ensure dag.test uses serialized dag for
testing (#56660) (#56820)
add 30a1b22d7f8 [v3-1-test] Switch mypy prek hooks to be executed on
pre-push, not on pre-commit (#56829) (#56830)
add 45fc1ac8d13 [v3-1-test] Fix DAG processor crash with pre-import module
optimization (#56773) (#56779)
add 35ea1f2d07b [v3-1-test] Fix .airflowignore order precedence (#56509)
(#56832)
add f5aaf1fece7 Upgrade to latest versions
add 8988d948ed6 [v3-1-test] Upgrade uv and remove accidental uv sync
(#56834) (#56838)
add 4e78e4095c4 [v3-1-test] When prek install-hooks fails, log is now
shown in CI (#56839) (#56842)
add c73339bd3bc Replace custom breeze upgrade check with uv tool upgrade
(#56844) (#56851)
add 0ecf9cec7bc [v3-1-test] Add build-info to summarize-warnings
prerequisites (#56850) (#56853)
add ed902572aea [v3-1-test] update serializer document to reflect the
latest change in codebase (#56269) (#56857)
add 20e4ace8926 [v3-1-test] Synchronize and fix ARM CI workflows (#56856)
(#56858)
add 924d5573d58 Fix get_ti_count and get_task_states access in
callbackrequests (#56822) (#56860)
add a1f8f947fbf Fix Advanced Search button overlap in DAG List View
(#56588) (#56777)
add e6745d13b3a Fix log text selection contrast in light mode (#56216)
(#56893)
add af62beabab6 [v3-1-test] Check for console in validate_cmd_result
(#56876) (#56877)
add 9bb9ee6d0ad fix(scheduler): load dag_run eagering for execution API
validation (#56919)
add 182512f8359 [v3-1-test] Dag task named 'root' causes blue screen on
hover (#56902) (#56926)
add fcb5233a068 [v3-1-test] Bump psutil from 7.1.0 to 7.1.1 in /dev/breeze
(#56899) (#56933)
add 00ad23244c1 [v3-1-test] Add English as a fallback locale in the UI
(#56028) (#56934)
add d52791c8574 [v3-1-test] Add Thai UI translation (#56353) (#56946)
add ab0295fe041 [WEBSERVER] SerializedDagModel query bug fix impacting
Grid view performance (#56257) (#56938)
add 869d036cee9 style: modify log highlight color (#56379) (#56894)
add aa43604c5be [v3-1-test] fix: enable api to clear ti instances by
specifying map indexes (#56346) (#56945)
add 6081335151e [v3-1-test] Modify min width for task names in grid view
(#56378) (#56952)
add 5d8860f77e0 [v3-1-test] Revert "fix(scheduler): load dag_run eagering
for execution API validation (#56916)" (#56943) (#56956)
add 8ef503336f9 [v3-1-test] Improve get dag grid structure endpoint speed
(#55942) (#56937)
add 0d0b3987edd [v3-1-test] Serialize pydantic models in json mode. This
ensures the dict is json serializable. (#56736) (#56878) (#56939)
add 654ccd689b2 [v3-1-test] fix: Add ``max_retry_delay`` to
``MappedOperator`` model (#56396) (#56951)
add 1bdc39d84c1 [v3-1-test] Update duration format to show milliseconds
(#56775) (#56961)
add 4fb85274057 [v3-1-test] docs: Enhance triggering_asset_event retrieval
documentation in DAGs (#52666) (#52674) (#56957)
add c7d8d721dd9 Fix asset name text overflow in DAGs list view (#55914)
add 5ab7ae61dc5 fix: Gracefully handle fastAPI plugins with empty
url_prefix (#55262)
add cefb383e448 Add back Deprecation warning for sla_miss_callback (#56127)
add 5c45866b78e UI: Fix note modal does not change markdown text after
change (#56092)
add 1f0cd2f8acd Use welcome on dashboard instead of airflow (#56074)
add 4e0ed37cb98 Fix a tiny Hebrew typo (#56168)
add 082e3cfdf64 Add more comprehensive tests on DagCards (#55904)
add 79200ed856a Disable Gantt view by default (#56242)
add 7c62f118c8d fix(ui): modify calendar cell colors (#56161)
add d23c445533d fix(i18n): Add translation keys and remove fallback
(#56274)
add 51399720895 Default checkPendingRuns to false (#56307)
add 8a3cd09aefa fix: allow mapped tasks to accept zero-length inputs on
rerun (#56162)
add 49556d94142 include task instance id in log printed by supervisor
(#56383)
add 8217e8fccca Optimize grid structure query with DISTINCT for
dag_version_id lookup (#56565)
add 27ed4490968 Prevent unnecessary kubernetes client imports in workers
(#56692)
add 8598de5ffee Fix view for many DAG tags (#55604)
add 7d2b1bdc34b Lazy import PodGenerator for deserialization (#56733)
add ae14c1cc330 Add PL translations 2025.10.18 (#56825)
add ccc33ffd109 Fix topological sort for Grid View (#56963)
add f9cb37b0eff Restore timtable active_runs_limit check (#56922)
add af124b68154 Update recent runs bar chart and improve responsiveness
(#56314)
add 3c66d0674a7 Add configurable timeout for Execution API requests
(#56969)
add c5964a50f51 Fix
test_schedulable_task_exist_when_rerun_removed_upstream_mapped_task (#56065)
add 235b7ddafe8 Fix execution failures with NULL dag_run.conf during
upgrades (#56729)
add c830a07f31a Fix supported Python versions in README (#56734)
add 9a91186364f Update Dockerfile & README to bump Airflow version
add c263f9149e8 Improve DAG and task missing error handling in callbacks
(#56725)
add 68464d67318 Fix memory leak in remote logging connection cache (#56695)
add 3f26e70aa55 Avoid using rem for icons for safari compatibility (#56304)
add defabeaef0d Add executor, hostname, and queue columns to TaskInstances
page (#55922)
add bcf48501234 Reduce default columns of Dag Run and Task Instance lists
(#55968)
add 767a85d082b Tests for message type consistency between various
supervisor and task comms (#55665)
add 551b491dc6e Fix deprecated GitHub API authentication in airflow-github
script (#56978)
add 59f06699c2e Move natsort dependency to airflow-core (#56582)
add cdd55e651bc Add is_favorite to ui dags list (#56341)
add 7d8ca391af4 Close German translation gaps for full UI translation
2025-10-21 on v3-1-test (#56981)
add c493564753c [v3-1-test] Fix FlexibleForm rendering when all params
have sections (#56870) (#56984)
add 0ce0f109e53 Add release notes for 3.1.1rc1
add 763e22513bc Fix failing tests
add 92d2185ac62 [v3-1-test] Fix Extra Links translation key. (#57030)
(#57040)
add ca95277298f [v3-1-test] Fix dags list not rendering (#57037) (#57046)
add 2c26772bc75 [v3-1-test] fix(scheduler): load dag_run eagering for
execution API validation (#57010) (#57045)
add ba5e2b0984b [v3-1-test] Fix dag list cache invalidation on favouriting
a dag (#57039) (#57047)
add 94b9505de66 [v3-1-test] Add new PL translations. (#56359) (#57055)
add 9e1a587d52d Add last missing translation for 3.1.1 (#57057)
add b85784bd6f2 [v3-1-test] Close German translation gaps for full UI
translation 2025-10-21 (#56980) (#57048)
add 51817f0eeae [v3-1-test] Update French local for 3.1.1 (#57043) (#57058)
No new revisions were added by this update.
Summary of changes:
.github/CODEOWNERS | 38 +-
.github/actions/breeze/action.yml | 8 +
.github/actions/install-prek/action.yml | 37 +-
.github/actions/migration_tests/action.yml | 4 +-
.github/boring-cyborg.yml | 6 +
.github/dependabot.yml | 5 +
.github/workflows/airflow-distributions-tests.yml | 2 +-
.github/workflows/basic-tests.yml | 63 +-
.github/workflows/ci-amd.yml | 29 +-
.github/workflows/ci-arm.yml | 275 +++-
.github/workflows/ci-image-checks.yml | 8 +-
.github/workflows/k8s-tests.yml | 3 +
.github/workflows/push-image-cache.yml | 4 +
.github/workflows/release_dockerhub_image.yml | 14 +-
.github/workflows/test-providers.yml | 6 +
.pre-commit-config.yaml | 20 +-
Dockerfile | 6 +-
Dockerfile.ci | 8 +-
README.md | 14 +-
RELEASE_NOTES.rst | 129 +-
.../authoring-and-scheduling/asset-scheduling.rst | 88 +-
.../docs/authoring-and-scheduling/serializers.rst | 37 +-
airflow-core/docs/best-practices.rst | 4 +-
.../docs/core-concepts/auth-manager/index.rst | 2 +-
airflow-core/docs/howto/customize-ui.rst | 115 +-
airflow-core/docs/img/apache.jpg | Bin 43364 -> 0 bytes
airflow-core/docs/img/asf_logo_wide.png | Bin 0 -> 32678 bytes
airflow-core/docs/img/operator_extra_link.png | Bin 90399 -> 99256 bytes
airflow-core/docs/img/ui-dark/add-dag-tags.png | Bin 87307 -> 197146 bytes
.../img/ui-dark/trigger-dag-tutorial-form-1.png | Bin 66312 -> 148269 bytes
.../img/ui-dark/trigger-dag-tutorial-form-2.png | Bin 116706 -> 183724
bytes
.../img/ui-dark/trigger-dag-tutorial-form-3.png | Bin 80046 -> 157982 bytes
.../img/ui-dark/trigger-dag-tutorial-form-4.png | Bin 99544 -> 101871 bytes
.../tutorial_pipeline_dag_list_trigger.png | Bin 249992 -> 358283
bytes
.../docs/installation/supported-versions.rst | 2 +-
airflow-core/docs/license.rst | 4 +-
airflow-core/docs/security/audit_logs.rst | 613 +++++++-
airflow-core/docs/start.rst | 2 +-
airflow-core/newsfragments/56583.significant.rst | 49 +
airflow-core/newsfragments/56609.significant.rst | 14 +
airflow-core/pyproject.toml | 22 +-
airflow-core/src/airflow/__init__.py | 2 +-
airflow-core/src/airflow/api/common/trigger_dag.py | 4 +-
airflow-core/src/airflow/api_fastapi/app.py | 11 +-
.../api_fastapi/auth/managers/simple/middleware.py | 32 -
.../auth/managers/simple/routes/login.py | 1 +
.../src/airflow/api_fastapi/common/parameters.py | 8 +-
.../src/airflow/api_fastapi/core_api/app.py | 11 -
.../api_fastapi/core_api/datamodels/assets.py | 7 +-
.../api_fastapi/core_api/datamodels/dag_run.py | 23 +-
.../api_fastapi/core_api/datamodels/dags.py | 1 +
.../core_api/datamodels/task_instances.py | 6 +-
.../api_fastapi/core_api/datamodels/ui/dags.py | 1 +
.../api_fastapi/core_api/openapi/_private_ui.yaml | 26 +
.../core_api/openapi/v2-rest-api-generated.yaml | 170 ++-
.../api_fastapi/core_api/routes/public/__init__.py | 2 -
.../core_api/routes/public/dag_report.py | 75 -
.../api_fastapi/core_api/routes/public/dags.py | 18 +-
.../core_api/routes/public/task_instances.py | 27 +-
.../api_fastapi/core_api/routes/ui/config.py | 4 +-
.../airflow/api_fastapi/core_api/routes/ui/dags.py | 11 +
.../airflow/api_fastapi/core_api/routes/ui/grid.py | 85 +-
.../src/airflow/api_fastapi/core_api/security.py | 105 +-
.../api_fastapi/core_api/services/ui/grid.py | 7 +-
.../api_fastapi/core_api/services/ui/task_group.py | 17 +-
.../execution_api/datamodels/taskinstance.py | 2 +-
.../execution_api/routes/task_instances.py | 2 +-
.../api_fastapi/execution_api/versions/__init__.py | 4 +
.../versions/{v2025_09_23.py => v2025_10_27.py} | 17 +-
airflow-core/src/airflow/api_fastapi/main.py | 4 +
.../src/airflow/callbacks/callback_requests.py | 9 +-
.../src/airflow/cli/commands/backfill_command.py | 12 +-
.../src/airflow/config_templates/config.yml | 9 +
airflow-core/src/airflow/dag_processing/manager.py | 16 +-
.../src/airflow/dag_processing/processor.py | 92 +-
.../src/airflow/jobs/scheduler_job_runner.py | 48 +-
airflow-core/src/airflow/models/dagrun.py | 7 +-
airflow-core/src/airflow/models/mappedoperator.py | 6 +-
airflow-core/src/airflow/secrets/__init__.py | 29 +-
.../airflow/serialization/definitions/taskgroup.py | 4 +
airflow-core/src/airflow/serialization/schema.json | 2 +-
.../airflow/serialization/serialized_objects.py | 42 +-
.../airflow/serialization/serializers/pydantic.py | 2 +-
airflow-core/src/airflow/timetables/_cron.py | 47 +-
airflow-core/src/airflow/ui/eslint.config.js | 2 +
.../src/airflow/ui/openapi-gen/queries/common.ts | 8 +-
.../ui/openapi-gen/queries/ensureQueryData.ts | 57 +-
.../src/airflow/ui/openapi-gen/queries/prefetch.ts | 57 +-
.../src/airflow/ui/openapi-gen/queries/queries.ts | 57 +-
.../src/airflow/ui/openapi-gen/queries/suspense.ts | 57 +-
.../airflow/ui/openapi-gen/requests/schemas.gen.ts | 14 +-
.../ui/openapi-gen/requests/services.gen.ts | 73 +-
.../airflow/ui/openapi-gen/requests/types.gen.ts | 104 +-
airflow-core/src/airflow/ui/package.json | 3 +
airflow-core/src/airflow/ui/pnpm-lock.yaml | 53 +
.../airflow/ui/public/i18n/locales/ar/common.json | 1 -
.../ui/public/i18n/locales/ar/components.json | 5 +
.../airflow/ui/public/i18n/locales/ca/common.json | 1 -
.../ui/public/i18n/locales/ca/components.json | 5 +
.../airflow/ui/public/i18n/locales/de/common.json | 6 +-
.../ui/public/i18n/locales/de/components.json | 12 +-
.../src/airflow/ui/public/i18n/locales/de/dag.json | 2 +
.../airflow/ui/public/i18n/locales/de/dags.json | 3 +-
.../airflow/ui/public/i18n/locales/de/hitl.json | 5 +
.../airflow/ui/public/i18n/locales/el/admin.json | 166 +++
.../airflow/ui/public/i18n/locales/el/assets.json | 30 +
.../airflow/ui/public/i18n/locales/el/browse.json | 26 +
.../airflow/ui/public/i18n/locales/el/common.json | 319 +++++
.../ui/public/i18n/locales/el/components.json | 134 ++
.../src/airflow/ui/public/i18n/locales/el/dag.json | 154 ++
.../airflow/ui/public/i18n/locales/el/dags.json | 96 ++
.../ui/public/i18n/locales/el/dashboard.json | 45 +
.../airflow/ui/public/i18n/locales/el/hitl.json | 34 +
.../airflow/ui/public/i18n/locales/el/tasks.json | 10 +
.../airflow/ui/public/i18n/locales/en/common.json | 1 -
.../ui/public/i18n/locales/en/components.json | 8 +
.../src/airflow/ui/public/i18n/locales/en/dag.json | 2 +
.../airflow/ui/public/i18n/locales/es/common.json | 1 -
.../ui/public/i18n/locales/es/components.json | 5 +
.../airflow/ui/public/i18n/locales/fr/common.json | 1 -
.../ui/public/i18n/locales/fr/components.json | 10 +
.../src/airflow/ui/public/i18n/locales/fr/dag.json | 2 +
.../airflow/ui/public/i18n/locales/he/assets.json | 2 +-
.../airflow/ui/public/i18n/locales/he/common.json | 1 -
.../ui/public/i18n/locales/he/components.json | 5 +
.../airflow/ui/public/i18n/locales/hi/common.json | 1 -
.../ui/public/i18n/locales/hi/components.json | 5 +
.../airflow/ui/public/i18n/locales/hu/common.json | 1 -
.../ui/public/i18n/locales/hu/components.json | 5 +
.../airflow/ui/public/i18n/locales/it/common.json | 1 -
.../ui/public/i18n/locales/it/components.json | 5 +
.../airflow/ui/public/i18n/locales/ko/common.json | 1 -
.../ui/public/i18n/locales/ko/components.json | 5 +
.../airflow/ui/public/i18n/locales/nl/common.json | 1 -
.../ui/public/i18n/locales/nl/components.json | 9 +-
.../airflow/ui/public/i18n/locales/pl/common.json | 3 +-
.../ui/public/i18n/locales/pl/components.json | 12 +
.../src/airflow/ui/public/i18n/locales/pl/dag.json | 2 +
.../airflow/ui/public/i18n/locales/pl/dags.json | 2 +-
.../airflow/ui/public/i18n/locales/pl/hitl.json | 3 +
.../airflow/ui/public/i18n/locales/pt/common.json | 1 -
.../ui/public/i18n/locales/pt/components.json | 5 +
.../airflow/ui/public/i18n/locales/th/admin.json | 166 +++
.../airflow/ui/public/i18n/locales/th/assets.json | 30 +
.../airflow/ui/public/i18n/locales/th/browse.json | 26 +
.../airflow/ui/public/i18n/locales/th/common.json | 318 +++++
.../ui/public/i18n/locales/th/components.json | 132 ++
.../src/airflow/ui/public/i18n/locales/th/dag.json | 154 ++
.../airflow/ui/public/i18n/locales/th/dags.json | 96 ++
.../ui/public/i18n/locales/th/dashboard.json | 45 +
.../airflow/ui/public/i18n/locales/th/hitl.json | 34 +
.../airflow/ui/public/i18n/locales/th/tasks.json | 10 +
.../airflow/ui/public/i18n/locales/tr/common.json | 1 -
.../ui/public/i18n/locales/tr/components.json | 5 +
.../ui/public/i18n/locales/zh-CN/common.json | 1 -
.../ui/public/i18n/locales/zh-CN/components.json | 5 +
.../ui/public/i18n/locales/zh-TW/common.json | 1 -
.../ui/public/i18n/locales/zh-TW/components.json | 7 +-
.../airflow/ui/public/i18n/locales/zh-TW/dag.json | 6 +-
airflow-core/src/airflow/ui/rules/rem.js | 150 ++
.../src/airflow/ui/src/components/AnsiRenderer.tsx | 235 ++++
.../ui/src/components/Banner/BackfillBanner.tsx | 22 +-
.../components/DagActions/FavoriteDagButton.tsx | 33 +-
.../src/airflow/ui/src/components/DagRunInfo.tsx | 4 +-
.../ui/src/components/DataTable/DataTable.tsx | 4 +-
.../ui/src/components/DisplayMarkdownButton.tsx | 21 +-
.../ui/src/components/EditableMarkdownArea.tsx | 78 +-
.../ui/src/components/ExpandCollapseButtons.tsx | 60 +
.../src/components/FlexibleForm/FlexibleForm.tsx | 2 +-
.../airflow/ui/src/components/LimitedItemsList.tsx | 70 +-
.../ui/src/components/NeedsReviewButton.tsx | 7 +-
.../src/airflow/ui/src/components/SearchBar.tsx | 2 +-
.../ui/src/components/TaskInstanceTooltip.tsx | 4 +-
.../airflow/ui/src/components/TaskTrySelect.tsx | 2 +-
.../ui/src/components/renderStructuredLog.tsx | 52 +-
.../ui/src/components/ui/ResizableWrapper.tsx | 79 ++
airflow-core/src/airflow/ui/src/i18n/config.ts | 2 +
.../src/airflow/ui/src/layouts/BaseLayout.tsx | 2 +-
.../ui/src/layouts/Details/DagBreadcrumb.tsx | 3 +-
.../ui/src/layouts/Details/DetailsLayout.tsx | 2 +-
.../ui/src/layouts/Details/Grid/DurationTick.tsx | 17 +-
.../airflow/ui/src/layouts/Details/Grid/Grid.tsx | 20 +-
.../airflow/ui/src/layouts/Details/Grid/GridTI.tsx | 4 +-
.../ui/src/layouts/Details/Grid/TaskNames.tsx | 6 +-
.../ui/src/layouts/Details/PanelButtons.tsx | 2 +-
.../ui/src/layouts/Details/ToggleGroups.tsx | 33 +-
.../src/airflow/ui/src/layouts/Nav/AdminButton.tsx | 2 +-
.../airflow/ui/src/layouts/Nav/BrowseButton.tsx | 2 +-
.../src/airflow/ui/src/layouts/Nav/DocsButton.tsx | 2 +-
.../src/airflow/ui/src/layouts/Nav/LogoutModal.tsx | 3 +-
.../src/airflow/ui/src/layouts/Nav/Nav.tsx | 6 +-
.../airflow/ui/src/layouts/Nav/PluginMenuItem.tsx | 6 +-
.../airflow/ui/src/layouts/Nav/SecurityButton.tsx | 2 +-
.../ui/src/layouts/Nav/TimezoneMenuItem.tsx | 2 +-
.../ui/src/layouts/Nav/UserSettingsButton.tsx | 22 +-
airflow-core/src/airflow/ui/src/main.tsx | 6 +-
.../src/airflow/ui/src/mocks/handlers/dags.ts | 4 +
.../ui/src/pages/Dag/Calendar/CalendarCell.tsx | 39 +-
.../ui/src/pages/Dag/Calendar/CalendarLegend.tsx | 33 +-
.../ui/src/pages/Dag/Calendar/CalendarTooltip.tsx | 5 +-
.../ui/src/pages/Dag/Calendar/calendarUtils.ts | 76 +-
.../src/airflow/ui/src/pages/Dag/Calendar/types.ts | 8 +-
.../src/airflow/ui/src/pages/Dag/Code/Code.tsx | 2 +-
airflow-core/src/airflow/ui/src/pages/Dag/Dag.tsx | 6 +-
.../src/airflow/ui/src/pages/Dag/Header.tsx | 2 +-
.../airflow/ui/src/pages/Dag/Overview/Overview.tsx | 8 +-
airflow-core/src/airflow/ui/src/pages/DagRuns.tsx | 8 +-
.../ui/src/pages/DagsList/AssetSchedule.tsx | 2 +-
.../airflow/ui/src/pages/DagsList/DagCard.test.tsx | 152 +-
.../src/airflow/ui/src/pages/DagsList/DagCard.tsx | 18 +-
.../src/airflow/ui/src/pages/DagsList/DagsList.tsx | 6 +-
.../airflow/ui/src/pages/DagsList/RecentRuns.tsx | 38 +-
.../airflow/ui/src/pages/Dashboard/Dashboard.tsx | 4 +-
.../Dashboard/FavoriteDags/FavoriteDagCard.tsx | 5 +-
.../pages/Dashboard/FavoriteDags/FavoriteDags.tsx | 6 +-
.../ui/src/pages/Dashboard/Health/Health.tsx | 2 +-
.../HistoricalMetrics/HistoricalMetrics.tsx | 2 +-
.../pages/Dashboard/PoolSummary/PoolSummary.tsx | 24 +-
.../src/pages/Dashboard/Stats/DAGImportErrors.tsx | 2 +-
.../pages/Dashboard/Stats/PluginImportErrors.tsx | 2 +-
.../airflow/ui/src/pages/Dashboard/Stats/Stats.tsx | 8 +-
.../src/airflow/ui/src/pages/Events/Events.tsx | 28 +-
.../src/airflow/ui/src/pages/Run/Header.tsx | 2 +-
.../ui/src/pages/Task/Overview/Overview.tsx | 11 +-
.../airflow/ui/src/pages/TaskInstance/Details.tsx | 8 +-
.../ui/src/pages/TaskInstance/ExtraLinks.tsx | 4 +-
.../airflow/ui/src/pages/TaskInstance/Header.tsx | 5 +-
.../src/pages/TaskInstance/Logs/TaskLogContent.tsx | 5 +-
.../src/pages/TaskInstance/RenderedTemplates.tsx | 45 +-
.../ui/src/pages/TaskInstances/TaskInstances.tsx | 34 +-
.../src/airflow/ui/src/pages/XCom/XCom.tsx | 20 +-
.../src/airflow/ui/src/pages/XCom/XComEntry.tsx | 9 +-
.../src/airflow/ui/src/queries/useFavoriteDag.ts | 33 -
.../src/airflow/ui/src/queries/useGridRuns.ts | 4 +-
.../src/airflow/ui/src/queries/useGridStructure.ts | 3 +-
.../{useTogglePause.ts => useToggleFavoriteDag.ts} | 47 +-
.../src/airflow/ui/src/queries/useUnfavoriteDag.ts | 33 -
airflow-core/src/airflow/ui/src/queryClient.ts | 17 +-
airflow-core/src/airflow/ui/src/router.tsx | 2 +-
.../src/airflow/ui/src/utils/datetimeUtils.test.ts | 16 +-
.../src/airflow/ui/src/utils/datetimeUtils.ts | 17 +-
airflow-core/src/airflow/ui/src/utils/query.ts | 34 +-
.../src/airflow/ui/src/utils/tokenHandler.test.ts | 54 -
.../src/airflow/ui/src/utils/tokenHandler.ts | 51 -
.../usePersistentResizableState.ts} | 26 +-
airflow-core/src/airflow/utils/file.py | 23 +-
airflow-core/src/airflow/utils/log/log_reader.py | 3 +-
airflow-core/tests/unit/always/test_connection.py | 12 +-
.../auth/managers/simple/test_middleware.py | 62 -
.../core_api/routes/public/test_dag_report.py | 135 --
.../core_api/routes/public/test_dag_run.py | 74 +
.../core_api/routes/public/test_dags.py | 41 +
.../core_api/routes/public/test_task_instances.py | 141 +-
.../api_fastapi/core_api/routes/ui/test_dags.py | 36 +
.../api_fastapi/core_api/routes/ui/test_grid.py | 66 +-
.../unit/api_fastapi/core_api/test_security.py | 87 ++
.../versions/head/test_task_instances.py | 71 +
.../versions/v2025_04_28}/__init__.py | 0
.../versions/v2025_09_23}/__init__.py | 0
.../versions/v2025_09_23/test_task_instances.py | 91 ++
airflow-core/tests/unit/api_fastapi/test_app.py | 28 +
.../tests/unit/callbacks/test_callback_requests.py | 22 +-
.../unit/cli/commands/test_backfill_command.py | 75 +
airflow-core/tests/unit/core/test_configuration.py | 6 +-
.../tests/unit/dag_processing/test_processor.py | 351 ++++-
airflow-core/tests/unit/dags/.airflowignore_glob | 7 +-
...gate_ignore.py => test_explicit_dont_ignore.py} | 5 +-
.../dags/subdir2/subdir3/should_ignore_this.py} | 0
.../dags/subdir2/subdir3/test_explicit_ignore.py} | 0
airflow-core/tests/unit/jobs/test_scheduler_job.py | 190 +++
airflow-core/tests/unit/jobs/test_triggerer_job.py | 83 ++
airflow-core/tests/unit/models/test_dag.py | 25 +
airflow-core/tests/unit/models/test_dagrun.py | 77 +-
.../tests/unit/models/test_mappedoperator.py | 221 +++
.../unit/serialization/test_dag_serialization.py | 73 +-
.../unit/serialization/test_serialized_objects.py | 28 +
.../unit/timetables/test_cron_mixin.py} | 31 +-
.../tests/unit/utils/log/test_log_reader.py | 2 +-
airflow-core/tests/unit/utils/test_file.py | 35 +-
airflow-core/tests/unit/utils/test_task_group.py | 34 +-
airflow-ctl/pyproject.toml | 4 +-
.../airflowctl/api/datamodels/auth_generated.py | 2 +-
.../src/airflowctl/api/datamodels/generated.py | 11 +-
contributing-docs/08_static_code_checks.rst | 39 +-
dev/airflow-github | 8 +-
dev/breeze/README.md | 9 -
dev/breeze/doc/ci/02_images.md | 4 +-
dev/breeze/pyproject.toml | 4 +-
.../commands/release_management_commands.py | 10 +-
.../src/airflow_breeze/commands/setup_commands.py | 4 -
.../files/simple_auth_manager_passwords.json | 2 +-
dev/breeze/src/airflow_breeze/global_constants.py | 12 +-
.../airflow_breeze/utils/docker_command_utils.py | 3 +-
dev/breeze/src/airflow_breeze/utils/path_utils.py | 75 +-
dev/breeze/src/airflow_breeze/utils/reinstall.py | 9 +-
.../src/airflow_breeze/utils/selective_checks.py | 17 -
dev/breeze/src/airflow_breeze/utils/visuals.py | 2 +-
dev/breeze/tests/test_selective_checks.py | 41 +-
dev/breeze/uv.lock | 1481 +++++++++++---------
dev/i18n/check_translations_completeness.py | 34 +-
.../react_plugin_template/vite.config.ts | 3 +-
devel-common/pyproject.toml | 5 +-
docker-stack-docs/README.md | 10 +-
docker-stack-docs/build-arg-ref.rst | 2 +-
docker-stack-docs/changelog.rst | 7 +
.../customizing/add-build-essential-custom.sh | 2 +-
.../docker-examples/customizing/custom-sources.sh | 2 +-
.../customizing/pypi-dev-runtime-deps.sh | 2 +-
.../customizing/pypi-extras-and-deps.sh | 2 +-
.../customizing/pypi-selected-version.sh | 2 +-
.../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 +-
.../restricted/restricted_environments.sh | 2 +-
docker-stack-docs/entrypoint.rst | 14 +-
docs/images/documentation_architecture.md5sum | 2 +-
docs/images/documentation_architecture.png | Bin 167984 -> 144710
bytes
docs/images/documentation_architecture.py | 4 +-
docs/images/logos/asf_logo_wide.png | Bin 0 -> 32678 bytes
docs/spelling_wordlist.txt | 2 +
generated/PYPI_README.md | 12 +-
.../tests/chart_utils/helm_template_generator.py | 49 +-
performance/requirements.txt | 2 +-
.../amazon/aws/auth_manager/routes/login.py | 8 +-
.../src/airflow/providers/amazon/version_compat.py | 1 +
providers/common/compat/provider.yaml | 1 +
providers/common/compat/pyproject.toml | 6 +-
.../airflow/providers/common/compat/__init__.py | 2 +-
providers/common/io/provider.yaml | 1 +
providers/common/io/pyproject.toml | 6 +-
.../io/src/airflow/providers/common/io/__init__.py | 2 +-
providers/common/sql/provider.yaml | 1 +
providers/common/sql/pyproject.toml | 6 +-
.../src/airflow/providers/common/sql/__init__.py | 2 +-
.../src/airflow/providers/fab/version_compat.py | 1 +
...f9d09365976e.js => 743.935ed3d26e56ed8f63d3.js} | 2 +-
...txt => 743.935ed3d26e56ed8f63d3.js.LICENSE.txt} | 0
.../airflowDefaultTheme.ff5a35f322070b094aa2.css | 2 +-
.../providers/fab/www/static/dist/manifest.json | 4 +-
.../dist/materialIcons.3e67dd6fbfcc4f3b5105.css | 2 +-
.../static/dist/runtime.6ad9da077ea169d60db9.js | 1 +
.../static/dist/runtime.ad800fc1845ad5c6ddeb.js | 1 -
.../fab/src/airflow/providers/fab/www/views.py | 10 +-
providers/fab/www-hash.txt | 2 +-
.../keycloak/auth_manager/routes/login.py | 8 +-
.../airflow/providers/keycloak}/version_compat.py | 2 +-
providers/smtp/provider.yaml | 1 +
providers/smtp/pyproject.toml | 6 +-
.../smtp/src/airflow/providers/smtp/__init__.py | 2 +-
providers/snowflake/pyproject.toml | 4 +-
providers/standard/provider.yaml | 1 +
providers/standard/pyproject.toml | 6 +-
.../src/airflow/providers/standard/__init__.py | 2 +-
pyproject.toml | 9 +-
reproducible_build.yaml | 4 +-
scripts/ci/install_breeze.sh | 2 -
scripts/ci/prek/check_imports_in_providers.py | 2 +-
scripts/ci/prek/check_license.py | 2 -
scripts/ci/prek/common_prek_utils.py | 32 +-
scripts/ci/prek/ruff_format.py | 2 +-
scripts/ci/prek/supported_versions.py | 2 +-
scripts/ci/prek/update_breeze_config_hash.py | 69 -
scripts/ci/prek/upgrade_important_versions.py | 17 +-
scripts/in_container/bin/install_java.sh | 11 +-
scripts/in_container/run_schema_defaults_check.py | 3 +
scripts/tools/setup_breeze | 2 +-
.../src/airflow_shared/logging/structlog.py | 29 +-
shared/logging/tests/logging/test_structlog.py | 49 +-
.../secrets_masker/secrets_masker.py | 19 +-
.../tests/secrets_masker/test_secrets_masker.py | 41 +
task-sdk/pyproject.toml | 5 +-
task-sdk/src/airflow/sdk/__init__.py | 2 +-
task-sdk/src/airflow/sdk/api/client.py | 5 +
.../src/airflow/sdk/api/datamodels/_generated.py | 4 +-
task-sdk/src/airflow/sdk/bases/operator.py | 2 +-
.../airflow/sdk/definitions/asset/decorators.py | 5 +-
task-sdk/src/airflow/sdk/definitions/dag.py | 49 +-
task-sdk/src/airflow/sdk/definitions/variable.py | 1 -
task-sdk/src/airflow/sdk/execution_time/context.py | 108 +-
.../airflow/sdk/execution_time/secrets/__init__.py | 23 +-
.../sdk/execution_time/secrets/execution_api.py | 146 ++
.../src/airflow/sdk/execution_time/supervisor.py | 112 +-
task-sdk/tests/conftest.py | 42 +
task-sdk/tests/task_sdk/api/test_client.py | 19 +-
.../task_sdk/definitions/test_asset_decorators.py | 23 +
.../tests/task_sdk/definitions/test_connection.py | 4 +-
task-sdk/tests/task_sdk/definitions/test_dag.py | 15 +
.../tests/task_sdk/definitions/test_variables.py | 6 +-
.../tests/task_sdk/execution_time/test_context.py | 99 ++
.../task_sdk/execution_time/test_context_cache.py | 7 +-
.../tests/task_sdk/execution_time/test_secrets.py | 169 +++
.../task_sdk/execution_time/test_supervisor.py | 44 +
.../task_sdk/execution_time/test_task_runner.py | 2 +-
401 files changed, 9728 insertions(+), 2858 deletions(-)
delete mode 100644 airflow-core/docs/img/apache.jpg
create mode 100644 airflow-core/docs/img/asf_logo_wide.png
create mode 100644 airflow-core/newsfragments/56583.significant.rst
create mode 100644 airflow-core/newsfragments/56609.significant.rst
delete mode 100644
airflow-core/src/airflow/api_fastapi/auth/managers/simple/middleware.py
delete mode 100644
airflow-core/src/airflow/api_fastapi/core_api/routes/public/dag_report.py
copy
airflow-core/src/airflow/api_fastapi/execution_api/versions/{v2025_09_23.py =>
v2025_10_27.py} (55%)
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/el/admin.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/el/assets.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/el/browse.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/el/common.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/el/components.json
create mode 100644 airflow-core/src/airflow/ui/public/i18n/locales/el/dag.json
create mode 100644 airflow-core/src/airflow/ui/public/i18n/locales/el/dags.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/el/dashboard.json
create mode 100644 airflow-core/src/airflow/ui/public/i18n/locales/el/hitl.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/el/tasks.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/th/admin.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/th/assets.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/th/browse.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/th/common.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/th/components.json
create mode 100644 airflow-core/src/airflow/ui/public/i18n/locales/th/dag.json
create mode 100644 airflow-core/src/airflow/ui/public/i18n/locales/th/dags.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/th/dashboard.json
create mode 100644 airflow-core/src/airflow/ui/public/i18n/locales/th/hitl.json
create mode 100644
airflow-core/src/airflow/ui/public/i18n/locales/th/tasks.json
create mode 100644 airflow-core/src/airflow/ui/rules/rem.js
create mode 100644 airflow-core/src/airflow/ui/src/components/AnsiRenderer.tsx
create mode 100644
airflow-core/src/airflow/ui/src/components/ExpandCollapseButtons.tsx
create mode 100644
airflow-core/src/airflow/ui/src/components/ui/ResizableWrapper.tsx
delete mode 100644 airflow-core/src/airflow/ui/src/queries/useFavoriteDag.ts
copy airflow-core/src/airflow/ui/src/queries/{useTogglePause.ts =>
useToggleFavoriteDag.ts} (54%)
delete mode 100644 airflow-core/src/airflow/ui/src/queries/useUnfavoriteDag.ts
delete mode 100644 airflow-core/src/airflow/ui/src/utils/tokenHandler.test.ts
delete mode 100644 airflow-core/src/airflow/ui/src/utils/tokenHandler.ts
copy airflow-core/src/airflow/ui/src/{context/timezone/TimezoneProvider.tsx =>
utils/usePersistentResizableState.ts} (55%)
delete mode 100644
airflow-core/tests/unit/api_fastapi/auth/managers/simple/test_middleware.py
delete mode 100644
airflow-core/tests/unit/api_fastapi/core_api/routes/public/test_dag_report.py
copy airflow-core/{src/airflow/_shared =>
tests/unit/api_fastapi/execution_api/versions/v2025_04_28}/__init__.py (100%)
copy airflow-core/{src/airflow/_shared =>
tests/unit/api_fastapi/execution_api/versions/v2025_09_23}/__init__.py (100%)
create mode 100644
airflow-core/tests/unit/api_fastapi/execution_api/versions/v2025_09_23/test_task_instances.py
copy airflow-core/tests/unit/dags/subdir1/{test_negate_ignore.py =>
test_explicit_dont_ignore.py} (89%)
copy airflow-core/{src/airflow/api/common/__init__.py =>
tests/unit/dags/subdir2/subdir3/should_ignore_this.py} (100%)
copy airflow-core/{src/airflow/_shared/__init__.py =>
tests/unit/dags/subdir2/subdir3/test_explicit_ignore.py} (100%)
rename airflow-core/{src/airflow/api_fastapi/core_api/datamodels/dag_report.py
=> tests/unit/timetables/test_cron_mixin.py} (55%)
create mode 100644 docs/images/logos/asf_logo_wide.png
rename
providers/fab/src/airflow/providers/fab/www/static/dist/{743.fc7a7c6ef9d09365976e.js
=> 743.935ed3d26e56ed8f63d3.js} (99%)
rename
providers/fab/src/airflow/providers/fab/www/static/dist/{743.fc7a7c6ef9d09365976e.js.LICENSE.txt
=> 743.935ed3d26e56ed8f63d3.js.LICENSE.txt} (100%)
create mode 100644
providers/fab/src/airflow/providers/fab/www/static/dist/runtime.6ad9da077ea169d60db9.js
delete mode 100644
providers/fab/src/airflow/providers/fab/www/static/dist/runtime.ad800fc1845ad5c6ddeb.js
copy providers/{fab/src/airflow/providers/fab =>
keycloak/src/airflow/providers/keycloak}/version_compat.py (95%)
delete mode 100755 scripts/ci/prek/update_breeze_config_hash.py
copy airflow-core/src/airflow/typing_compat.py =>
task-sdk/src/airflow/sdk/execution_time/secrets/__init__.py (66%)
create mode 100644
task-sdk/src/airflow/sdk/execution_time/secrets/execution_api.py
create mode 100644 task-sdk/tests/task_sdk/execution_time/test_secrets.py