This is an automated email from the ASF dual-hosted git repository.
rahulvats pushed a change to branch v3-1-stable
in repository https://gitbox.apache.org/repos/asf/airflow.git
from 83ff6ecec9d Update RELEASE_NOTES.rst for rc2
add edceaa5dc93 [v3-1-test] Add Keycloak token documentation to
Security/API (#61228) (#61248)
add 0acf52ad390 [v3-1-test] Fix language selector state not updating on
change (#61060) (#61263)
add c7ea5ef0a5c [v3-1-test] Clarify template context for asset-triggered
DAGs in airflow-core docs (#61258) (#61282)
add 4522caa1114 [v3-1-test] Fix flaky OTel integration test with DNS
health check (#61070) (#61242) (#61286)
add 52bea756289 [v3-1-test] Update pmc verification docs (#61271) (#61294)
add ecf2cb961fa [v3-1-test] update version for release command (#61260)
(#61328)
add e962a8ea00f CI: Upgrade important CI environment (#61327)
add 0da34870c0c [v3-1-test] docs: fix typo in Breeze developer tasks guide
(#61357) (#61358)
add d41bf411ab5 [v3-1-test] Remove empty `apache_airflow_site.py` file
(#61308) (#61348)
add df759ec594d Flatten grid structure endpoint memory consumption
(#61273) (#61393)
add 1a7f6a5fa69 [v3-1-test] Clarify policy for exposing sensitive data
(#59864) (#61392)
add c9ccb220946 [v3-1-test] Fix Liveness / Readiness / Startup probe path
for Airflow 3.x #58129 (#58734) (#61411)
add b125aa20f29 [v3-1-test] Add JWT issuer config to docker-compose and
breeze environment (#61385) (#61410)
add d3980e1c689 [v3-1-test] Update healthcheck command syntax for celery
worker (#58861) (#61412)
add 48e235b5903 [v3-1-test] Upgrade important CI environment (#61428)
add d531c33c397 [v3-1-test] Fix Python 3.13 classifiers (#61419) (#61475)
add 6f2db283195 Add missing translations for PL 3.1 branch (#61423)
add 23b6f29ab84 CI: Upgrade important CI environment (#61479)
add afa5ed36d7e [v3-1-test] Deprecate BackfillDetails and use
DagAcccessEntity.Run for backfill p… (#61456)
add c6ced59bdc8 CI: Upgrade important CI environment (#61484)
add 8309a8422c6 [v3-1-test] Simplify release provider procedure (#61446)
(#61449)
add ba6b94ed73e Close German Translation Gaps 2026-02-05 v3-1 (#61478)
add 46dd0dd618c [v3-1-test] Add task_display_name to
LightGridTaskInstanceSummary model (#61440) (#61505)
add 4265b812ddb [v3-1-test] select filepath using cursor (#61011) (#61506)
add 72664826e1c fix(ui): Remove explicit bg color from filter buttons to
fix pale appearance (#60346 backport fix) (#61457)
add e6d7b48e953 [v3-1-test] fix: fix minimap on DAG graph view not showing
DAG nodes (#61511) (#61530)
add b56d0fc48a7 [v3-1-test] Add error handling for pause/unpause toggle
permission errors (#61389) (#61533)
add 2847a108aa1 [v3-1-test] Update keyring>=25.7.0 (#61529) (#61537)
add e93efdc77c9 [v3-1-test] Logging action better when cache file download
times out in CI (#61515) (#61520)
add 010dbc30c94 Fix middleware order to prevent chunked FastAPI responses
(#61043) (#61539)
add 462810c384e [v3-1-test] Fix update_pyproject_dependency to include
python_version (#61536) (#61542)
add 8bf73468677 [v3-1-test] Add `access_key` and `connection_string` to
DEFAULT_SENSITIVE_FIELDS (#61580) (#61582)
add e6baa8b4571 [v3-1-test] Fix mpi4py building in CI (#61581) (#61590)
add 3300f801261 [v3-1-test] Bump uv to 0.10.0 (#61586) (#61589)
add 44c64c4e463 [v3-1-test] Update python version in constraints notes to
match the actual version (#61584) (#61592)
add d902349ce69 [v3-1-test] Fix misleading TODO comments about
itertools.batched (#61573) (#61593)
add 2a591e13a11 [v3-1-test] fix: Fix grid view tooltip z-index issue
(#61275) (#61403)
add da659a5b936 [v3-1-test] CI: Upgrade important CI environment (#61587)
(#61591)
add fe7df6515c4 [v3-1-test] Add Windows filesystem detection in Breeze
startup (#61562) (#61603)
add 83a2e68c792 [v3-1-test] Improve pyproject.toml synchronization hook
with fallback logic (#61597) (#61599)
add b4c02d71dad [v3-1-test] ci: replace uv slim-bookworm with debian-slim
(#61600) (#61608)
add beafa56b3a5 [v3-1-test] Fix main content margin to align with
navigation sidebar width (#61614) (#61622)
add 382311d094c [v3-1-test] fix: correct typo in function name
_set_runing_task (#61496) (#61619)
add f5b82508ad0 [v3-1-test] Fix breeze start-airflow --dev-mode hanging on
stale asset compile lock (#61610) (#61621)
add ff854365b15 [v3-1-test] Adding a basic retry mechanism for svn based
commands (#61620) (#61628)
add 31f03a2e634 [v3-1-test] Fix missing translation keys for blocking
dependencies in UI (#61314) (#61366) (#61638)
add 0dd2eae0edc [v3-1-test] Clarify ExternalTaskSensor path in dags.rst
(#61555) (#61617)
add b38c3a014bf [v3-1-test] Fix GZipMiddleware with correct comment
placement (#61538) (#61566)
add d14db3941d2 [v3-1-test] Alias run_after for XComResponse (#61443)
(#61672)
add 5077dee2a36 [v3-1-test] Make docsbuild compatible with setuptools
v82++ (v2) (#61653) (#61691)
add 4e1c8d35f81 Bump axios from 1.13.2 to 1.13.5 (#61699)
add 41e568a68ce [v3-1-test] Fix Triggerer crashing if Trigger uses builtin
print function (#60258) (#61703)
add 84c20e121e7 [v3-1-test] Add XCom serilizer for pendulum.date.Date
(#61176) (#61717)
add c7172f5352c [v3-1-test] Skip SVN operations in CI environment (#61660)
(#61719)
add 59dbaf67314 [v3-1-test] Adding a basic retry mechanism for svn based
commands (#61620) (#61721)
add c689ad41aa9 [v3-1-test] Update path creation for simulation of SVC
checkout in CI (#61692) (#61722)
add 35e059bddbb [v3-1-test] Bump axios from 1.13.4 to 1.13.5 in
/airflow-core/src/airflow/api_fastapi/auth/managers/simple/ui #61696 (#61751)
add f97a91173e9 [v3-1-test] Fix dry run override for rc command (#61743)
(#61753)
add a09292c3e20 [v3-1-test] Upgrade minimum prek version (#61634) (#61744)
add 2081f2aa340 [v3-1-test] Do not execute svn commands in CI runs
(#61765) (#61767)
add 1d160e3ed24 [v3-1-test] Clarify security model of Airflow (#61754)
(#61770)
add de9af28bffa [v3-1-test] Fix list dag versions permissions (#61675)
(#61733)
add 76c4a9d81e5 [v3-1-test] Amend simulation in release command (#61787)
(#61792)
add 3770fa1a5e2 Cherry-pick-missing-release-validator-tests (#61793)
add 2619b507e77 [v3-1-test] grid merge node dict storage (#61656) (#61789)
add 15b637454e3 [v3-1-test] Fix secrets masking in Rendered Templates for
complex objects (#61394) (#61763)
add 0fc6c68ed56 [v3-1-test] Freeup disk space in image build workflow
(#61825) (#61827)
add 93488956cdc [v3-1-test] Run system prune when importing image cache
(#61826) (#61828)
add 18e85eb5898 CI: Upgrade important CI environment (#61841)
add f95c2f83c44 [v3-1-test] Make conn_type optional in task SDK Connection
datamodel (#61728) (#61835)
add c0ddae7ba39 fix(ui): Fix star icon visibility in Favorite filter
buttons when selected (#61862)
add 4ec48779552 [v3-1-test] Fix scheduler crash when enqueuing TI with
null dag_version_id (#61813) (#61846)
add 066e69d46a8 Persist table columns visibility in local storage (#61858)
(#61868)
add c73f27e1556 [v3-1-test] Read Python version from static www/ftp
information (#61904) (#61905)
add bf28a66ffcc [v3-1-test] fix(api): disable uvloop if
PYTHONASYNCIODEBUG=1 to prevent segfault … (#61281) (#61933)
add 776682bf146 [v3-1-test] Update versions in README.md (#61944) (#61966)
add 69aaf8b196e [v3-1-test] Fix recursion depth error in
_redact_exception_with_context (#61776) (#61795)
add 960f3530315 Add on_task_instance_skipped listener hookspec (#59467)
(#61863)
add 11304d3c0ce [v3-1-test] Add LOG_MAX_SIZE environment variables to log
groomer (#61559) (#61950)
add 038d277eae3 [v3-1-test] Remove redundant debounce-promise dependency
from UI (#61832) (#61938)
add 4824e2dc794 [v3-1-test] Fixing typo in provider count from 60 to 90
(#61925) (#61973)
add c88b6bc5423 [v3-1-test] Merge serialization and dag processing into
single label (#61516) (#61524)
add d2b8eae3f71 [v3-1-test] Fix slots negative infinity (#61140) (#61768)
add dafc9886dd7 [v3-1-test] Run hatch always in a clean env (#61970)
(#62051)
add 66ad141c6d5 [v3-1-test] Flush in-memory OTel metrics at process
shutdown (#61808) (#61869)
add 835595683b6 [v3-1-test] Fix scheduler heartbeat misses caused by slow
reschedule dependency check (#61983) (#62068)
add 1d67ab1ede5 Fix typo in config key: missing_dag_retires ->
missing_dag_retries (#62087)
add 59fa39afbc0 Fix `DepContext` mutation leak and restore
`reschedule-mode` guard (#62089)
add 39290a818f3 [v3-1-test] Remove docs mentioning old, unsupported hybrid
executors (#62093) (#62096)
add 8f9e513db20 [v3-1-test] Add missing ti.start and ti.finish metrics in
Airflow 3 (#62019) (#62110)
add d5d45af916e Do not dilute task failures with finalization errors
during execution (#62070) (#62113)
add 72876d42d23 [v3-1-test] Add data-testid attributes to UI components
(#61874) (#62134)
add 783b48b5bd6 [v3-1-test] Allow to use short SPDX licence identifier for
selected files (#62073) (#62100)
add df3cbce0aa8 [v3-1-test] Add empty version suffix when preparing
distributions by PMC members (#61352) (#61386)
add 0d81c5d9cb2 [v3-1-test] Exclude unnecessary ui build artifacts from
wheel (#61335) (#61397)
add 810e008b170 [v3-1-test] Bump python 3.13 to 3.13.12 (#61425) (#61429)
add d5b3373963c [v3-1-test] Fix deferrable sensors not respecting
soft_fail on timeout (#61132) (#61421)
add 6efb221e3e0 [v3-1-test] Update Helm chart release guide (#62095)
(#62099)
add 0b0e6ca90d9 [v3-1-test] perf: optimize grid view refresh pressure on
the API (#62085) (#62135)
add 8a5fefee815 [v3-1-test] Use start_date and end_date to calculate
duration when duration is null for running taskinstance (#61898) (#62136)
add 9588b259899 [v3-1-test] bulk connection var usage (#61570) (#62076)
add 8fe5278febb [v3-1-test] [DOCS] Extension on System Tests, documenting
dag.test() (#59390) (#62131)
add 9f36d48ebc0 [v3-1-test] Minor fixes to the release candidate command
(#61764) (#61772)
add 266c7bca4e1 [v3-1-test] fix(ui): show active backfill in banner
instead of first one (#61851) (#62137)
add d55d4df99b8 [v3-1-test] Fix SPDX licence to move URL to separate line
(#62145) (#62168)
add 784fc92b504 Fix grid view crash when task converted to TaskGroup
(#61208) (#61279) (#62181)
add a98f2b8a651 [v3-1-test] [main] Upgrade important CI environment
(#62200) (#62205)
add 054d49f9a18 [v3-1-test] fix(ui): only apply elk.portConstraints for LR
orientation in graph view (#62144) (#62187)
add 43ff6c709da [v3-1-test] CI: Upgrade important CI environment (#62191)
(#62236)
add fe348c84e28 [v3-1-test] Add data-testid attributes to root UI
components for testing (#62182) (#62237)
add 81f87b4854f [v3-1-test] docs: Fix typo and missing closing bracket in
breeze installation docs (#62242) (#62268)
add 688cab47197 [v3-1-test] fix(breeze): use prek from Breeze Python
instead of system PATH (#62309) (#62317)
add bb4a8be14f3 [v3-1-test] Revert "fix(breeze): use prek from Breeze
Python instead of system PATH (#62309)" (#62332) (#62333)
add 7b8dec0a2a7 [v3-1-test] fix: Ensure parent directory exists before
writing UI asset dev mode file (#62313) (#62323)
add b50f0994928 fix Preserve variable value formatting in edit dialog
(#58757) (#62339)
add 98f1c75c29e [v3-1-test] fix(ui): unique keys for pagination ellipses
(#62352) (#62366)
add 2dc67c77730 [v3-1-test] Bump min sqlalchemy version to 1.4.54 (#62385)
add 7c4af787238 [v3-1-test] Fix race condition in auth manager
initialization (#62214) (#62326)
add 2dc2691bcf8 feat(i18n): fill Taiwanese Mandarian translation gap
(#62397)
add 6c4cfa55fd8 Revert "[v3-1-test] Fix race condition in auth manager
initialization (#62214…" (#62407)
add 5395c9df704 [v3-1-test] Handle non-dictionary json payload during
logging to avoid internal server error. (#62355) (#62367)
add 5e7575f4108 CI: Upgrade important CI environment (#62425)
add af66b36576e Fix doctoc new behaviour (#62452)
add 3db5cde40c3 [v3-1-test] Upgrade important CI environment (#62453)
add 9694e655499 [v3-1-test] Fix WASB remote logging base path handling
(#58946) (#61013) (#62456)
add c848863b551 CI: Upgrade important CI environment (#62541)
add 20436f92ef9 Temporarily pin virtualenv to resolve build issues
(#62503) (#62542)
add 697bb33937c [v3-1-test] Changed dag_bundle.signed_url_template from
varchar(200) to text (#61041) (#62568)
add f194d8c01f2 [v3-1-test] Clean generated _api folders from docs
directories in prepare-provider-distributions (#62573) (#62587)
add bc582053279 Add readable dags checks for the dependencies endpoint
(#62046) (#62586)
add ff9bd8eb417 [v3-1-test] Fix all build-system/requires including
transitive dependencies (#62570) (#62609)
add ecfe2caca95 [v3-1-test] Upgrade Hatch to 1.16.5 and revert virtualenv
pin (#62602) (#62611)
add 5050ce11984 CI: Upgrade important CI environment (#62614)
add d9b592d30d4 [v3-1-test] Add release notes about grpcio downgraded for
Python 3.12, 2.11.1 image. (#62635) (#62642)
add 988fa0ec10e Close Catalan translation gap in v3-1-test (#62477)
add fa185946b1e [v3-1-test] SQL not rendered in Rendered Templates view
(#60739) (#62348)
add e1d71fd1528 Fix XCom migration failing for NaN/Infinity float values
(#62686) (#62760)
add 32b9b298652 [v3-1-test] Pull the sphinx-airflow-theme wheel from
airflow.apache.org (#62710) (#62713)
add 6ed53e340c3 Refactor DataTable to handle internal scrolling and fix
overflow on narrow viewports (#62603)
add f5f6012aa13 [v3-1-test] Expose literal and ParamsDict at SDK top level
(#59782) (#62756)
add 4afe1ecaee1 Fix timer.duration unit labels in logs (#61824) (#62757)
add d506a858f50 Fix typo in PL translation (#62031) (#62761)
add aaa67ade811 remove mp_start_method remnants (#61150) (#62762)
add 5c05aa3c734 Fix Trigger UI form rendering for null enum values
(#62060) (#62767)
add b1e348d5fec [V3-1-test] Fix broken `dag_processing.total_parse_time`
metric (#62128) (#62764)
add 15a7081eba3 [v3-1-test] [main] Upgrade important CI environment
(#62770) (#62778)
add d8d49786689 UI variables page: added option to view text as multi
lines (#61679) (#62779)
add 26084c845e2 [v3-1-test]Fix: Restore task_instance_history sequence
on downgrade (#62759)
add bddecccf06f fix(ui): use ISO dates in Gantt chart for cross-browser
consistency (#61250) (#62784)
add 9bb406b1be6 Variable table handle long words break when values are
expanded (#62416) (#62781)
add ee6e55bc5e5 Override tar dependency in Simple auth manager (#62787)
add d9efe16a9f3 [V3-1-test] Fix minimatch ReDoS vulnerabilities via pnpm
overrides (#62805)
add a67920b66bd [v3-1-test] CI: Upgrade important CI environment
(apache#62792) (#62814)q
add 8a76abcc5d8 [v3-1-test] Fail prod image release when constraint build
fails (#62387) (#62833)
add 9b4f0962ae8 slight rephrase of experimental warning (#62836)
add 96923c2f401 [v3-1-test] Add logging to detect try number race (#62703)
(#62821)
add 4912581b587 [v3-1-test] Fix backfill permissions (#62856) (#62873)
add 15a088fd474 [v3-1-test] fix missing logs in UI for tasks in
`UP_FOR_RETRY` and `UP_FOR_RESCHEDULE` states (#54547) (#62862)
add 9b9dc13e87a [v3-1- test] Scope session token in cookie to base_url
(#62771) (#62851)
add 21e3601e3b6 [v3-1-test] fix: use
useAssetServiceGetDagAssetQueuedEvents to get the correct number of ADRQs
(#62868) (#62902)
add 1bf7cbc9a52 [v3-1-test] Fix: Adds task instance validation for hitl
(#62886) (#62909)
add 908d1ca1c98 Backport UI part only and skip the queryClient.ts change
(#62859)
add 97717133551 [v3-1-test] Make elasticsearch compatible with
remote_task_log (#62121) (#62940)
add d12f014756f [v3-1-test] fix: always include kid in JWT header for
symmetric key tokens (#62883) (#62943)
add 3f97d47f824 fix mypy (#62949)
add 833ef0f1107 Upgrade `tar` (#62939) (#62947)
add a250c4fc821 [v3-1-test] Enable dependabot for simple auth manager in
`v3-1-test` (#62951) (#62958)
add b7a0043a7a6 chore(deps): bump the core-ui-package-updates group across
1 directory with 33 updates (#62959)
add 363e75a6df2 [v3-1-test] Only upgrade patch and minor NPM version in
`v3-1-test` (#62961) (#62967)
add c4290ab3a83 [v3-1-test] Return empty list for queued asset events
instead of 404 (#62934) (#62976)
add 1b366dd14ba Update version to 3.1.8
add 0f3cc0ac1bb Update RELEASE_NOTES.rst
No new revisions were added by this update.
Summary of changes:
.gitattributes | 8 +-
.github/PULL_REQUEST_TEMPLATE.md | 3 +
.github/SECURITY.md | 53 +-
.github/actions/breeze/action.yml | 2 +-
.github/actions/install-prek/action.yml | 4 +-
.github/boring-cyborg.yml | 13 +-
.github/dependabot.yml | 19 +
.github/workflows/airflow-distributions-tests.yml | 3 +-
.github/workflows/basic-tests.yml | 46 +-
.github/workflows/ci-image-build.yml | 8 +-
.github/workflows/release_dockerhub_image.yml | 2 +-
.pre-commit-config.yaml | 60 +-
AGENTS.md | 20 +-
Dockerfile | 81 +-
Dockerfile.ci | 51 +-
README.md | 48 +-
RELEASE_NOTES.rst | 108 +
.../production-deployment.rst | 6 -
.../administration-and-deployment/web-stack.rst | 20 +
airflow-core/docs/best-practices.rst | 2 +-
.../docs/core-concepts/auth-manager/index.rst | 4 +-
airflow-core/docs/core-concepts/dags.rst | 41 +-
airflow-core/docs/extra-packages-ref.rst | 4 +-
airflow-core/docs/howto/deadline-alerts.rst | 2 +-
.../docs/howto/docker-compose/docker-compose.yaml | 8 +-
.../howto/run-with-self-signed-certificate.rst | 2 +-
airflow-core/docs/img/airflow_erd.sha256 | 2 +-
airflow-core/docs/img/airflow_erd.svg | 4760 +++++++++----------
.../docs/installation/supported-versions.rst | 20 +-
airflow-core/docs/migrations-ref.rst | 6 +-
airflow-core/docs/security/api.rst | 3 +-
airflow-core/docs/security/security_model.rst | 56 +-
airflow-core/docs/templates-ref.rst | 22 +-
airflow-core/pyproject.toml | 25 +-
airflow-core/src/airflow/__init__.py | 2 +-
airflow-core/src/airflow/api/common/mark_tasks.py | 4 +-
airflow-core/src/airflow/api_fastapi/app.py | 10 +
.../api_fastapi/auth/managers/base_auth_manager.py | 18 +-
.../auth/managers/models/resource_details.py | 7 +-
.../auth/managers/simple/routes/login.py | 2 +
.../auth/managers/simple/simple_auth_manager.py | 15 -
.../ui/openapi-gen/queries/ensureQueryData.ts | 11 +
.../simple/ui/openapi-gen/queries/prefetch.ts | 11 +
.../simple/ui/openapi-gen/queries/queries.ts | 30 +-
.../simple/ui/openapi-gen/queries/suspense.ts | 11 +
.../auth/managers/simple/ui/package-lock.json | 4927 +++++++++++---------
.../auth/managers/simple/ui/package.json | 73 +-
.../auth/managers/simple/ui/pnpm-lock.yaml | 4161 ++++++++---------
.../auth/managers/simple/ui/src/login/Login.tsx | 25 +-
.../api_fastapi/auth/middlewares/refresh_token.py | 3 +-
.../src/airflow/api_fastapi/auth/tokens.py | 10 +-
.../src/airflow/api_fastapi/core_api/app.py | 11 +-
.../api_fastapi/core_api/datamodels/pools.py | 20 +-
.../api_fastapi/core_api/datamodels/ui/grid.py | 1 +
.../api_fastapi/core_api/datamodels/xcom.py | 1 +
.../api_fastapi/core_api/openapi/_private_ui.yaml | 4 +
.../core_api/openapi/v2-rest-api-generated.yaml | 36 +-
.../api_fastapi/core_api/routes/public/assets.py | 10 -
.../api_fastapi/core_api/routes/public/auth.py | 2 +
.../core_api/routes/public/backfills.py | 8 +-
.../core_api/routes/public/dag_versions.py | 8 +-
.../api_fastapi/core_api/routes/ui/backfills.py | 3 +-
.../api_fastapi/core_api/routes/ui/dependencies.py | 14 +-
.../airflow/api_fastapi/core_api/routes/ui/grid.py | 33 +-
.../src/airflow/api_fastapi/core_api/security.py | 75 +-
.../core_api/services/public/connections.py | 16 +-
.../api_fastapi/core_api/services/ui/grid.py | 34 +-
.../api_fastapi/execution_api/routes/hitl.py | 8 +-
.../src/airflow/api_fastapi/logging/decorators.py | 12 +-
airflow-core/src/airflow/api_fastapi/main.py | 15 +
airflow-core/src/airflow/cli/cli_config.py | 6 +-
.../config_templates/airflow_local_settings.py | 45 +-
.../src/airflow/config_templates/config.yml | 14 +-
airflow-core/src/airflow/configuration.py | 3 +-
airflow-core/src/airflow/dag_processing/manager.py | 102 +-
.../example_dags/example_params_ui_tutorial.py | 5 +-
.../src/airflow/jobs/scheduler_job_runner.py | 69 +-
.../src/airflow/listeners/spec/taskinstance.py | 25 +
airflow-core/src/airflow/metrics/otel_logger.py | 15 +-
...49_3_0_0_remove_pickled_data_from_xcom_table.py | 47 +-
.../0060_3_0_0_add_try_id_to_ti_and_tih.py | 25 +
...086_3_1_8_add_index_to_task_reschedule_ti_id.py | 76 +
..._8_change_signed_url_template_from_varchar_.py} | 42 +-
airflow-core/src/airflow/models/dagbundle.py | 4 +-
airflow-core/src/airflow/models/dagrun.py | 43 +
airflow-core/src/airflow/models/taskinstance.py | 15 +-
airflow-core/src/airflow/models/taskreschedule.py | 3 +
airflow-core/src/airflow/plugins_manager.py | 2 +-
airflow-core/src/airflow/serialization/serde.py | 2 +-
.../airflow/serialization/serializers/datetime.py | 13 +-
airflow-core/src/airflow/stats.py | 29 +
.../airflow/ti_deps/deps/ready_to_reschedule.py | 8 +
airflow-core/src/airflow/typing_compat.py | 5 +-
.../airflow/ui/openapi-gen/requests/schemas.gen.ts | 40 +-
.../ui/openapi-gen/requests/services.gen.ts | 2 -
.../airflow/ui/openapi-gen/requests/types.gen.ts | 18 +-
airflow-core/src/airflow/ui/package.json | 11 +-
airflow-core/src/airflow/ui/pnpm-lock.yaml | 530 ++-
.../src/airflow/ui/public/i18n/locales/ca/dag.json | 6 +
.../src/airflow/ui/public/i18n/locales/de/dag.json | 6 +
.../airflow/ui/public/i18n/locales/pl/common.json | 2 +-
.../src/airflow/ui/public/i18n/locales/pl/dag.json | 6 +
.../airflow/ui/public/i18n/locales/zh-TW/dag.json | 6 +
.../ui/src/components/Banner/BackfillBanner.tsx | 3 +-
.../src/airflow/ui/src/components/BasicTooltip.tsx | 1 +
.../airflow/ui/src/components/BreadcrumbStats.tsx | 2 +-
.../src/airflow/ui/src/components/ConfigForm.tsx | 1 +
.../ui/src/components/ConfirmationModal.tsx | 9 +-
.../src/airflow/ui/src/components/DagVersion.tsx | 4 +-
.../ui/src/components/DagVersionDetails.tsx | 2 +-
.../ui/src/components/DataTable/DataTable.tsx | 36 +-
.../components/DataTable/ToggleTableDisplay.tsx | 2 -
.../airflow/ui/src/components/DateTimeInput.tsx | 1 +
.../src/airflow/ui/src/components/DeleteDialog.tsx | 18 +-
.../src/airflow/ui/src/components/ErrorAlert.tsx | 2 +-
.../components/FlexibleForm/FieldDropdown.test.tsx | 189 +
.../src/components/FlexibleForm/FieldDropdown.tsx | 49 +-
.../components/FlexibleForm/FieldMultiSelect.tsx | 10 +-
.../ui/src/components/Graph/reactflowUtils.ts | 2 +
.../ui/src/components/Graph/useGraphLayout.ts | 4 +-
.../src/airflow/ui/src/components/HeaderCard.tsx | 2 +-
.../airflow/ui/src/components/LimitedItemsList.tsx | 3 +-
.../airflow/ui/src/components/NeedsReviewBadge.tsx | 5 +-
.../ui/src/components/QuickFilterButton.tsx | 1 +
.../ui/src/components/SearchDags/SearchDags.tsx | 47 +-
.../src/airflow/ui/src/components/Stat.tsx | 2 +-
.../src/airflow/ui/src/components/StatsCard.tsx | 1 +
.../src/airflow/ui/src/components/Time.tsx | 1 +
.../src/airflow/ui/src/components/TogglePause.tsx | 1 +
.../airflow/ui/src/components/TrendCountButton.tsx | 1 +
.../airflow/ui/src/components/TrendCountChart.tsx | 2 +-
.../airflow/ui/src/components/TruncatedText.tsx | 1 +
.../src/airflow/ui/src/components/WarningAlert.tsx | 2 +-
.../ui/src/components/ui/DagWarningsModal.tsx | 8 +-
.../ui/src/components/ui/Pagination/Items.tsx | 3 +-
.../src/airflow/ui/src/layouts/BaseLayout.tsx | 5 +-
.../airflow/ui/src/layouts/Details/Gantt/Gantt.tsx | 18 +-
.../layouts/Details/Grid/TaskInstancesColumn.tsx | 9 +-
.../ui/src/layouts/Details/PanelButtons.tsx | 1 +
.../ui/src/layouts/Nav/LanguageSelector.tsx | 37 +-
.../src/airflow/ui/src/layouts/Nav/Nav.tsx | 5 +-
.../airflow/ui/src/pages/AssetsList/AssetsList.tsx | 26 +-
.../ui/src/pages/Connections/Connections.tsx | 28 +-
.../src/airflow/ui/src/pages/Dag/Header.tsx | 1 -
.../ui/src/pages/DagsList/AssetSchedule.tsx | 31 +-
.../src/airflow/ui/src/pages/DagsList/DagCard.tsx | 1 -
.../pages/DagsList/DagsFilters/FavoriteFilter.tsx | 13 +-
.../pages/DagsList/DagsFilters/PausedFilter.tsx | 3 -
.../pages/DagsList/DagsFilters/StateFilters.tsx | 13 +-
.../src/airflow/ui/src/pages/DagsList/DagsList.tsx | 23 +-
.../src/airflow/ui/src/pages/DagsList/Schedule.tsx | 16 +-
.../pages/Dashboard/Stats/DAGImportErrorsModal.tsx | 7 +-
.../ui/src/pages/GroupTaskInstance/Header.tsx | 2 +-
.../ui/src/pages/MappedTaskInstance/Header.tsx | 2 +-
.../ui/src/pages/TaskInstance/BlockingDeps.tsx | 8 +-
.../airflow/ui/src/pages/TaskInstance/Header.tsx | 11 +-
.../ManageVariable/EditVariableButton.tsx | 13 +-
.../airflow/ui/src/pages/Variables/Variables.tsx | 67 +-
.../src/airflow/ui/src/pages/XCom/XCom.tsx | 14 +-
.../src/airflow/ui/src/queries/useDagParams.ts | 2 +-
.../airflow/ui/src/queries/useGridTISummaries.ts | 9 +-
.../src/airflow/ui/src/queries/useTogglePause.ts | 12 +
airflow-core/src/airflow/utils/db.py | 1 +
.../src/airflow/utils/log/file_task_handler.py | 11 +-
airflow-core/tests/integration/otel/test_otel.py | 155 +-
.../managers/simple/test_simple_auth_manager.py | 3 -
.../auth/managers/test_base_auth_manager.py | 10 -
.../auth/middlewares/test_refresh_token.py | 31 +
.../tests/unit/api_fastapi/auth/test_tokens.py | 24 +
.../core_api/routes/public/test_assets.py | 12 +-
.../core_api/routes/public/test_auth.py | 15 +
.../core_api/routes/public/test_backfills.py | 2 +-
.../core_api/routes/public/test_connections.py | 60 +
.../core_api/routes/public/test_dag_run.py | 18 +-
.../core_api/routes/public/test_dag_versions.py | 26 +-
.../core_api/routes/public/test_pools.py | 52 +-
.../core_api/routes/public/test_xcom.py | 12 +
.../core_api/routes/ui/test_dependencies.py | 31 +-
.../api_fastapi/core_api/routes/ui/test_grid.py | 84 +
.../api_fastapi/core_api/services/ui}/__init__.py | 0
.../api_fastapi/core_api/services/ui/test_grid.py | 138 +
.../core_api/test_app.py} | 26 +-
.../unit/api_fastapi/core_api/test_security.py | 225 +-
airflow-core/tests/unit/api_fastapi/test_app.py | 22 +
airflow-core/tests/unit/charts/log_groomer.py | 70 +
.../tests/unit/cli/commands/test_config_command.py | 5 +-
airflow-core/tests/unit/core/test_otel_logger.py | 55 +
.../tests/unit/dag_processing/test_manager.py | 31 +-
airflow-core/tests/unit/jobs/test_scheduler_job.py | 74 +-
airflow-core/tests/unit/models/test_dagrun.py | 78 +
.../tests/unit/models/test_taskinstance.py | 23 +
.../serialization/serializers/test_serializers.py | 7 +-
.../ti_deps/deps/test_ready_to_reschedule_dep.py | 8 +
airflow-core/tests/unit/utils/test_db.py | 22 +-
airflow-ctl-tests/pyproject.toml | 9 +-
airflow-ctl/pyproject.toml | 11 +-
.../src/airflowctl/api/datamodels/generated.py | 9 +-
apache_airflow_site.py | 16 -
chart/dockerfiles/pgbouncer-exporter/Dockerfile | 27 +-
chart/pyproject.toml | 8 +-
.../api-server/api-server-deployment.yaml | 6 +-
.../dag-processor/dag-processor-deployment.yaml | 8 +
.../templates/scheduler/scheduler-deployment.yaml | 8 +
.../templates/triggerer/triggerer-deployment.yaml | 8 +
chart/templates/workers/worker-deployment.yaml | 8 +
chart/values.schema.json | 15 +-
chart/values.yaml | 20 +-
clients/python/pyproject.toml | 10 +-
contributing-docs/05_pull_requests.rst | 2 +-
contributing-docs/12_provider_distributions.rst | 2 +-
contributing-docs/testing/system_tests.rst | 100 +-
dev/README_RELEASE_AIRFLOW.md | 9 +-
dev/README_RELEASE_AIRFLOWCTL.md | 3 +-
dev/README_RELEASE_HELM_CHART.md | 129 +-
dev/README_RELEASE_PROVIDERS.md | 11 +-
dev/README_RELEASE_PYTHON_CLIENT.md | 1 +
dev/breeze/README.md | 14 +
dev/breeze/doc/01_installation.rst | 4 +-
dev/breeze/doc/03_developer_tasks.rst | 2 +-
.../doc/adr/0001-record-architecture-decisions.md | 3 +-
dev/breeze/doc/ci/02_images.md | 6 +-
dev/breeze/doc/ci/README.md | 9 +
dev/breeze/doc/images/output_prod-image_build.svg | 152 +-
dev/breeze/doc/images/output_prod-image_build.txt | 2 +-
dev/breeze/pyproject.toml | 6 +-
.../airflow_breeze/commands/ci_image_commands.py | 3 +-
.../commands/common_image_options.py | 8 +
.../commands/production_image_commands.py | 4 +
.../commands/production_image_commands_config.py | 1 +
.../commands/release_candidate_command.py | 85 +-
.../src/airflow_breeze/commands/release_command.py | 58 +-
.../commands/release_management_commands.py | 36 +-
dev/breeze/src/airflow_breeze/global_constants.py | 14 +-
.../src/airflow_breeze/params/build_prod_params.py | 4 +
.../src/airflow_breeze/params/shell_params.py | 1 +
.../utils/airflow_release_validator.py | 597 +++
.../utils/constraints_version_check.py | 9 +-
.../airflow_breeze/utils/docker_command_utils.py | 61 +-
.../src/airflow_breeze/utils/environment_check.py | 5 +-
.../src/airflow_breeze/utils/release_validator.py | 624 +++
dev/breeze/src/airflow_breeze/utils/run_utils.py | 3 +
.../src/airflow_breeze/utils/selective_checks.py | 21 +-
.../test_airflow_release_validator_integration.py | 532 +++
dev/breeze/tests/test_release_candidate_command.py | 282 +-
dev/breeze/tests/test_release_command.py | 81 +-
dev/breeze/uv.lock | 517 +-
dev/pyproject.toml | 11 +-
.../react_plugin_template/package.json | 7 +-
dev/system_tests/README.md | 8 +
devel-common/pyproject.toml | 7 +-
devel-common/src/tests_common/pytest_plugin.py | 6 -
.../src/tests_common/test_utils/otel_utils.py | 68 +-
docker-stack-docs/README.md | 12 +-
docker-stack-docs/build-arg-ref.rst | 2 +-
docker-stack-docs/build.rst | 2 +-
docker-stack-docs/changelog.rst | 70 +-
.../customizing/add-build-essential-custom.sh | 4 +-
.../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 | 28 +-
.../extending/add-apt-packages/Dockerfile | 28 +-
.../add-build-essential-extend/Dockerfile | 30 +-
.../extending/add-providers/Dockerfile | 28 +-
.../add-pypi-packages-constraints/Dockerfile | 28 +-
.../extending/add-pypi-packages-uv/Dockerfile | 28 +-
.../extending/add-pypi-packages/Dockerfile | 28 +-
.../extending/add-requirement-packages/Dockerfile | 28 +-
.../extending/custom-providers/Dockerfile | 28 +-
.../extending/embedding-dags/Dockerfile | 28 +-
.../extending/writable-directory/Dockerfile | 28 +-
.../restricted/restricted_environments.sh | 2 +-
.../docker-images-recipes/gcloud.Dockerfile | 27 +-
.../docker-images-recipes/go-beam.Dockerfile | 27 +-
.../docker-images-recipes/hadoop.Dockerfile | 27 +-
docker-stack-docs/entrypoint.rst | 14 +-
docker-stack-docs/pyproject.toml | 7 +-
docker-tests/pyproject.toml | 9 +-
.../test_docker_compose_quick_start.py | 4 +
generated/PYPI_README.md | 32 +-
go-sdk/.pre-commit-config.yaml | 2 +-
helm-tests/pyproject.toml | 9 +-
helm-tests/tests/chart_utils/log_groomer.py | 70 +
.../helm_tests/airflow_core/test_api_server.py | 9 +
kubernetes-tests/pyproject.toml | 9 +-
providers-summary-docs/pyproject.toml | 7 +-
.../executors/test_kubernetes_executor.py | 4 +-
.../tests/unit/docker/operators/test_docker.py | 12 +-
.../docker/tests/unit/docker/test_exceptions.py | 6 +-
.../cloud/transfers/test_bigquery_to_bigquery.py | 8 +-
.../http/tests/unit/http/sensors/test_http.py | 2 +-
pyproject.toml | 26 +-
reproducible_build.yaml | 4 +-
scripts/ci/install_breeze.sh | 2 +-
scripts/ci/license-templates/SHORT_LICENSE.md | 2 +
scripts/ci/license-templates/SHORT_LICENSE.rst | 2 +
scripts/ci/license-templates/SHORT_LICENSE.txt | 2 +
scripts/ci/prek/check_extra_packages_ref.py | 2 +-
scripts/ci/prek/check_imports_in_providers.py | 2 +-
.../prek/check_shared_distributions_structure.py | 2 +-
scripts/ci/prek/common_prek_utils.py | 9 +-
scripts/ci/prek/ruff_format.py | 2 +-
scripts/ci/prek/supported_versions.py | 4 +-
scripts/ci/prek/update_airflow_pyproject_toml.py | 78 +-
scripts/ci/prek/update_chart_dependencies.py | 9 +-
scripts/ci/prek/upgrade_important_versions.py | 234 +-
scripts/docker/clean-logs.sh | 32 +-
.../docker/install_airflow_when_building_images.sh | 12 +
scripts/in_container/run_generate_constraints.py | 2 +-
.../run_prepare_airflow_distributions.py | 7 +-
scripts/tools/setup_breeze | 2 +-
shared/logging/pyproject.toml | 9 +-
.../airflow_shared/logging/percent_formatter.py | 9 +-
.../tests/logging/test_percent_formatter.py | 11 +
shared/secrets_masker/pyproject.toml | 9 +-
.../secrets_masker/secrets_masker.py | 39 +-
.../tests/secrets_masker/test_secrets_masker.py | 357 +-
shared/timezones/pyproject.toml | 9 +-
task-sdk-tests/docker/docker-compose.yaml | 2 +-
task-sdk-tests/pyproject.toml | 9 +-
task-sdk/docs/api.rst | 14 +-
task-sdk/pyproject.toml | 9 +-
task-sdk/src/airflow/sdk/__init__.py | 7 +-
task-sdk/src/airflow/sdk/bases/sensor.py | 13 +-
task-sdk/src/airflow/sdk/definitions/connection.py | 2 +-
.../src/airflow/sdk/execution_time/task_runner.py | 76 +-
task-sdk/src/airflow/sdk/io/fs.py | 2 +-
task-sdk/tests/task_sdk/bases/test_hook.py | 47 +
task-sdk/tests/task_sdk/bases/test_sensor.py | 57 +
.../tests/task_sdk/definitions/test_connection.py | 19 +
task-sdk/tests/task_sdk/docs/test_public_api.py | 2 +-
.../task_sdk/execution_time/test_task_runner.py | 290 +-
333 files changed, 15291 insertions(+), 8993 deletions(-)
create mode 100644
airflow-core/src/airflow/migrations/versions/0086_3_1_8_add_index_to_task_reschedule_ti_id.py
copy
airflow-core/src/airflow/migrations/versions/{0051_3_0_0_update_task_instance_trigger_timeout_to_utcdatetime.py
=> 0087_3_1_8_change_signed_url_template_from_varchar_.py} (55%)
create mode 100644
airflow-core/src/airflow/ui/src/components/FlexibleForm/FieldDropdown.test.tsx
copy airflow-core/{src/airflow/_shared =>
tests/unit/api_fastapi/core_api/services/ui}/__init__.py (100%)
create mode 100644
airflow-core/tests/unit/api_fastapi/core_api/services/ui/test_grid.py
copy airflow-core/tests/unit/{ti_deps/deps/test_task_not_running_dep.py =>
api_fastapi/core_api/test_app.py} (62%)
delete mode 100644 apache_airflow_site.py
create mode 100644
dev/breeze/src/airflow_breeze/utils/airflow_release_validator.py
copy shared/secrets_masker/tests/conftest.py =>
dev/breeze/src/airflow_breeze/utils/environment_check.py (85%)
create mode 100644 dev/breeze/src/airflow_breeze/utils/release_validator.py
create mode 100644
dev/breeze/tests/integration_tests/test_airflow_release_validator_integration.py
create mode 100644 scripts/ci/license-templates/SHORT_LICENSE.md
create mode 100644 scripts/ci/license-templates/SHORT_LICENSE.rst
create mode 100644 scripts/ci/license-templates/SHORT_LICENSE.txt