This is an automated email from the ASF dual-hosted git repository.
ephraimanierobi pushed a change to branch v3-1-stable
in repository https://gitbox.apache.org/repos/asf/airflow.git
from 9b8afb536fc Sync v3-1-stable with v3-1-test to release python client
3.1.3rc3 (#58530)
add bd4a35a823b [v3-1-test] Update release instructions for Airflow Ctl
(#58206) (#58212)
add 1a0e0b4fe07 [v3-1-test] Make sure regenerating provider dependencies
happens only once (#58198) (#58214)
add e62f599b5af [v3-1-test] Fix CI upgrade script to not delete branch
from origin remote (#58163) (#58179)
add 3bdcf47ec94 [v3-1-test] Fix check_files.py script after source tar was
renamed (#58216) (#58220)
add 40cd1a8963c fixup! [v3-1-test] Fix check_files.py script after source
tar was renamed (#58216) (#58220) (#58192)
add 47f05ac8659 [v3-1-test] Patch pools should have an optional
description (#58066) (#58169)
add 110b293beb9 [v3-1-test] Fix a few typos in release process for Airflow
(#58219) (#58240)
add d529026a967 [v3-1-test] Update pyproject.toml files with pytest>=9.0.0
TOML syntax (#58182) (#58241)
add 5e96d3cd0f3 CI: Upgrade important CI environment (#58247)
add 0cb4ad97e54 [v3-1-test] Add support for "reconnecting" Supervisor
Comms and logs in task processes (#57212) (#58263)
add e2c8fac90f7 [v3-1-test] Support for "reconnecting" Supervisor Comms
from task process when `dag.test()` is used (#58147) (#58266)
add 45c4ef0b6fe [v3-1-test] Add check for schedule parameter for system
tests (#58254) (#58255)
add 13109d5d85f [v3-1-test] Mask kwargs on illegal args (#58252) (#58283)
add dbef3e1479b Fix static checks on provider examples (#58286)
add 5e9ba20810a [v3-1-test] Fix atomicity issue in
SerializedDagModel.write_dag preventing orphaned DagVersions (#58259) (#58281)
add 69c09cf3495 fix(hitl): fix HITLTrigger params dump (#58297)
add bb02ca4dc55 [v3-1-test] Fix link on installing-from-sources page
(#58323) (#58324)
add 1673313a905 [v3-1-test] CI: Upgrade ruff version in CI environment
(#58287) (#58301)
add 7de7a3e5822 [v3-1-test] Fix: TriggerDagRunOperator stuck in deferred
state with reset_dag_run (#57756) (#57968) (#58333)
add d0cac2518f6 [v3-1-test] Breeze: Automatically set CHOKIDAR_USEPOLLING
for WSL users in --dev-mode (#57846) (#58080) (#58345)
add 02515ca48d9 [v3-1-test] Update main as 3.1.3 has been released
(#58341) (#58347)
add 4a9cba85e75 Fix reproducible build command
add 89227e21258 [v3-1-test] Change old performance sub-project to
pyproject.toml (#58372) (#58376)
add 39309b8ea54 [v3-1-test] Fix documentation for installing from sources
(#58366) (#58373)
add 2ec03d3bebb [v3-1-test] Fix config list output for multi-line values
(#58115) (#58378)
add 2c9a64c5e51 [v3-1-test] Respect default_args in DAG when its set to a
"falsy" value (#57853) (#58396)
add fd07ecc6ffe [v3-1-test] Update Airflow version references to `3.X` in
`README_RELEASE_PROVIDER.md` (#58392) (#58402)
add 03bdabdd4f9 [v3-1-test] Fix TypeError in parseStreamingLogContent for
non-string data (#58314) (#58399)
add 182027d718f [v3-1-test] Improve `disable_bundle_versioning` config
docs (#58400) (#58405)
add 8ff110b1e65 [v3-1-test] Minor fixes to the release command (#58426)
(#58431)
add 97c8180f4f2 CI: Upgrade important CI environment (#58457)
add bdd5ca7d014 [v3-1-test] Limit Python prek hooks to use Python 3.10
(#58439) (#58458)
add b0b28897e2e [v3-1-test] Bump glob in React core UI (#58452) (#58461)
add c244044aa97 [v3-1-test] Bump glob from 10.4.5 to 10.5.0 in
/airflow-core/src/airflow/api_fastapi/auth/managers/simple/ui (#58443) (#58463)
add fb02b988776 [v3-1-test] Remove leftover reference to glob 10.4.5
(#58467) (#58468)
add bbb1bda8416 [v3-1-test] Manages cross-distribution dependencies better
(#58430) (#58472)
add ad53f8eed9b [v3-1-test] Fix task retry logic to respect retries for
all exit codes (#58384) (#58478)
add 0440695ced6 [v3-1-test] Fix Asset URI normalization for user info
without password (#51877) (#57650) (#58485)
add 20ad75b4052 [v3-1-test] Fix nit in release docs fpr python client
(#58500) (#58504)
add 1e0c49151f3 [v3-1-test] Fix operator extra links not appearing on
failed tasks (#58227) (#58508)
add 7c281d83f55 [v3-1-test] Fix db cleanup logging behavior and docstrings
(#58459) (#58523)
add 627e88ae185 [v3-1-test] Also remove old -source artifacts from SVN
release folder (#58481) (#58525)
add 6c95b6bed7d [v3-1-test] Popup is getting automatically closed when
there is a DAG… (#58538)
add b4aaa161089 [v3-1-test] Fix group TI tab memory (#58288) (#58557)
add e6fdca4baa5 [v3-1-test] Fix tag filter with special characters
(#58280) (#58558)
add d0c121b1aaa [v3-1-test] Properly highlight TaskGroup nodes when
selected (#58118) (#58559)
add f91d5a4d54b [v3-1-test] Fix duration chart duration format (#58561)
(#58564)
add fd99eb006ac CI: Upgrade important CI environment (#58571)
add 21eb5d85409 [v3-1-test] Convert the CI Files enum to auto (#58577)
(#58580)
add d40b49b2a45 [v3-1-test] Update references to mask_secret in the docs
to use the latest path (#58526) (#58534)
add 068109d0f7e [v3-1-test] Eliminate race condition in
test_apply_version_suffix_to_non_provider_pyproject_tomls due to xdist runs
(#58593) (#58595)
add 527d393f8c4 [v3-1-test] Fix potential test failures on Py 3.13 against
reset_logging (#57417) (#58600)
add 14ef83cde8f [v3-1-test] Add `check-release-files` command to verify
expected packages in Airflow SVN. (#58579) (#58604)
add 3e2d7c602bc [v3-1-test] feat: add warning for missing podman support
in breeze (#58599) (#58602)
add 4feddca652a [v3-1-test] Fix startup issue with `breeze start-airflow`
command for airflow 2 due to dependencies (#58606) (#58609)
add f6297d041a9 [v3-1-test] Use filelock to fix race condition in version
suffix test for xdist runs (#58608) (#58616)
add 5fc866c1508 [v3-1-test] Update python client release email template
(#58607) (#58622)
add 30d72781349 [v3-1-test] Fix race condition in test_execute_wildcard
for LocalFilesystemToGCSOperator (#58613) (#58617)
add 3f6259abc0c [v3-1-test] Fix Dag doc markdown display issue (#58340)
(#58627)
add 5bb6290739d Add number of queries guard for ui grid (#57977)
add 59d928a73b5 Change translation freeze setting to False (#56116)
(#58631)
add bb531eb533e [v3-1-test] Convert `check_translation_completeness.py`
into breeze command (#58637) (#58654)
add 2fdda2dad37 [v3-1-test] Fix connection retrieval from secrets backend
without conn_type (#58528) (#58664)
add d5208729e28 [v3-1-test] Improve 404 handling by adding fallback route
for invalid URLs (#58546) (#58629)
add 5ca0e517d60 Add number of queries guard for ui structure (#58051)
(#58632)
add 147eca049d0 Update refresh token flow (#55506) (#58649)
add 2c2eb623179 [v3-1-test] Minor updates to the python client release
guide (#58665) (#58668)
add b4c305440e7 [v3-1-test] Make click group naming consistent - all
contain now _group suffix (#58677) (#58699)
add 22487881133 CI: Upgrade important CI environment (#58700)
add 5cba9a3d83d [v3-1-test] BUGFIX: Fixed timeout_after in run_trigger
method of TriggerRunner (#58282) (#58703)
add d6026f08a9a [v3-1-test] fix(asset-alias): Preserve `Asset.extra` when
using `AssetAlias` (#58038) (#58712)
add 681ec32f295 [v3-1-test] add mprocs support for `breeze start-airflow`
command (#58702) (#58720)
add dc705d8abea [v3-1-test] CI: Upgrade important CI environment (#58721)
add 5cd8bd02693 [v3-1-test] Add one as a fallback grid value for number of
dagruns (#58680) (#58735)
add e8e8aa4e430 [v3-1-test] Fix automatic backport workflow race condition
(#58705) (#58706)
add 60030680ac5 [v3-1-test] Redact secrets in rendered templates properly
to not expose them on UI (#58767) (#58772)
add 452b2a74d8b [v3-1-test] fix: correct typos in
MANUALLY_BUILDING_IMAGES.md (#58761) (#58788)
add 23eb94763eb [v3-1-test] README_RELEASE_AIRFLOWCTL: Fix typos; `airfow`
-> `airflow` (#58776) (#58789)
add 7d62cbfc395 [v3-1-test] Mask secrets properly when using deprecated
import path (#58662) (#58726)
add 9f5f0d43f38 [v3-1-test] Improve documentation and behaviour of mprocs
(#58718) (#58798)
add d5b6ca4f85f [v3-1-test] Fix airflow-ctl image generation failing with
latest prek version (#58732) (#58799)
add 3fa4f8c85cb [v3-1-test] fix(models/dag): handle pre AIP-39 DagRuns
(#58229) (#58773)
add fbcc9c99118 [v3-1-test] build: upgrade hatch to 1.16.1 (#58800)
(#58804)
add 11d76da33f2 [v3-1-test] Fix main failing on providers dependency bump
(#58795) (#58802)
add dd2a2069330 [v3-1-test] Fix airflow-ctl image generation failing with
latest prek version (#58732) (#58823)
add ade2087f2f0 [v3-1-test] Fix Task-SDK file path reference in testing
doc (#58809) (#58810)
add 3c305f2d5a2 [v3-1-test] Fix incorrect backfill duration calculation in
Grid view (#58813) (#58816)
add 1d0c68702a0 [v3-1-test] docs(asset): enhance asset extra documentation
(#58769) (#58830)
add 592e4165532 [v3-1-test] Add CODEOWNERS entry for Airflow CLI (#58784)
(#58831)
add 2c7f8527124 [v3-1-test] CI: Upgrade important CI environment (#58839)
(#58844)
add 6fe035f777d anual backport 160db5b from PR #58835 (#58847)
add e7cd46d2674 [v3-1-test] Fix(UI): Improve mobile responsiveness of
Dashboard sections (#58811) (#58853)
add 179737cf61f [v3-1-test] Remove global from breeze testing commands
(#58854) (#58858)
add d598aefff97 [v3-1-test] update zizmor prek hook to version 1.18.0
(#58860) (#58862)
add 8cf6b0e9fbd [v3-1-test] Remove global from breeze
PROVIDER_DEPENDENCIES (#58857) (#58865)
add 18207b5009d [v3-1-test] Bugfix/remove global from breeze (#58866)
(#58873)
add d643a9d4396 [v3-1-test] Backport: Remove global from prek CI scripts
#58872 (#58874)
add 9c512d3871c [v3-1-test] Synchronize the list of people who can publish
docs and build images (#58876) (#58877)
add 0dc253212eb [v3-1-test] Add additional clarifying docs for TaskGroup
params (#58511) (#58880)
add a23484b91b6 [v3-1-test] 56058: Removing refresh state consumption for
Dag header (#58389) (#58692)
add e90405c0516 [v3-1-test] Docs: update UIAlert import path and usage for
v3 (#58089) (#58090) (#58891)
add dff8e921986 [v3-1-test] BUGFIX: trigger ui parameter field is dict
when param.value is null (#58682) (#58899)
add 549c37d6b7d [v3-1-test] Fix the `__init__.py` for tests (#58211)
(#58213)
add 0ada28f11eb [v3-1-test] Add prompt to breeze container (#58879)
(#58884)
add 1ba88b75cd6 [v3-1-test] Select deadlines by id so that deadlines
associated with other dagruns of same run_id are not pruned. (#58574) (#58910)
add b7f2eef6e5f [v3-1-test] Fix `breeze setup autocomplete` references
(#58898) (#58914)
add e4c6296c33e [v3-1-test] Return dag tags in alphabetical order (#58883)
(#58904)
add 4fd56fa79de [v3-1-test] fix string to datetime pydantic and test
(#58791) (#58916)
add 006bac55b46 [v3-1-test] Small updates to release process (PMC provider
check) (#58913) (#58917)
add a01f3ef4600 Add migration options for Airflow 2 users using database
access in tasks (#57479)
add 65cde8caa07 make sure the taskInstances's endDate is not null (#58435)
add 7fbfffd9bf8 +Parse string with timezone to dayjs object, rather than
create dayjs object and convert it (#57880)
add ea9602e4081 Add Consuming Tasks in asset header (#58060)
add c288246c723 Add missing Dag run table translation (#58572)
add 3e3bd216b57 Fix for object rendering in HITL interface (#58611)
add 5f23cd8b67a docs: Clarify masking in Connection extra JSON is
keyword-dependent (#58587)
add 2ee525c205b [v3-1-test] Fix LocalExecutor memory spike by applying
gc.freeze (#58365) (#58934)
add f0c4df4e51d Fix backfill max_active_runs race condition with
concurrent schedulers (#58807) (#58935)
add 4b3cad4c20b [v3-1-test] Add missing PL translations 2025-11-24
(#58640) (#58939)
add 6afa5ac74f6 [v3-1-test] Improve startup information printed when
Breeze starts (#58926) (#58927)
add 6481052f7f2 [v3-1-test] Do not remove .pyc and .pyo files after
building Python (#58944) (#58947)
add 7c278565ca3 [v3-1-test] Update badges of Airflow: add prek and use
nicer table formatting (#58930) (#58960)
add 1c6e20afe04 [v3-1-test] Fix exception when logging stdout with a
custom %-fmt string. (#58959) (#58963)
add 400371bb8fb CI: Upgrade important CI environment (#58967)
add 423e63f7898 CLose translations gap in DE as backport frmo main
2025-12-02 (#58971)
add fbd3e628561 Fix static check failure on v3-1-test branch (#58974)
add 8a24ad71b28 [v3-1-test] Bump minimum prek version to 0.2.0 (#58952)
(#58977)
add efcf97c70fe [v3-1-test] Fix assets used only as inlets being
incorrectly orphaned (#58303) (#58368) (#58986)
add 8918f98665f Find only relevant up/downstream tis when clearing
(#57758) (#58987)
add b206f815c20 [v3-1-test] fix(i18n): Trasnalte trigger as 觸發器, triggerer
as 觸發者 and dagRun.triggeredBy as 觸發來源 (#58988) (#58989)
add ddf194d9634 Update version to 3.1.4 and task-sdk to 1.1.4
add 406a0785987 Update RELEASE_NOTES.rst
No new revisions were added by this update.
Summary of changes:
.github/CODEOWNERS | 3 +
.github/actions/breeze/action.yml | 2 +-
.github/actions/install-prek/action.yml | 4 +-
.github/dependabot.yml | 54 +-
.github/workflows/airflow-distributions-tests.yml | 2 +-
.github/workflows/automatic-backport.yml | 10 +-
.github/workflows/basic-tests.yml | 19 +-
.github/workflows/ci-image-checks.yml | 2 +-
.github/workflows/publish-docs-to-s3.yml | 4 +-
.github/workflows/release_dockerhub_image.yml | 7 +-
.gitignore | 4 +-
.pre-commit-config.yaml | 16 +-
Dockerfile | 4 +-
Dockerfile.ci | 38 +-
INSTALL | 64 +-
README.md | 38 +-
RELEASE_NOTES.rst | 84 +
.../docs/authoring-and-scheduling/assets.rst | 50 +-
airflow-core/docs/best-practices.rst | 4 +-
airflow-core/docs/conf.py | 7 +
airflow-core/docs/core-concepts/dags.rst | 3 +
airflow-core/docs/core-concepts/debug.rst | 2 +-
airflow-core/docs/howto/customize-ui.rst | 8 +-
airflow-core/docs/howto/set-up-database.rst | 2 +-
airflow-core/docs/img/airflow_erd.sha256 | 2 +-
airflow-core/docs/img/airflow_erd.svg | 4760 +++++++++++---------
.../docs/installation/installing-from-pypi.rst | 5 +-
.../docs/installation/installing-from-sources.rst | 15 +-
.../docs/installation/supported-versions.rst | 2 +-
.../docs/installation/upgrading_to_airflow3.rst | 95 +-
airflow-core/docs/public-airflow-interface.rst | 3 +
.../security/secrets/mask-sensitive-values.rst | 10 +-
airflow-core/pyproject.toml | 4 +-
airflow-core/src/airflow/__init__.py | 2 +-
airflow-core/src/airflow/api_fastapi/app.py | 2 +
.../api_fastapi/auth/managers/base_auth_manager.py | 11 +-
.../auth/managers/simple/ui/package-lock.json | 7 +-
.../auth/managers/simple/ui/pnpm-lock.yaml | 12 +-
.../auth/middlewares}/__init__.py | 0
.../api_fastapi/auth/middlewares/refresh_token.py | 68 +
.../src/airflow/api_fastapi/core_api/app.py | 6 +
.../api_fastapi/core_api/datamodels/dags.py | 6 +
.../api_fastapi/core_api/datamodels/pools.py | 2 +-
.../api_fastapi/core_api/datamodels/ui/common.py | 4 +-
.../api_fastapi/core_api/openapi/_private_ui.yaml | 2 +-
.../core_api/openapi/v2-rest-api-generated.yaml | 35 -
.../api_fastapi/core_api/routes/public/auth.py | 20 -
.../core_api/routes/public/task_instances.py | 60 +-
.../api_fastapi/core_api/routes/ui/structure.py | 3 +
.../src/airflow/config_templates/config.yml | 5 +
airflow-core/src/airflow/configuration.py | 8 +
.../example_dags/example_dynamic_task_mapping.py | 32 +-
.../src/airflow/executors/local_executor.py | 37 +-
.../src/airflow/jobs/scheduler_job_runner.py | 49 +-
.../src/airflow/jobs/triggerer_job_runner.py | 7 +-
.../0082_3_1_0_make_bundle_name_not_nullable.py | 15 +-
airflow-core/src/airflow/models/dag.py | 9 +-
airflow-core/src/airflow/models/dag_version.py | 1 -
airflow-core/src/airflow/models/dagrun.py | 2 +-
airflow-core/src/airflow/models/taskinstance.py | 273 +-
.../airflow/serialization/serialized_objects.py | 51 +-
airflow-core/src/airflow/settings.py | 15 +-
.../src/airflow/ui/openapi-gen/queries/common.ts | 6 -
.../ui/openapi-gen/queries/ensureQueryData.ts | 11 -
.../src/airflow/ui/openapi-gen/queries/prefetch.ts | 11 -
.../src/airflow/ui/openapi-gen/queries/queries.ts | 11 -
.../src/airflow/ui/openapi-gen/queries/suspense.ts | 11 -
.../airflow/ui/openapi-gen/requests/schemas.gen.ts | 4 +-
.../ui/openapi-gen/requests/services.gen.ts | 24 +-
.../airflow/ui/openapi-gen/requests/types.gen.ts | 27 +-
airflow-core/src/airflow/ui/pnpm-lock.yaml | 35 +-
airflow-core/src/airflow/ui/public/i18n/README.md | 68 +-
.../airflow/ui/public/i18n/locales/de/assets.json | 1 +
.../airflow/ui/public/i18n/locales/de/common.json | 1 +
.../airflow/ui/public/i18n/locales/en/assets.json | 1 +
.../airflow/ui/public/i18n/locales/en/common.json | 1 +
.../airflow/ui/public/i18n/locales/pl/common.json | 1 +
.../ui/public/i18n/locales/zh-TW/common.json | 8 +-
.../ui/public/i18n/locales/zh-TW/dashboard.json | 2 +-
.../components/ActionAccordion/ActionAccordion.tsx | 5 +-
.../ui/src/components/Assets/AssetEvents.tsx | 2 +-
.../Clear/TaskInstance/ClearTaskInstanceButton.tsx | 20 +-
.../airflow/ui/src/components/DateTimeInput.tsx | 2 +-
.../airflow/ui/src/components/DurationChart.tsx | 35 +-
.../src/components/FlexibleForm/FieldSelector.tsx | 7 +-
.../src/airflow/ui/src/components/HeaderCard.tsx | 6 +-
.../airflow/ui/src/components/ReactMarkdown.tsx | 180 +-
.../ui/src/hooks/navigation/useNavigation.ts | 22 +-
.../airflow/ui/src/layouts/Details/Graph/Graph.tsx | 6 +-
.../ui/src/layouts/Details/PanelButtons.tsx | 10 +-
.../src/airflow/ui/src/pages/Asset/Header.tsx | 14 +-
.../airflow/ui/src/pages/AssetsList/AssetsList.tsx | 5 +-
.../ui/src/pages/AssetsList/DependencyPopover.tsx | 2 +-
.../ui/src/pages/Dag/Backfills/Backfills.tsx | 5 +-
.../src/airflow/ui/src/pages/Dag/Code/Code.tsx | 7 +-
airflow-core/src/airflow/ui/src/pages/Dag/Dag.tsx | 8 +-
.../src/airflow/ui/src/pages/Dag/Header.tsx | 3 -
airflow-core/src/airflow/ui/src/pages/DagRuns.tsx | 9 +-
.../src/airflow/ui/src/pages/DagsList/DagTags.tsx | 2 +-
.../HistoricalMetrics/HistoricalMetrics.tsx | 6 +-
airflow-core/src/airflow/ui/src/pages/Error.tsx | 5 +-
.../src/airflow/ui/src/pages/Events/Events.tsx | 8 +-
.../pages/GroupTaskInstance/GroupTaskInstance.tsx | 10 +-
.../ui/src/pages/GroupTaskInstance/Header.tsx | 9 +-
.../pages/HITLTaskInstances/HITLTaskInstances.tsx | 20 +-
.../ui/src/pages/MappedTaskInstance/Header.tsx | 9 +-
.../MappedTaskInstance/MappedTaskInstance.tsx | 9 +-
.../src/airflow/ui/src/pages/Pools/PoolForm.tsx | 14 +-
.../src/airflow/ui/src/pages/Run/Header.tsx | 9 +-
airflow-core/src/airflow/ui/src/pages/Run/Run.tsx | 7 +-
.../airflow/ui/src/pages/TaskInstance/Header.tsx | 21 +-
.../src/pages/TaskInstance/RenderedTemplates.tsx | 12 +-
.../ui/src/pages/TaskInstance/TaskInstance.tsx | 5 +-
.../ui/src/pages/TaskInstances/TaskInstances.tsx | 20 +-
.../src/airflow/ui/src/pages/XCom/XCom.tsx | 5 +-
.../src/airflow/ui/src/queries/useEditPool.ts | 5 +-
airflow-core/src/airflow/ui/src/router.tsx | 4 +
.../src/airflow/ui/src/utils/datetimeUtils.ts | 7 +-
airflow-core/src/airflow/ui/src/utils/hitl.test.ts | 65 +
airflow-core/src/airflow/ui/src/utils/hitl.ts | 33 +-
.../src/airflow/ui/src/utils/links.test.ts | 15 +-
airflow-core/src/airflow/ui/src/utils/links.ts | 3 +-
airflow-core/src/airflow/ui/src/utils/logs.test.ts | 108 +
airflow-core/src/airflow/ui/src/utils/logs.ts | 15 +-
.../src/airflow/ui/src/utils/syntaxHighlighter.ts | 35 +
airflow-core/src/airflow/utils/db_cleanup.py | 23 +-
.../auth/managers/test_base_auth_manager.py | 3 +
.../unit/api_fastapi/auth/middlewares}/__init__.py | 0
.../auth/middlewares/test_refresh_token.py | 106 +
.../core_api/routes/public/test_auth.py | 61 -
.../core_api/routes/public/test_dags.py | 27 +
.../core_api/routes/public/test_pools.py | 6 -
.../core_api/routes/public/test_task_instances.py | 21 +
.../api_fastapi/core_api/routes/test_routes.py | 1 -
.../api_fastapi/core_api/routes/ui/test_grid.py | 78 +-
.../core_api/routes/ui/test_structure.py | 15 +-
airflow-core/tests/unit/core/test_configuration.py | 46 +
.../tests/unit/executors/test_local_executor.py | 27 +-
.../executors/test_local_executor_check_workers.py | 4 +-
airflow-core/tests/unit/jobs/test_scheduler_job.py | 93 +-
airflow-core/tests/unit/jobs/test_triggerer_job.py | 7 +-
airflow-core/tests/unit/models/test_dag.py | 34 +
airflow-core/tests/unit/models/test_dagrun.py | 57 +-
.../tests/unit/models/test_serialized_dag.py | 54 +
.../tests/unit/models/test_taskinstance.py | 54 +
.../unit/serialization/test_dag_serialization.py | 238 +-
.../unit/serialization/test_serialized_objects.py | 3 +-
airflow-ctl-tests/pyproject.toml | 11 +-
airflow-ctl/.pre-commit-config.yaml | 6 +-
airflow-ctl/docs/conf.py | 12 +-
.../docs/installation/installing-from-pypi.rst | 5 +-
.../docs/installation/installing-from-sources.rst | 22 +-
airflow-ctl/pyproject.toml | 18 +-
chart/.pre-commit-config.yaml | 6 +-
clients/python/pyproject.toml | 9 +-
contributing-docs/03_contributors_quick_start.rst | 36 +-
.../13_airflow_dependencies_and_extras.rst | 275 +-
.../20_debugging_airflow_components.rst | 22 +
.../images/iterm2-enable-mouse-reporting.png | Bin 0 -> 153945 bytes
contributing-docs/mprocs/MPROCS_QUICK_REFERENCE.md | 132 +
contributing-docs/mprocs/mprocs.yaml | 58 +
.../testing/task_sdk_integration_tests.rst | 2 +-
contributing-docs/testing/unit_tests.rst | 4 +-
dev/MANUALLY_BUILDING_IMAGES.md | 4 +-
dev/README_RELEASE_AIRFLOW.md | 69 +-
dev/README_RELEASE_AIRFLOWCTL.md | 116 +-
dev/README_RELEASE_PROVIDERS.md | 48 +-
dev/README_RELEASE_PYTHON_CLIENT.md | 48 +-
dev/breeze/doc/01_installation.rst | 2 +-
dev/breeze/doc/03_developer_tasks.rst | 1 +
dev/breeze/doc/09_release_management_tasks.rst | 73 +-
dev/breeze/doc/10_ui_tasks.rst | 75 +
...ze_topics.rst => 11_advanced_breeze_topics.rst} | 0
dev/breeze/doc/README.rst | 3 +-
dev/breeze/doc/ci/02_images.md | 4 +-
dev/breeze/doc/images/output-commands.svg | 38 +-
dev/breeze/doc/images/output_build-docs.svg | 2 +-
dev/breeze/doc/images/output_build-docs.txt | 2 +-
.../doc/images/output_release-management.svg | 20 +-
.../doc/images/output_release-management.txt | 2 +-
...tput_release-management_check-release-files.svg | 154 +
...tput_release-management_check-release-files.txt | 1 +
.../output_setup_check-all-params-in-groups.svg | 32 +-
.../output_setup_check-all-params-in-groups.txt | 2 +-
.../output_setup_regenerate-command-images.svg | 78 +-
.../output_setup_regenerate-command-images.txt | 2 +-
dev/breeze/doc/images/output_start-airflow.svg | 280 +-
dev/breeze/doc/images/output_start-airflow.txt | 2 +-
dev/breeze/doc/images/output_ui.svg | 103 +
dev/breeze/doc/images/output_ui.txt | 1 +
.../output_ui_check-translation-completeness.svg | 120 +
.../output_ui_check-translation-completeness.txt | 1 +
dev/breeze/pyproject.toml | 17 +-
dev/breeze/src/airflow_breeze/breeze.py | 30 +-
.../src/airflow_breeze/commands/ci_commands.py | 5 -
.../airflow_breeze/commands/ci_image_commands.py | 16 +-
.../src/airflow_breeze/commands/common_options.py | 8 +
.../airflow_breeze/commands/developer_commands.py | 41 +-
.../commands/developer_commands_config.py | 5 +-
.../src/airflow_breeze/commands/main_command.py | 2 +-
.../commands/minor_release_command.py | 4 +-
.../commands/production_image_commands.py | 12 +-
.../commands/release_candidate_command.py | 6 +-
.../src/airflow_breeze/commands/release_command.py | 11 +-
.../commands/release_management_commands.py | 249 +-
.../commands/release_management_commands_config.py | 12 +
.../commands/release_management_group.py | 2 +-
.../src/airflow_breeze/commands/sbom_commands.py | 20 +-
.../src/airflow_breeze/commands/setup_commands.py | 16 +-
.../airflow_breeze/commands/testing_commands.py | 36 +-
.../src/airflow_breeze/commands/ui_commands.py} | 366 +-
.../airflow_breeze/commands/ui_commands_config.py | 34 +-
.../airflow_breeze/commands/workflow_commands.py | 4 +-
.../src/airflow_breeze/configure_rich_click.py | 15 +-
dev/breeze/src/airflow_breeze/global_constants.py | 87 +-
.../src/airflow_breeze/params/shell_params.py | 76 +-
.../airflow_breeze/utils/check_release_files.py | 228 +
dev/breeze/src/airflow_breeze/utils/ci_group.py | 10 +-
.../airflow_breeze/utils/docker_command_utils.py | 39 +-
.../src/airflow_breeze/utils/md5_build_check.py | 11 +-
dev/breeze/src/airflow_breeze/utils/packages.py | 20 +-
dev/breeze/src/airflow_breeze/utils/path_utils.py | 22 +
.../airflow_breeze/utils/provider_dependencies.py | 98 +-
.../src/airflow_breeze/utils/publish_docs_to_s3.py | 17 +-
dev/breeze/src/airflow_breeze/utils/recording.py | 11 +-
.../src/airflow_breeze/utils/selective_checks.py | 233 +-
.../src/airflow_breeze/utils/shared_options.py | 31 +-
dev/breeze/src/airflow_breeze/utils/visuals.py | 4 +-
dev/breeze/tests/test_check_release_files.py | 222 +
dev/breeze/tests/test_packages.py | 17 +-
dev/breeze/tests/test_selective_checks.py | 205 +-
dev/breeze/tests/test_ui_commands.py | 347 ++
dev/breeze/uv.lock | 648 +--
dev/check_files.py | 378 --
devel-common/pyproject.toml | 4 +-
devel-common/src/docs/utils/conf_constants.py | 1 -
.../docs_build/dev_index_template.html.jinja2 | 25 +-
devel-common/src/tests_common/pytest_plugin.py | 16 +-
devel-common/src/tests_common/test_utils/db.py | 4 +
docker-stack-docs/README.md | 10 +-
docker-stack-docs/changelog.rst | 12 +
.../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 +-
docker-stack-docs/entrypoint.rst | 14 +-
docker-tests/pyproject.toml | 10 +-
docs/spelling_wordlist.txt | 1 +
generated/PYPI_README.md | 36 +-
go-sdk/.pre-commit-config.yaml | 4 +-
helm-tests/pyproject.toml | 10 +-
kubernetes-tests/pyproject.toml | 10 +-
performance/README.md | 45 +
.../typing_compat.py => performance/pyproject.toml | 38 +-
performance/requirements.txt | 2 -
providers-summary-docs/installing-from-pypi.rst | 2 +-
providers/.pre-commit-config.yaml | 6 +-
providers/MANAGING_PROVIDERS_LIFECYCLE.rst | 2 +-
.../apache/impala/tests/system}/__init__.py | 0
.../apache/tinkerpop/tests/integration/__init__.py | 1 +
.../apache/tinkerpop/tests/system/__init__.py | 1 +
.../asana/tests/system/asana/example_asana.py | 1 +
providers/exasol/tests/system/__init__.py | 1 +
providers/git/tests/unit/__init__.py | 1 +
.../google/cloud/transfers/test_local_to_gcs.py | 2 +-
.../keycloak/auth_manager/keycloak_auth_manager.py | 28 +-
.../keycloak/auth_manager/routes/test_login.py | 77 +-
.../auth_manager/test_keycloak_auth_manager.py | 39 +
.../airflow/providers/standard/triggers/hitl.py | 4 +-
pyproject.toml | 10 +-
reproducible_build.yaml | 4 +-
.../{backend-mysql-port.yml => enable-tty.yml} | 5 +-
scripts/ci/prek/boring_cyborg.py | 2 +-
scripts/ci/prek/breeze_cmd_line.py | 2 +-
scripts/ci/prek/capture_airflowctl_help.py | 6 +-
scripts/ci/prek/check_aiobotocore_optional.py | 2 +-
.../ci/prek/check_airflow_bug_report_template.py | 2 +-
scripts/ci/prek/check_airflow_imports.py | 2 +-
.../ci/prek/check_airflow_v_imports_in_tests.py | 2 +-
.../prek/check_base_operator_partial_arguments.py | 2 +-
scripts/ci/prek/check_common_sql_dependency.py | 2 +-
scripts/ci/prek/check_default_configuration.py | 2 +-
scripts/ci/prek/check_deferrable_default.py | 2 +-
scripts/ci/prek/check_deprecations.py | 2 +-
scripts/ci/prek/check_extra_packages_ref.py | 2 +-
scripts/ci/prek/check_i18n_json.py | 2 +-
scripts/ci/prek/check_imports_in_providers.py | 4 +-
scripts/ci/prek/check_init_decorator_arguments.py | 2 +-
scripts/ci/prek/check_init_in_tests.py | 2 +-
scripts/ci/prek/check_integrations_list.py | 2 +-
scripts/ci/prek/check_kubeconform.py | 2 +-
scripts/ci/prek/check_lazy_logging.py | 2 +-
scripts/ci/prek/check_min_python_version.py | 2 +-
scripts/ci/prek/check_order_dockerfile_extras.py | 2 +-
scripts/ci/prek/check_provider_docs.py | 2 +-
scripts/ci/prek/check_provider_yaml_files.py | 2 +-
.../check_providers_subpackages_all_have_init.py | 26 +-
scripts/ci/prek/check_revision_heads_map.py | 2 +-
scripts/ci/prek/check_schema_defaults.py | 2 +-
scripts/ci/prek/check_sdk_imports.py | 2 +-
.../prek/check_shared_distributions_structure.py | 2 +-
.../ci/prek/check_shared_distributions_usage.py | 2 +-
scripts/ci/prek/check_system_tests.py | 31 +-
.../ci/prek/check_system_tests_hidden_in_index.py | 2 +-
.../check_template_context_variable_in_sync.py | 2 +-
scripts/ci/prek/check_template_fields.py | 2 +-
scripts/ci/prek/check_tests_in_right_folders.py | 2 +-
scripts/ci/prek/check_ti_vs_tis_attributes.py | 2 +-
scripts/ci/prek/checkout_no_credentials.py | 2 +-
scripts/ci/prek/common_prek_utils.py | 24 +-
scripts/ci/prek/docstring_param_type.py | 2 +-
scripts/ci/prek/generate_airflow_diagrams.py | 2 +-
scripts/ci/prek/generate_openapi_spec.py | 2 +-
scripts/ci/prek/generate_openapi_spec_providers.py | 2 +-
scripts/ci/prek/generate_volumes_for_sources.py | 2 +-
scripts/ci/prek/lint_helm.py | 2 +-
scripts/ci/prek/lint_json_schema.py | 2 +-
scripts/ci/prek/migration_reference.py | 2 +-
scripts/ci/prek/mypy.py | 2 +-
scripts/ci/prek/mypy_folder.py | 2 +-
.../ci/prek/prevent_deprecated_sqlalchemy_usage.py | 2 +-
scripts/ci/prek/replace_bad_characters.py | 2 +-
scripts/ci/prek/ruff_format.py | 4 +-
.../ci/prek/significant_newsfragments_checker.py | 2 +-
scripts/ci/prek/sort_in_the_wild.py | 2 +-
scripts/ci/prek/supported_versions.py | 4 +-
scripts/ci/prek/update_airflow_pyproject_toml.py | 2 +-
scripts/ci/prek/update_chart_dependencies.py | 2 +-
scripts/ci/prek/update_er_diagram.py | 2 +-
scripts/ci/prek/update_example_dags_paths.py | 2 +-
scripts/ci/prek/update_providers_build_files.py | 2 +-
scripts/ci/prek/update_providers_dependencies.py | 2 +-
scripts/ci/prek/update_source_date_epoch.py | 2 +-
scripts/ci/prek/update_versions.py | 2 +-
scripts/ci/prek/upgrade_important_versions.py | 2 +-
scripts/ci/prek/validate_chart_annotations.py | 2 +-
scripts/ci/prek/validate_operators_init.py | 2 +-
scripts/ci/prek/vendor_k8s_json_schema.py | 2 +-
scripts/docker/entrypoint_ci.sh | 16 +-
scripts/docker/install_os_dependencies.sh | 2 +-
scripts/in_container/bin/generate_mprocs_config.py | 221 +
.../bin/run_mprocs} | 20 +-
scripts/in_container/bin/run_tmux | 7 +-
.../in_container/install_airflow_and_providers.py | 6 +
.../in_container/run_capture_airflowctl_help.py | 27 +-
.../in_container/run_check_imports_in_providers.py | 11 +-
scripts/tools/setup_breeze | 4 +-
.../airflow_shared/logging/percent_formatter.py | 10 +
.../tests/logging/test_percent_formatter.py | 14 +-
task-sdk-tests/pyproject.toml | 10 +-
task-sdk/.pre-commit-config.yaml | 6 +-
task-sdk/pyproject.toml | 4 +-
task-sdk/src/airflow/sdk/__init__.py | 2 +-
task-sdk/src/airflow/sdk/api/client.py | 2 +-
task-sdk/src/airflow/sdk/bases/operator.py | 3 +-
.../src/airflow/sdk/definitions/asset/__init__.py | 10 +-
task-sdk/src/airflow/sdk/definitions/connection.py | 6 -
task-sdk/src/airflow/sdk/execution_time/context.py | 16 +-
.../airflow/sdk/execution_time/secrets_masker.py | 10 +-
.../src/airflow/sdk/execution_time/supervisor.py | 68 +-
.../src/airflow/sdk/execution_time/task_runner.py | 81 +-
task-sdk/src/airflow/sdk/log.py | 6 +-
task-sdk/tests/task_sdk/api/test_client.py | 2 +-
task-sdk/tests/task_sdk/bases/test_operator.py | 17 +
task-sdk/tests/task_sdk/definitions/test_asset.py | 15 +-
.../tests/task_sdk/definitions/test_connection.py | 17 -
.../tests/task_sdk/execution_time/test_context.py | 44 +-
.../task_sdk/execution_time/test_supervisor.py | 88 +-
.../task_sdk/execution_time/test_task_runner.py | 195 +-
376 files changed, 9959 insertions(+), 5223 deletions(-)
copy airflow-core/src/airflow/{api/common =>
api_fastapi/auth/middlewares}/__init__.py (100%)
create mode 100644
airflow-core/src/airflow/api_fastapi/auth/middlewares/refresh_token.py
create mode 100644 airflow-core/src/airflow/ui/src/utils/hitl.test.ts
create mode 100644 airflow-core/src/airflow/ui/src/utils/logs.test.ts
create mode 100644 airflow-core/src/airflow/ui/src/utils/syntaxHighlighter.ts
copy airflow-core/{src/airflow/api/common =>
tests/unit/api_fastapi/auth/middlewares}/__init__.py (100%)
create mode 100644
airflow-core/tests/unit/api_fastapi/auth/middlewares/test_refresh_token.py
create mode 100644 contributing-docs/images/iterm2-enable-mouse-reporting.png
create mode 100644 contributing-docs/mprocs/MPROCS_QUICK_REFERENCE.md
create mode 100644 contributing-docs/mprocs/mprocs.yaml
create mode 100644 dev/breeze/doc/10_ui_tasks.rst
rename dev/breeze/doc/{10_advanced_breeze_topics.rst =>
11_advanced_breeze_topics.rst} (100%)
create mode 100644
dev/breeze/doc/images/output_release-management_check-release-files.svg
create mode 100644
dev/breeze/doc/images/output_release-management_check-release-files.txt
create mode 100644 dev/breeze/doc/images/output_ui.svg
create mode 100644 dev/breeze/doc/images/output_ui.txt
create mode 100644
dev/breeze/doc/images/output_ui_check-translation-completeness.svg
create mode 100644
dev/breeze/doc/images/output_ui_check-translation-completeness.txt
rename dev/{i18n/check_translations_completeness.py =>
breeze/src/airflow_breeze/commands/ui_commands.py} (86%)
mode change 100755 => 100644
copy airflow-core/tests/unit/utils/test_strings.py =>
dev/breeze/src/airflow_breeze/commands/ui_commands_config.py (64%)
create mode 100644 dev/breeze/src/airflow_breeze/utils/check_release_files.py
create mode 100644 dev/breeze/tests/test_check_release_files.py
create mode 100644 dev/breeze/tests/test_ui_commands.py
delete mode 100644 dev/check_files.py
create mode 100644 performance/README.md
copy airflow-core/src/airflow/typing_compat.py => performance/pyproject.toml
(59%)
delete mode 100644 performance/requirements.txt
copy {airflow-core/tests/integration =>
providers/apache/impala/tests/system}/__init__.py (100%)
copy scripts/ci/docker-compose/{backend-mysql-port.yml => enable-tty.yml} (93%)
create mode 100755 scripts/in_container/bin/generate_mprocs_config.py
copy scripts/{ci/testing/run_system_tests.sh => in_container/bin/run_mprocs}
(67%)
copy providers/slack/tests/unit/slack/transfers/conftest.py =>
shared/logging/tests/logging/test_percent_formatter.py (70%)