This is an automated email from the ASF dual-hosted git repository.
vatsrahul1001 pushed a change to branch v3-3-test
in repository https://gitbox.apache.org/repos/asf/airflow.git
discard 7db95ef39f0 [v3-3-test] i18n(ko): add missing translations (#68234)
(#68439)
add 0a2aefa0709 Docs: fix removed webserver command in FAB SSO guide for
Airflow 3 (#68166)
add a053537e5bd docs: update FAB auth manager Flask config wording for
Airflow 3 (#68162)
add e9d54fcc998 Fix mapped task instance links without start date (#68194)
add fe30279b379 Fix scheduler crash with InvalidStatsNameException for
non-ASCII DAG names when OTel metrics enabled (#68023)
add 675439d1590 Refresh apache-magpie setup bootstrap skill from framework
upgrade (#68235)
add 8e91fa7cd35 fix: remove redundant columns in XCom panel on task
instance page (#68188)
add 2d0b1e77f58 Skip ktlint prek hook unless java-sdk files changed
(#68210)
add 30b92c5daf2 Docs: Add CLI examples for team-scoped pools (#68111)
add 60ff4669c9b Consumer team asset filtering: add API endpoint support
(#68034)
add 8f36246f458 Fix import errors total_entries count with multiple DAGs
per file (#67550)
add bb510f2b799 Bump the auth-ui-package-updates group across 1 directory
with 18 updates (#68231)
add 21d37d3ff29 Import ldap.filter in security_manager override (#68226)
add 7651e4b9859 UI: Use bulk clearDagRuns endpoint for bulk Dag run clear
(#67846)
add f90ebd0835b Add --team-name support to pool CLI commands (#68110)
add 16d95dd8879 Fix `none_failed_min_one_success` trigger rule checks
(#67873)
add 837bfdee031 Fix CLI variables import with structured falsy values
(#67060)
add fe92cfd4e01 API: Add bulk update to mark Dag runs as success/failed
(#67948)
add c0c12273f61 UI: align backend state aggregation with
active-over-pending priority (#67543)
add 77920c5794e Close German Translation Gaps 2026-06-06 (#68130)
add 2a924677557 Retry TriggerDagRunOperator when the triggered DagRun
fails (#65390)
add 6e44476ab0b [main] CI: Upgrade important CI environment (#68209)
add 744ff2e6443 Add asset and task store UI (#67292)
add 2e5af2a0517 fix(ui): prevent duplicate TI summary stream refreshes
after mutations (#67892)
add bbb043cde9f Fix team consumer asset filtering (#68242)
add cd5509fc701 Reduce SSH connection churn in `SSHRemoteJobOperator`
under high fan-out (#68115)
add 43048cec906 Go-SDK: Make go-sdk docs up to date with Coordinator
change (#68221)
add 1e8be208e3f Honor retry_policy on non-deferrable TriggerDagRunOperator
wait failures (#68254)
add 1e406495ec5 Fix spurious "Failed to detach context" error on Execution
API disconnects (#68039)
add 035be6d3621 Go-SDK: Add Go Task SDK authoring guide to airflow-core
docs (#68223)
add 65a82aa10ad Rename config for state_backend on workers to
state_store_backend (#68270)
add 12a9985bd5f Add better logging to ResumableJobMixin for crash recovery
observability (#68206)
add f00b2853282 fix(ci): Add retry logic to download commands in CI image
build (#68255)
add 17325b9082c UI: Fix laggy multi-selection checkboxes in tables (#68229)
add 96122a4e9d0 Remove v3-2-test scheduled CI upgrade check (#68275)
add 75cba2925f7 Add Redis client self-identification for Apache Airflow
(#61866)
add 76bed661465 Add GCSToAzureBlobStorageOperator for GCS to Azure Blob
transfer (#64966)
add d8961101b03 Add MongoToGCSOperator to copy MongoDB collections to GCS
(#66013)
add b2a840d68c8 Load example DAGs from providers via ProvidersManager
(continuation of #57320) (#66161)
add f94b48937f5 Add remote log upload support for callback subprocesses
(#66379)
add 6132261fb49 Rename task-failure handlers so naming matches the call
hierarchy (#68264)
add fc6c9844d28 fix(tests): Add retries to EMR on EKS system test job
submission (#68257)
add a11fa2fa5df fix(tests): Use unique S3 bucket name in bedrock
evaluation system test (#68256)
add b183a4cb7b7 Use execute_values instead of execute_batch for better
bulk insert performance with PostgresHook (#68207)
add 2b306ca05a8 Fix secrets backend connection errors silently swallowed
at DEBUG level (#68301)
add db04a4ef8c2 Fix older and custom secrets backends breaking on Airflow
3.2 (#68302)
add 05117d0855f Fix remote-log providers not satisfying RemoteLogIO upload
contract (#68300)
add 3e480942fb0 Go-SDK: Expose task runtime context to coordinator-mode
tasks (#68271)
add b311e6fb453 Pass task/asset scopes to serialize methods instead of
ti_id/asset_ref (#68274)
add f3ca1c27abd Crash recovery for YARN cluster mode in
SparkSubmitOperator built on AIP-103 (#67473)
add f392484cc58 i18n(zh-CN): add missing translations (#68289)
add 04f19d19b07 Fix scheduler crashloop when last task instance predates
Dag versioning (#68253)
add a8c99107c9f feat(AIP-76): support forward fan-out via forward kwarg on
Window (#67475)
add f690474a26a Add FixedKeyMapper and SegmentWindow for categorical
asset-partition rollup (#67716)
add e8b2098d616 CI: Fix generated/provider_dependencies.json (#68324)
add 764c516b01f Fix DagProcessor crash: add missing name_is_otel_safe()
guard to gauge() and timer() (#68284)
add 5f1c969ccc3 UI: Fix wrong language auto-detected from browser
preferences (#68258)
add 21123cecdad Reuse a session-scoped FastAPI app across api_fastapi
tests (#68261)
add d93a93849db Add missing template_fields to
BedrockCreateEvaluationJobOperator (#68310)
add 6a5cbdbc131 ci: sync AGENTS.md commands from contributing docs via
prek hook (#68204)
add 44f03af0a2f PR template: request before/after screenshots for UI
changes (#68201)
add e6fc8734077 fix(scheduler): populate partition_date for temporal asset
partitions (#68266)
add 8d199cf59d7 feat: close Taiwanese Mandarin Translation Gap (#68335)
add ac82cecf144 Fix 500 error for event logs with NULL dttm (#68338)
add a48c549d031 Speed up Dags list and dashboard queries on large DagRun
tables (#67721)
add 40b6796fac5 Avoid N+1 team-name queries in bulk Dag run authorization
(#68286)
add 31f3ad90157 Fix apache-airflow-mypy release docs to match ASF dist
conventions (#68332)
add eeb0c9d1b5b Fix role bindings for workers.celery.serviceAccount
(#68306)
add cc20a79b3ca Bump stylelint (#68347)
add 85ceb631177 Fill TR Translation Gaps Main (#68182)
add e51289d6892 Add import error to deactivated dag (#65687)
add 71f334aef14 Close Catalan gap on main (#68272)
add 18704832a39 Remove deprecated SecurityContext from chart (#68036)
add e5a89f13ba1 Remove deprecated ingress options from chart (#68043)
add 67e935988ae Modify values in pod launcher role tests (#68357)
add 71827ec13fb Align apache-airflow-mypy RC verification steps with other
release docs (#68350)
add cdbeb481670 Kubernetes Pod Operator - handle pod preemption before
container creation (#68328)
add 471e9a17faf Pass DagRun to task_instance_mutation_hook for run-aware
task mutation (#68198)
add 27754b93fea Add team_name to Multi-Team metrics (#68108)
add ae2fe0ce713 fix: Fix Triggered DAG button not visible during
queued/running state (#67327)
add 57b427449b1 docs: update architecture overview to Airflow 3
architecture (#67994)
add 227506a9783 [main] Upgrade important CI environment (#68322)
add 6e6edfd5cdc Add prek hook to auto-update copyright year in NOTICE
files (#67146)
add b7247b13219 feat(core): add per-mapper max_fan_out override for
partition fan-out cap (#67184)
add 439105f33b3 Add `task_store` table to `airflow db clean` mechanism
(#68218)
add 34901b68ae8 Fix cursor encoding for column-form SortParam to_replace
(#67973)
add d31f66509df Fix Vault GCP auth for metadata credentials (#68069)
add d411f55c7e3 Go-SDK: Inject task runtime context as sdk.TIRunContext
parameter (#68349)
add a6380161db6 Docs: Add sdk.TIRunContext for Go-SDK (#68319)
add e1dadc77c03 Docs: Remove stale reload_on_plugin_change from API config
reference (#68364)
add d4c7791a704 Fix MySQL downgrade from 3.3.0 on deadline_alert.interval
JSON conversion (#68337)
add 023ae241c47 Fix setup/teardown auto-inclusion when clearing or marking
tasks (#68193)
add 5319f6da8f1 Revert "Surface remote-log upload failures via structured
warnings (#66571)" (#68371)
add 402683f9361 Improve providers release docs: carry over testing-issue
checkmarks + tag-providers --release-date (#68228)
add 87640330536 Mask all connection extra and variable values in API audit
log (#68049)
add e609f032f40 UI: Bulk mark Dag runs as success/failed from multi-select
(#68278)
add 7ccec1dcdcb UI: Add Details tab to the mapped task instance view
(#68340)
add dd048b35f0a Fix Gantt tooltip showing wrong start date on
queued/scheduled segments (#68176)
add a0be5d8c5f8 [AIP-94] Create a CLI airflowctl client and adopt it in
existing commands (#68175)
add a5ffa6c7949 Fix upstream map index resolution after placeholder
expansion (#59691)
add 872427c2534 Version the worker-bound TaskInstance fields in the
execution API schema (#68390)
add 0ec51a96621 Conditional deprecated table generation in doc (#68363)
add 742f9a7909d Add HTTPRoute (Gateway API) support to API server in Helm
Chart (#67675)
add dab70fbcf20 Require edit rights for async connection test updates
(#68127)
add cf904d7852f refactor: Explicitly added pydantic dependency to http
provider as raised by @NBardelot (#68321)
add 1f938e55823 Add language SDK contributing doc (#68330)
add a57fcc1c19d UI: Add custom expiration datetime picker for task store
modal (#68394)
add 40aac72bef2 UI: Add a column in asset store display table linking to
the TI that wrote it (#68395)
add 6c10f4c1161 Add metrics and traces to `ResumableJobMixin` for crash
recovery (#68213)
add d2f42e62cfc Optimize TaskGroup.topological_sort for reverse-declared
Dags (#67688)
add 1691f6c4678 Update providers metadata 2026-06-12 (#68419)
add 390db26ec04 Fix Typo in EdgeExecutor Architecture diagram (#68401)
add 4a7775a7974 Fix empty labels in Stackdriver log IO for Airflow 3
Supervisor (#68292)
add 41ebdf3e3b0 Revert #59691 due to broken trigger rules in mapped task
groups (#68418)
add 460cf26088a feat: Add fullscreen toggle to code viewer (#68044)
add e35f720baf1 Rename resumablejobmixin test file to match its src file
(#68427)
add 48b17e8f809 docs: clarify when to use custom `handler` (#68345)
add 15173321dea Let partitioned Dag runs fire on a partial upstream window
with wait_policy (#66848)
add 30827b1a9e5 Fix typo and restore SVG diagram headers (#68435)
add 36c439c39cf Fix Java-SDK connection port casting (#68433)
add 9126a64abab Fix BackfillDagRun.partition_key type annotation (str, not
datetime) (#68432)
add 36dd823770b Fix backward compatibility for DagRunInfo partition fields
(#68342)
add 390fc454bb2 Java gradle plugin and project split (#68380)
add 29a8fe3e208 i18n(ko): add missing translations (#68234)
add def50a90211 feat(dag_command.py): change to use bulk clear (#68280)
add 5f8d7400a86 [main] CI: Upgrade important CI environment (#68436)
add 38c50f5b54e Explicitly initialize Task SDK Stats in API server
lifespan (hardening; backport fix for 3.2.x) (#68078)
add 79fa1654d8f made await_pod_start to run before
await_init_containers_completion (#68450)
add 56699a8aa88 Add team name in asset graph view (#68457)
add 8ecd4b8bb4b Bump the auth-ui-package-updates group across 1 directory
with 5 updates (#68465)
add 44d9bfa77b0 Remove `workers` section deprecation & simplify Workers
Sets template logic (#66671)
add b64b28f92e3 Bump the github-actions-updates group across 1 directory
with 4 updates (#68470)
add 6b01a04c2f5 docs: Explain the agent tool boundary in common.ai
security docs (#68404)
add 1c40bfb27ec Access AgentRunResult.usage as a property in common.ai
logging (#68405)
add e36fab0095c Create documentation for `allow_consumer_teams` parameter
in asset access control (#66821)
add 2d1aaab9ec0 Use pre-commit hook to keep Java versions in sync (#68448)
add ab2851bc745 Return a 422 when the database rejects an API payload
(#66888)
add f0684b04ccc Revert "Explicitly initialize Task SDK Stats in API server
lifespan (hardenin…" (#68481)
add 31e1d87e129 Split e2e test-helpers.ts into domain-scoped modules
(#66387)
add b7f03406b06 Move JDK installation to image-build time (#68485)
add 0823e7ad189 Fix flaky SimpleAuthManager login tests under parallel
runs (#68498)
add e5bf1e30c1b fix(test_wasb.py): SAS token tests failing with
azure-storage-blob 12.30.0 (#68490)
add 1caab087e5c Complete missing Arabic translations (#68425)
add d5a8294de66 Add regression test for KPO awaiting pod start before
init-container logs (#68503)
add b935b90c5b4 Remove redundant tests from airflow-core (#68513)
add d08a365fe6a Update hungarian translations (#68385)
add fce62f6aae8 Add missing Polish (pl) UI translations (#68410)
add 4f2b0b3faab Magpie: sync setup bootstrap docs + pin triage feedback
channel (#68420)
add 247551da1d0 Add CI duration trend monitor to warn on slow main builds
(#68368)
add 8e4b7500e55 Explicitly initialize Stats in API server lifespan (#68514)
add ec3f008f0b1 Return dag-specified results in dag run wait API (#64577)
add 9101aa66754 Stop exposing trigger kwargs in the REST API response
(#67868)
add be617e7350c Don't auto-add Java SDK Javadoc to provider-list doc
publishes (#68237)
add bfecc03a274 Use paths to fix baseUrl deprecation warning in tsconfig
which helps in using typescript 7 preview. (#68320)
add 74a52cf5d3d Rename task_store/asset_store to
task_state_store/asset_state_store (#68438)
add 10136e51e4a Bump the edge-ui-package-updates group across 1 directory
with 14 updates (#68469)
add c6cb72c208c Make pod patching logic explicitly reflect when a pod is
retained (#68507)
add 9be3dc1860d Document and test xcom_pull run_id usage for triggered DAG
runs (#63030)
add cb7c347d81f Skip FK-referenced dag_version rows during db clean
(#68339)
add 4dc98451ba8 fix: handle unmapped task deadlock when upstream tasks are
removed (#62034)
add 06d4b1ea7d6 Emit dag_processing.last_run.seconds_ago as a tagged
metric (#62487)
add 49ef2f890b8 Avoid N+1 queries when bulk deleting variables (#68508)
add bede83ae390 Fix UI instance name title on non-Dag pages (#68288)
add 9ce71fd2270 Add additional task instance attributes to task instance's
details section (#68378)
add 1a6bfd8753c Unify Dag Code tab toolbar with Logs toolbar style (#68449)
add b9fc11c8ea4 Cleaning up some task_state and asset_state references in
core airflow (#68428)
add 3baec70f90f Renaming old name: task_state to task_store across spark
provider (#68430)
add cad58b72218 Update task_state/asset_state occurences in config.yml
(#68553)
add 05f00d654ae Cleaning up asset_state references in task sdk (#68429)
add 452fed808f6 Block retry_policy argument for StubOperator (#68551)
add 2cc74161a92 Make `example_task_state_store` use minimal context
(#68556)
This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version. This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:
* -- * -- B -- O -- O -- O (7db95ef39f0)
\
N -- N -- N refs/heads/v3-3-test (2cc74161a92)
You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.
Any revisions marked "omit" are not gone; other references still
refer to them. Any revisions marked "discard" are gone forever.
No new revisions were added by this update.
Summary of changes:
.agents/skills/magpie-setup/SKILL.md | 24 +-
.agents/skills/magpie-setup/adopt.md | 49 +
.agents/skills/magpie-setup/unadopt.md | 12 +-
.agents/skills/magpie-setup/upgrade.md | 10 +
.agents/skills/magpie-setup/verify.md | 31 +
.apache-magpie-overrides/pr-management-config.md | 7 +
.github/PULL_REQUEST_TEMPLATE.md | 3 +
.github/workflows/additional-ci-image-checks.yml | 2 +-
.github/workflows/additional-prod-image-tests.yml | 8 +-
.github/workflows/airflow-distributions-tests.yml | 2 +-
.github/workflows/airflow-e2e-tests.yml | 2 +-
.github/workflows/asf-allowlist-check.yml | 2 +-
.github/workflows/backport-cli.yml | 2 +-
.github/workflows/basic-tests.yml | 22 +-
.github/workflows/ci-amd.yml | 23 +-
.github/workflows/ci-arm.yml | 23 +-
...ky-tests-report.yml => ci-duration-monitor.yml} | 29 +-
.github/workflows/ci-image-build.yml | 2 +-
.github/workflows/ci-image-checks.yml | 12 +-
.github/workflows/ci-notification.yml | 2 +-
.github/workflows/codeql-analysis.yml | 13 +-
.github/workflows/e2e-flaky-tests-report.yml | 2 +-
.github/workflows/finalize-tests.yml | 6 +-
.github/workflows/generate-constraints.yml | 2 +-
.github/workflows/helm-tests.yml | 4 +-
.github/workflows/integration-system-tests.yml | 6 +-
.github/workflows/k8s-tests.yml | 2 +-
.github/workflows/milestone-tag-assistant.yml | 2 +-
.github/workflows/notify-uv-lock-conflicts.yml | 2 +-
.github/workflows/prod-image-build.yml | 4 +-
.github/workflows/publish-docs-to-s3.yml | 26 +-
.github/workflows/push-image-cache.yml | 4 +-
.github/workflows/registry-backfill.yml | 8 +-
.github/workflows/registry-build.yml | 4 +-
.github/workflows/registry-tests.yml | 4 +-
.github/workflows/release_dockerhub_image.yml | 2 +-
.../workflows/release_single_dockerhub_image.yml | 4 +-
.github/workflows/run-unit-tests.yml | 2 +-
.../scheduled-upgrade-check-v3-2-test.yml | 35 -
.../scheduled-verify-release-calendar.yml | 2 +-
.github/workflows/test-providers.yml | 4 +-
.github/workflows/ui-e2e-tests.yml | 2 +-
.../update-constraints-on-push-stable.yml | 8 +-
.github/workflows/update-constraints-on-push.yml | 8 +-
.github/workflows/upgrade-check.yml | 4 +-
.pre-commit-config.yaml | 61 +-
AGENTS.md | 2 +
Dockerfile | 38 +-
Dockerfile.ci | 53 +-
.../cluster-policies.rst | 19 +-
.../docs/administration-and-deployment/index.rst | 4 +-
....rst => task-and-asset-state-store-cleanup.rst} | 20 +-
...et-store.rst => task-and-asset-state-store.rst} | 55 +-
.../administration-and-deployment/web-stack.rst | 1 -
.../docs/authoring-and-scheduling/assets.rst | 101 +-
.../authoring-and-scheduling/language-sdks/go.rst | 462 ++
.../language-sdks/index.rst | 27 +
.../language-sdks/java.rst | 205 +-
airflow-core/docs/best-practices.rst | 2 +-
.../{asset-store.rst => asset-state-store.rst} | 70 +-
airflow-core/docs/core-concepts/executor/index.rst | 6 +-
airflow-core/docs/core-concepts/index.rst | 8 +-
airflow-core/docs/core-concepts/multi-team.rst | 315 +-
airflow-core/docs/core-concepts/overview.rst | 65 +-
.../docs/core-concepts/resumable-tasks.rst | 10 +-
...et-store.rst => task-and-asset-state-store.rst} | 26 +-
.../{task-store.rst => task-state-store.rst} | 80 +-
airflow-core/docs/core-concepts/xcoms.rst | 10 +
airflow-core/docs/migrations-ref.rst | 2 +-
airflow-core/newsfragments/62487.significant.rst | 1 +
airflow-core/newsfragments/66161.significant.rst | 12 +
airflow-core/newsfragments/66848.feature.rst | 1 +
airflow-core/newsfragments/67184.feature.rst | 1 +
airflow-core/newsfragments/67475.feature.rst | 1 +
airflow-core/newsfragments/67688.improvement.rst | 1 +
airflow-core/newsfragments/67716.feature.rst | 1 +
airflow-core/newsfragments/67868.bugfix.rst | 1 +
airflow-core/newsfragments/67873.bugfix.rst | 1 +
airflow-core/newsfragments/68175.significant.rst | 24 +
airflow-core/newsfragments/68266.bugfix.rst | 1 +
airflow-core/src/airflow/api/client/__init__.py | 26 -
.../src/airflow/api/client/local_client.py | 103 -
airflow-core/src/airflow/api/common/mark_tasks.py | 2 +
airflow-core/src/airflow/api_fastapi/app.py | 24 +
.../api_fastapi/auth/managers/base_auth_manager.py | 16 +
.../auth/managers/simple/simple_auth_manager.py | 3 +
.../auth/managers/simple/ui/package.json | 36 +-
.../auth/managers/simple/ui/pnpm-lock.yaml | 929 ++--
.../src/airflow/api_fastapi/common/exceptions.py | 54 +-
.../src/airflow/api_fastapi/common/parameters.py | 59 +-
.../{asset_store.py => asset_state_store.py} | 24 +-
.../api_fastapi/core_api/datamodels/assets.py | 8 +
.../api_fastapi/core_api/datamodels/dag_run.py | 4 +-
.../{task_store.py => task_state_store.py} | 18 +-
.../api_fastapi/core_api/datamodels/trigger.py | 22 +-
.../api_fastapi/core_api/datamodels/ui/common.py | 1 +
.../api_fastapi/core_api/openapi/_private_ui.yaml | 11 +
.../core_api/openapi/v2-rest-api-generated.yaml | 266 +-
.../api_fastapi/core_api/routes/public/__init__.py | 8 +-
.../{asset_store.py => asset_state_store.py} | 112 +-
.../api_fastapi/core_api/routes/public/assets.py | 7 +
.../core_api/routes/public/connections.py | 8 +-
.../api_fastapi/core_api/routes/public/dag_run.py | 72 +-
.../core_api/routes/public/event_logs.py | 22 +-
.../core_api/routes/public/import_error.py | 42 +-
.../public/{task_store.py => task_state_store.py} | 122 +-
.../airflow/api_fastapi/core_api/routes/ui/dags.py | 68 +-
.../api_fastapi/core_api/routes/ui/dashboard.py | 48 +-
.../src/airflow/api_fastapi/core_api/security.py | 9 +-
.../core_api/services/public/dag_run.py | 269 +-
.../core_api/services/public/task_instances.py | 8 +-
.../core_api/services/public/variables.py | 19 +-
.../core_api/services/ui/dependencies.py | 21 +
.../src/airflow/api_fastapi/execution_api/app.py | 5 +-
.../{asset_store.py => asset_state_store.py} | 8 +-
.../{task_store.py => task_state_store.py} | 8 +-
.../execution_api/datamodels/taskinstance.py | 4 +
.../api_fastapi/execution_api/routes/__init__.py | 10 +-
.../{asset_store.py => asset_state_store.py} | 80 +-
.../execution_api/routes/task_instances.py | 11 +-
.../routes/{task_store.py => task_state_store.py} | 36 +-
.../api_fastapi/execution_api/versions/__init__.py | 6 +-
.../execution_api/versions/v2026_06_16.py | 4 +-
.../execution_api/versions/v2026_06_30.py | 13 +-
.../src/airflow/api_fastapi/logging/decorators.py | 23 +-
airflow-core/src/airflow/assets/manager.py | 33 +-
airflow-core/src/airflow/cli/api_client.py | 129 +
airflow-core/src/airflow/cli/cli_config.py | 14 +-
.../src/airflow/cli/commands/asset_command.py | 66 +-
.../src/airflow/cli/commands/dag_command.py | 113 +-
.../src/airflow/cli/commands/pool_command.py | 101 +-
.../airflow/cli/commands/state_store_command.py | 12 +-
.../src/airflow/cli/commands/variable_command.py | 2 +-
airflow-core/src/airflow/cli/utils.py | 36 +-
.../src/airflow/config_templates/config.yml | 25 +-
.../src/airflow/dag_processing/bundles/manager.py | 71 +
.../src/airflow/dag_processing/collection.py | 2 +-
airflow-core/src/airflow/dag_processing/dagbag.py | 26 -
airflow-core/src/airflow/dag_processing/manager.py | 14 +-
.../example_dags/example_asset_partition.py | 40 +
...asset_store.py => example_asset_state_store.py} | 22 +-
...e_task_store.py => example_task_state_store.py} | 33 +-
airflow-core/src/airflow/example_dags/standard | 1 -
.../src/airflow/executors/workloads/task.py | 32 +-
.../src/airflow/jobs/scheduler_job_runner.py | 295 +-
...sk_state_store_and_asset_state_store_tables.py} | 36 +-
.../0117_3_3_0_change_deadline_interval_to_json.py | 46 +-
airflow-core/src/airflow/models/__init__.py | 4 +-
.../{asset_store.py => asset_state_store.py} | 8 +-
airflow-core/src/airflow/models/backfill.py | 2 +-
airflow-core/src/airflow/models/connection.py | 5 +-
airflow-core/src/airflow/models/dagrun.py | 24 +-
airflow-core/src/airflow/models/pool.py | 17 +-
.../models/{task_store.py => task_state_store.py} | 14 +-
airflow-core/src/airflow/models/taskinstance.py | 14 +-
airflow-core/src/airflow/models/taskmap.py | 11 +-
airflow-core/src/airflow/models/variable.py | 5 +-
.../src/airflow/partition_mappers/__init__.py | 4 +
.../src/airflow/partition_mappers/allowed_key.py | 10 +-
airflow-core/src/airflow/partition_mappers/base.py | 81 +-
.../src/airflow/partition_mappers/chain.py | 18 +-
.../src/airflow/partition_mappers/fixed_key.py | 65 +
.../src/airflow/partition_mappers/product.py | 13 +-
.../src/airflow/partition_mappers/temporal.py | 60 +-
.../src/airflow/partition_mappers/wait_policy.py | 174 +
.../src/airflow/partition_mappers/window.py | 136 +-
airflow-core/src/airflow/policies.py | 54 +-
airflow-core/src/airflow/serialization/decoders.py | 21 +
.../src/airflow/serialization/definitions/dag.py | 16 +
.../airflow/serialization/definitions/taskgroup.py | 67 +-
airflow-core/src/airflow/serialization/encoders.py | 112 +-
airflow-core/src/airflow/serialization/helpers.py | 21 +-
airflow-core/src/airflow/settings.py | 8 +-
airflow-core/src/airflow/state/metastore.py | 240 +-
.../src/airflow/ti_deps/deps/trigger_rule_dep.py | 42 +-
airflow-core/src/airflow/timetables/base.py | 4 +-
.../src/airflow/ui/openapi-gen/queries/common.ts | 62 +-
.../ui/openapi-gen/queries/ensureQueryData.ts | 54 +-
.../src/airflow/ui/openapi-gen/queries/prefetch.ts | 54 +-
.../src/airflow/ui/openapi-gen/queries/queries.ts | 128 +-
.../src/airflow/ui/openapi-gen/queries/suspense.ts | 54 +-
.../airflow/ui/openapi-gen/requests/schemas.gen.ts | 161 +-
.../ui/openapi-gen/requests/services.gen.ts | 116 +-
.../airflow/ui/openapi-gen/requests/types.gen.ts | 160 +-
.../airflow/ui/public/i18n/locales/ar/admin.json | 21 +-
.../airflow/ui/public/i18n/locales/ar/assets.json | 21 +-
.../airflow/ui/public/i18n/locales/ar/browse.json | 22 +
.../airflow/ui/public/i18n/locales/ar/common.json | 90 +-
.../ui/public/i18n/locales/ar/components.json | 14 +-
.../src/airflow/ui/public/i18n/locales/ar/dag.json | 111 +-
.../airflow/ui/public/i18n/locales/ar/dags.json | 5 +
.../ui/public/i18n/locales/ar/dashboard.json | 2 +
.../airflow/ui/public/i18n/locales/ca/assets.json | 17 +
.../airflow/ui/public/i18n/locales/ca/browse.json | 18 +
.../airflow/ui/public/i18n/locales/ca/common.json | 14 +-
.../ui/public/i18n/locales/ca/components.json | 3 +
.../src/airflow/ui/public/i18n/locales/ca/dag.json | 22 +
.../ui/public/i18n/locales/ca/dashboard.json | 2 +
.../airflow/ui/public/i18n/locales/de/browse.json | 18 +
.../airflow/ui/public/i18n/locales/de/common.json | 9 +
.../ui/public/i18n/locales/de/components.json | 2 +
.../ui/public/i18n/locales/de/dashboard.json | 2 +
.../airflow/ui/public/i18n/locales/en/assets.json | 17 +
.../airflow/ui/public/i18n/locales/en/common.json | 18 +-
.../src/airflow/ui/public/i18n/locales/en/dag.json | 26 +-
.../airflow/ui/public/i18n/locales/hu/admin.json | 9 +-
.../airflow/ui/public/i18n/locales/hu/assets.json | 15 +-
.../airflow/ui/public/i18n/locales/hu/browse.json | 18 +
.../airflow/ui/public/i18n/locales/hu/common.json | 63 +-
.../ui/public/i18n/locales/hu/components.json | 15 +-
.../src/airflow/ui/public/i18n/locales/hu/dag.json | 85 +-
.../airflow/ui/public/i18n/locales/hu/dags.json | 5 +
.../ui/public/i18n/locales/hu/dashboard.json | 2 +
.../airflow/ui/public/i18n/locales/hu/tasks.json | 2 +-
.../airflow/ui/public/i18n/locales/pl/assets.json | 14 +
.../airflow/ui/public/i18n/locales/pl/browse.json | 20 +
.../airflow/ui/public/i18n/locales/pl/common.json | 20 +-
.../ui/public/i18n/locales/pl/components.json | 3 +
.../src/airflow/ui/public/i18n/locales/pl/dag.json | 22 +
.../ui/public/i18n/locales/pl/dashboard.json | 2 +
.../airflow/ui/public/i18n/locales/tr/admin.json | 3 +-
.../airflow/ui/public/i18n/locales/tr/assets.json | 1 -
.../airflow/ui/public/i18n/locales/tr/browse.json | 18 +
.../airflow/ui/public/i18n/locales/tr/common.json | 58 +
.../ui/public/i18n/locales/tr/components.json | 9 +-
.../src/airflow/ui/public/i18n/locales/tr/dag.json | 51 +
.../airflow/ui/public/i18n/locales/tr/dags.json | 5 +
.../ui/public/i18n/locales/tr/dashboard.json | 2 +
.../ui/public/i18n/locales/zh-CN/admin.json | 3 +-
.../ui/public/i18n/locales/zh-CN/assets.json | 17 +
.../ui/public/i18n/locales/zh-CN/browse.json | 18 +
.../ui/public/i18n/locales/zh-CN/common.json | 63 +-
.../ui/public/i18n/locales/zh-CN/components.json | 8 +-
.../airflow/ui/public/i18n/locales/zh-CN/dag.json | 73 +
.../airflow/ui/public/i18n/locales/zh-CN/dags.json | 5 +
.../ui/public/i18n/locales/zh-CN/dashboard.json | 2 +
.../ui/public/i18n/locales/zh-TW/assets.json | 17 +
.../ui/public/i18n/locales/zh-TW/common.json | 5 +-
.../airflow/ui/public/i18n/locales/zh-TW/dag.json | 22 +
.../src/components/DagDeactivatedBanner.test.tsx | 147 +
.../ui/src/components/DagDeactivatedBanner.tsx | 70 +
.../{useRowSelection.ts => useRowSelection.tsx} | 78 +-
.../src/airflow/ui/src/components/DeleteDialog.tsx | 9 +-
.../airflow/ui/src/components/Graph/DagNode.tsx | 16 +-
.../airflow/ui/src/components/Graph/TaskNode.tsx | 13 +
.../ui/src/components/Graph/elkGraphUtils.ts | 2 +
.../ui/src/components/Graph/reactflowUtils.ts | 1 +
.../src/airflow/ui/src/components/HeaderCard.tsx | 49 +-
.../ui/src/components/StoreValueCell.test.tsx | 86 +
.../airflow/ui/src/components/StoreValueCell.tsx | 54 +
.../airflow/ui/src/components/ui/LazyClipboard.tsx | 5 +-
.../src/airflow/ui/src/i18n/config.test.ts | 91 +
airflow-core/src/airflow/ui/src/i18n/config.ts | 81 +-
.../src/airflow/ui/src/layouts/BaseLayout.test.tsx | 111 +
.../src/airflow/ui/src/layouts/BaseLayout.tsx | 39 +-
.../ui/src/layouts/Details/DagBreadcrumb.tsx | 5 +-
.../ui/src/layouts/Details/DetailsLayout.tsx | 14 +-
.../ui/src/layouts/Details/Gantt/GanttTimeline.tsx | 2 +-
.../airflow/ui/src/layouts/Details/Gantt/utils.ts | 5 +-
.../Details/Graph/useGraphFilteredNodes.test.ts | 49 +
.../layouts/Details/Graph/useGraphFilteredNodes.ts | 30 +-
.../src/airflow/ui/src/layouts/Details/NavTabs.tsx | 77 +-
.../StorageLayout.tsx} | 20 +-
.../src/airflow/ui/src/pages/Asset/AssetEvents.tsx | 79 +
.../src/airflow/ui/src/pages/Asset/AssetLayout.tsx | 65 +-
.../AssetStateStore/AddAssetStateStoreButton.tsx} | 24 +-
.../Asset/AssetStateStore/AssetStateStore.tsx | 161 +
.../Asset/AssetStateStore/AssetStateStoreModal.tsx | 141 +
.../ClearAllAssetStateStoreButton.tsx | 69 +
.../DeleteAssetStateStoreButton.tsx | 70 +
.../AssetStateStore/EditAssetStateStoreButton.tsx} | 33 +-
.../Asset/AssetStateStore/index.ts} | 8 +-
.../ui/src/pages/Connections/Connections.tsx | 53 +-
.../src/airflow/ui/src/pages/Dag/Code/Code.tsx | 326 +-
.../ui/src/pages/Dag/DagImportErrorModal.tsx | 72 +
.../src/airflow/ui/src/pages/Dag/Header.test.tsx | 1 -
.../src/airflow/ui/src/pages/Dag/Header.tsx | 11 +-
.../src/pages/DagRuns/BulkClearDagRunsButton.tsx | 6 +-
.../src/pages/DagRuns/BulkMarkDagRunsAsButton.tsx | 130 +
.../src/airflow/ui/src/pages/DagRuns/DagRuns.tsx | 51 +-
.../src/airflow/ui/src/pages/DagsList/DagsList.tsx | 4 +-
.../{DAGImportErrors.tsx => DagImportErrors.tsx} | 7 +-
...ortErrorsModal.tsx => DagImportErrorsModal.tsx} | 38 +-
.../airflow/ui/src/pages/Dashboard/Stats/Stats.tsx | 4 +-
.../ui/src/pages/GroupTaskInstance/Header.tsx | 4 +-
.../ui/src/pages/MappedTaskInstance/Details.tsx | 140 +
.../ui/src/pages/MappedTaskInstance/Header.tsx | 23 +-
.../MappedTaskInstance/MappedTaskInstance.tsx | 17 +-
.../airflow/ui/src/pages/TaskInstance/Details.tsx | 63 +-
.../airflow/ui/src/pages/TaskInstance/Header.tsx | 14 +-
.../src/pages/TaskInstance/Logs/TaskLogHeader.tsx | 8 +-
.../ui/src/pages/TaskInstance/TaskInstance.tsx | 9 +-
.../src/pages/TaskInstances/TaskInstances.test.tsx | 168 +
.../ui/src/pages/TaskInstances/TaskInstances.tsx | 51 +-
.../TaskStateStore/AddTaskStateStoreButton.tsx} | 33 +-
.../ClearAllTaskStateStoreButton.tsx | 72 +
.../TaskStateStore/DeleteTaskStateStoreButton.tsx | 73 +
.../TaskStateStore/EditTaskStateStoreButton.tsx} | 37 +-
.../ui/src/pages/TaskStateStore/TaskStateStore.tsx | 165 +
.../pages/TaskStateStore/TaskStateStoreModal.tsx | 240 +
.../TaskStateStore/index.ts} | 9 +-
.../airflow/ui/src/pages/Variables/Variables.tsx | 50 +-
.../src/airflow/ui/src/pages/XCom/XCom.tsx | 112 +-
.../airflow/ui/src/queries/useBulkClearDagRuns.ts | 130 +-
.../ui/src/queries/useBulkClearDagRunsDryRun.ts | 67 +-
.../airflow/ui/src/queries/useBulkMarkAsDryRun.ts | 2 +-
.../airflow/ui/src/queries/useBulkPatchDagRun.ts | 115 +
.../ui/src/queries/useGridTISummaries.test.tsx | 260 +
.../airflow/ui/src/queries/useGridTISummaries.ts | 50 +-
.../src/airflow/ui/src/queries/useStoreMutation.ts | 67 +
airflow-core/src/airflow/ui/src/router.tsx | 22 +-
.../documentTitleContext.ts} | 11 +-
airflow-core/src/airflow/ui/src/utils/index.ts | 1 +
airflow-core/src/airflow/ui/src/utils/links.ts | 15 +-
.../src/airflow/ui/src/utils/useDocumentTitle.ts | 19 +-
...cumentTitle.ts => useDocumentTitleProvider.tsx} | 24 +-
.../airflow/ui/tests/e2e/fixtures/asset-data.ts | 2 +-
.../ui/tests/e2e/fixtures/audit-log-data.ts | 2 +-
.../airflow/ui/tests/e2e/fixtures/calendar-data.ts | 4 +-
.../airflow/ui/tests/e2e/fixtures/dag-runs-data.ts | 4 +-
.../ui/tests/e2e/fixtures/dashboard-data.ts | 2 +-
.../src/airflow/ui/tests/e2e/fixtures/data.ts | 4 +-
.../ui/tests/e2e/fixtures/task-instances-data.ts | 8 +-
.../src/airflow/ui/tests/e2e/fixtures/xcom-data.ts | 4 +-
.../src/airflow/ui/tests/e2e/global-setup.ts | 2 +-
.../src/airflow/ui/tests/e2e/pages/BackfillPage.ts | 2 +-
.../airflow/ui/tests/e2e/pages/ConnectionsPage.ts | 2 +-
.../ui/tests/e2e/pages/RequiredActionsPage.ts | 2 +-
.../airflow/ui/tests/e2e/specs/backfill.spec.ts | 4 +-
.../airflow/ui/tests/e2e/specs/connections.spec.ts | 2 +-
.../airflow/ui/tests/e2e/specs/dags-list.spec.ts | 2 +-
.../src/airflow/ui/tests/e2e/specs/pools.spec.ts | 2 +-
.../ui/tests/e2e/specs/requiredAction.spec.ts | 3 +-
.../airflow/ui/tests/e2e/specs/variable.spec.ts | 3 +-
.../airflow/ui/tests/e2e/utils/api/backfills.ts | 188 +
.../src/airflow/ui/tests/e2e/utils/api/dag-runs.ts | 345 ++
.../src/airflow/ui/tests/e2e/utils/api/hitl.ts | 194 +
.../airflow/ui/tests/e2e/utils/api/variables.ts | 66 +
.../e2e/utils/shared.ts} | 34 +-
.../src/airflow/ui/tests/e2e/utils/test-helpers.ts | 802 ---
.../src/airflow/ui/tests/e2e/utils/ui/waits.ts | 64 +
airflow-core/src/airflow/ui/tsconfig.app.json | 5 +-
airflow-core/src/airflow/utils/db_cleanup.py | 55 +-
airflow-core/tests/integration/otel/test_otel.py | 2 +-
.../tests/unit/always/test_example_dags.py | 3 -
airflow-core/tests/unit/always/test_secrets.py | 50 +
.../tests/unit/api/common/test_mark_tasks.py | 36 +-
.../api_fastapi/auth/managers/simple/conftest.py | 16 +
.../tests/unit/api_fastapi/common/test_cursors.py | 36 +
.../tests/unit/api_fastapi/common/test_dagbag.py | 6 +-
.../unit/api_fastapi/common/test_exceptions.py | 110 +-
.../unit/api_fastapi/common/test_parameters.py | 24 +-
airflow-core/tests/unit/api_fastapi/conftest.py | 142 +-
.../core_api/datamodels/test_trigger.py | 56 +
...st_asset_store.py => test_asset_state_store.py} | 80 +-
.../core_api/routes/public/test_assets.py | 93 +-
.../core_api/routes/public/test_backfills.py | 2 +-
.../core_api/routes/public/test_connections.py | 22 +
.../core_api/routes/public/test_dag_parsing.py | 4 +-
.../core_api/routes/public/test_dag_run.py | 200 +-
.../core_api/routes/public/test_dag_sources.py | 2 +-
.../core_api/routes/public/test_event_logs.py | 35 +
.../core_api/routes/public/test_import_error.py | 184 +
.../core_api/routes/public/test_task_instances.py | 154 +-
...test_task_store.py => test_task_state_store.py} | 103 +-
.../core_api/routes/public/test_variables.py | 26 +
.../core_api/routes/ui/test_dashboard.py | 10 +-
.../core_api/routes/ui/test_dependencies.py | 86 +-
.../core_api/routes/ui/test_structure.py | 22 +
.../unit/api_fastapi/core_api/test_security.py | 41 +
.../unit/api_fastapi/execution_api/test_app.py | 80 +-
...st_asset_store.py => test_asset_state_store.py} | 40 +-
.../versions/head/test_task_instances.py | 105 +-
...test_task_store.py => test_task_state_store.py} | 44 +-
.../unit/api_fastapi/logging/test_decorators.py | 81 +-
airflow-core/tests/unit/api_fastapi/test_app.py | 44 +
airflow-core/tests/unit/assets/test_manager.py | 189 +-
.../tests/unit/cli/commands/test_asset_command.py | 148 +-
.../unit/cli/commands/test_backfill_command.py | 4 +-
.../unit/cli/commands/test_command_deprecations.py | 72 +
.../tests/unit/cli/commands/test_dag_command.py | 519 +-
.../unit/cli/commands/test_kerberos_command.py | 10 -
.../tests/unit/cli/commands/test_pool_command.py | 238 +-
.../unit/cli/commands/test_state_store_command.py | 14 +-
.../tests/unit/cli/commands/test_task_command.py | 18 +-
.../tests/unit/cli/commands/test_team_command.py | 2 +-
.../unit/cli/commands/test_variable_command.py | 33 +-
airflow-core/tests/unit/cli/conftest.py | 22 +-
airflow-core/tests/unit/cli/test_api_client.py | 140 +
airflow-core/tests/unit/cli/test_utils.py | 48 +
.../tests/unit/cluster_policies/__init__.py | 8 +-
.../tests/unit/core/test_impersonation_tests.py | 2 +-
airflow-core/tests/unit/core/test_policies.py | 77 +
.../bundles/test_dag_bundle_manager.py | 11 +-
.../tests/unit/dag_processing/test_collection.py | 4 +-
.../tests/unit/dag_processing/test_dagbag.py | 148 +-
.../tests/unit/dag_processing/test_manager.py | 23 +-
.../tests/unit/dag_processing/test_processor.py | 28 +-
.../tests/unit/executors/test_base_executor.py | 15 -
.../tests/unit/executors/test_workloads.py | 37 +
airflow-core/tests/unit/jobs/test_base_job.py | 10 -
airflow-core/tests/unit/jobs/test_scheduler_job.py | 448 +-
airflow-core/tests/unit/jobs/test_triggerer_job.py | 28 +-
.../tests/unit/logging/test_logging_config.py | 8 -
.../test_0117_deadline_interval_json_migration.py | 91 +
...st_asset_store.py => test_asset_state_store.py} | 46 +-
airflow-core/tests/unit/models/test_cleartasks.py | 63 +
airflow-core/tests/unit/models/test_dag.py | 10 +-
airflow-core/tests/unit/models/test_dagcode.py | 18 +-
airflow-core/tests/unit/models/test_dagrun.py | 251 +-
.../tests/unit/models/test_serialized_dag.py | 22 +-
...test_task_store.py => test_task_state_store.py} | 56 +-
.../tests/unit/models/test_taskinstance.py | 35 +-
.../unit/partition_mappers/test_allowed_key.py | 17 +
.../tests/unit/partition_mappers/test_base.py | 57 +-
.../tests/unit/partition_mappers/test_chain.py | 37 +-
.../tests/unit/partition_mappers/test_fan_out.py | 104 +
.../tests/unit/partition_mappers/test_fixed_key.py | 120 +
.../tests/unit/partition_mappers/test_identity.py | 15 +
.../tests/unit/partition_mappers/test_product.py | 21 +-
.../partition_mappers/test_rollup_wait_policy.py | 524 ++
.../tests/unit/partition_mappers/test_temporal.py | 115 +-
.../tests/unit/partition_mappers/test_window.py | 213 +-
.../unit/serialization/test_dag_serialization.py | 6 +-
.../unit/serialization/test_serialized_objects.py | 7 +-
airflow-core/tests/unit/state/test_metastore.py | 213 +-
.../unit/ti_deps/deps/test_trigger_rule_dep.py | 148 +-
.../unit/timetables/test_trigger_timetable.py | 16 +
airflow-core/tests/unit/utils/test_db_cleanup.py | 191 +-
airflow-core/tests/unit/utils/test_task_group.py | 42 +
.../src/airflowctl/api/datamodels/generated.py | 251 +-
.../airflowctl/ctl/commands/variable_command.py | 13 +-
.../ctl/commands/test_variable_command.py | 38 +-
.../tests/airflow_e2e_tests/conftest.py | 76 +-
.../tests/airflow_e2e_tests/constants.py | 5 +-
.../go_sdk_tests/test_go_sdk_dag.py | 59 +-
chart/docs/conf.py | 8 +-
chart/docs/parameters-ref.rst | 4 +
chart/docs/production-guide.rst | 24 +
chart/files/pod-template-file.kubernetes-helm-yaml | 96 +-
chart/newsfragments/68036.significant.rst | 3 +
chart/newsfragments/68043.significant.rst | 12 +
chart/templates/NOTES.txt | 831 +--
chart/templates/_helpers.yaml | 84 +-
.../templates/api-server/api-server-httproute.yaml | 61 +
chart/templates/api-server/api-server-ingress.yaml | 11 +-
chart/templates/flower/flower-ingress.yaml | 11 +-
chart/templates/pgbouncer/pgbouncer-ingress.yaml | 2 +-
.../pgbouncer/pgbouncer-networkpolicy.yaml | 10 +-
chart/templates/rbac/job-launcher-rolebinding.yaml | 14 +-
chart/templates/rbac/pod-launcher-rolebinding.yaml | 14 +-
.../security-context-constraint-rolebinding.yaml | 4 +-
.../templates/scheduler/scheduler-deployment.yaml | 18 +-
.../secrets/metadata-connection-secret.yaml | 10 +-
chart/templates/statsd/statsd-ingress.yaml | 2 +-
chart/templates/workers/worker-deployment.yaml | 241 +-
chart/templates/workers/worker-hpa.yaml | 29 +-
chart/templates/workers/worker-kedaautoscaler.yaml | 39 +-
.../workers/worker-kubernetes-serviceaccount.yaml | 8 +-
chart/templates/workers/worker-networkpolicy.yaml | 17 +-
.../workers/worker-poddisruptionbudget.yaml | 21 +-
chart/templates/workers/worker-service.yaml | 17 +-
chart/templates/workers/worker-serviceaccount.yaml | 20 +-
.../gateway.networking.k8s.io_httproutes.yaml | 5546 ++++++++++++++++++++
chart/tests/chart_utils/helm_template_generator.py | 4 +-
chart/tests/chart_utils/log_groomer.py | 40 +-
.../helm_tests/airflow_aux/test_airflow_common.py | 12 +-
.../helm_tests/airflow_aux/test_annotations.py | 128 -
.../airflow_aux/test_basic_helm_chart.py | 2 +-
.../airflow_aux/test_container_lifecycle.py | 159 +-
.../airflow_aux/test_job_launcher_role.py | 126 +-
.../airflow_aux/test_pod_launcher_role.py | 148 +-
.../airflow_aux/test_pod_template_file.py | 1058 +---
.../helm_tests/airflow_core/test_pdb_worker.py | 117 +-
.../helm_tests/airflow_core/test_scheduler.py | 123 +-
chart/tests/helm_tests/airflow_core/test_worker.py | 1721 ++----
.../helm_tests/airflow_core/test_worker_sets.py | 2126 ++------
.../apiserver/test_httproute_apiserver.py | 207 +
.../helm_tests/apiserver/test_ingress_apiserver.py | 95 +-
chart/tests/helm_tests/other/test_hpa.py | 100 +-
chart/tests/helm_tests/other/test_keda.py | 191 +-
chart/tests/helm_tests/other/test_pgbouncer.py | 24 +-
chart/tests/helm_tests/other/test_statsd.py | 22 -
chart/tests/helm_tests/security/test_kerberos.py | 57 +-
chart/tests/helm_tests/security/test_rbac.py | 25 +-
.../helm_tests/security/test_rbac_pod_launcher.py | 7 +-
.../helm_tests/security/test_scc_rolebinding.py | 109 +-
.../helm_tests/security/test_security_context.py | 518 +-
chart/values.schema.json | 1979 ++-----
chart/values.yaml | 858 +--
contributing-docs/08_static_code_checks.rst | 14 +
contributing-docs/30_new_language_sdk.rst | 260 +
contributing-docs/testing/unit_tests.rst | 27 +
dev/README_RELEASE_MYPY.md | 243 +-
dev/README_RELEASE_PROVIDERS.md | 29 +-
dev/breeze/doc/ci/02_images.md | 4 +-
dev/breeze/doc/ci/04_selective_checks.md | 3 +
dev/breeze/doc/images/output_build-docs.svg | 2 +-
dev/breeze/doc/images/output_build-docs.txt | 2 +-
dev/breeze/doc/images/output_shell.svg | 16 +-
dev/breeze/doc/images/output_shell.txt | 2 +-
dev/breeze/doc/images/output_start-airflow.svg | 16 +-
dev/breeze/doc/images/output_start-airflow.txt | 2 +-
dev/breeze/pyproject.toml | 2 +-
.../src/airflow_breeze/commands/common_options.py | 2 +-
.../airflow_breeze/commands/developer_commands.py | 8 +-
.../commands/developer_commands_config.py | 2 -
.../airflow_breeze/commands/kubernetes_commands.py | 2 +-
.../commands/release_management_commands.py | 6 +-
dev/breeze/src/airflow_breeze/global_constants.py | 4 +-
.../src/airflow_breeze/params/shell_params.py | 3 -
.../src/airflow_breeze/utils/selective_checks.py | 5 +
dev/breeze/tests/test_selective_checks.py | 84 +-
dev/breeze/uv.lock | 112 +-
devel-common/pyproject.toml | 2 +-
devel-common/src/tests_common/pytest_plugin.py | 39 +-
devel-common/src/tests_common/test_utils/db.py | 43 +-
docker-stack-docs/build-arg-ref.rst | 2 +-
.../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 +-
.../restricted/restricted_environments.sh | 2 +-
docs/spelling_wordlist.txt | 2 +
generated/provider_dependencies.json | 4 +
generated/provider_dependencies.json.sha256sum | 2 +-
generated/provider_metadata.json | 16 +
go-sdk/Justfile | 5 +
go-sdk/README.md | 326 +-
go-sdk/bundle/bundlev1/bundlev1server/server.go | 3 +
go-sdk/bundle/bundlev1/registry.go | 43 +-
go-sdk/bundle/bundlev1/schemas.go | 30 +-
go-sdk/bundle/bundlev1/task.go | 30 +-
go-sdk/bundle/bundlev1/task_test.go | 77 +
go-sdk/example/bundle/main.go | 32 +-
go-sdk/example/bundle/main_test.go | 4 +-
go-sdk/pkg/execution/integration_test.go | 91 +
go-sdk/pkg/execution/messages.go | 12 +-
go-sdk/pkg/execution/messages_test.go | 31 +-
go-sdk/pkg/execution/task_runner.go | 32 +
go-sdk/pkg/sdkcontext/keys.go | 11 +
go-sdk/sdk/client.go | 4 +
go-sdk/sdk/connection.go | 8 +
go-sdk/sdk/context.go | 110 +
go-sdk/sdk/context_test.go | 54 +
go-sdk/sdk/doc.go | 26 +-
go-sdk/sdk/errors.go | 8 +-
go-sdk/sdk/sdk.go | 29 +-
java-sdk/README.md | 48 +-
java-sdk/{example => bom}/build.gradle.kts | 37 +-
java-sdk/build.gradle.kts | 61 -
.../buildSrc/build.gradle.kts | 21 +-
.../kotlin/airflow-jvm-conventions.gradle.kts} | 39 +-
.../src/main/kotlin/airflow-publish.gradle.kts | 112 +
.../example/{build.gradle.kts => build.gradle} | 28 +-
java-sdk/example/gradle.properties | 1 +
.../example/settings.gradle | 21 +-
.../src/resources}/dags/java_examples.py | 0
java-sdk/gradle.properties | 2 +-
java-sdk/plugin/build.gradle.kts | 57 +
.../apache/airflow/sdk/plugin/AirflowSdkPlugin.kt | 221 +
java-sdk/{example => processor}/build.gradle.kts | 38 +-
.../org/apache/airflow/sdk/BuilderProcessor.kt} | 70 -
.../services/javax.annotation.processing.Processor | 0
.../kotlin/org/apache/airflow/sdk/BuilderTest.kt | 0
java-sdk/sdk/build.gradle.kts | 84 +-
.../main/kotlin/org/apache/airflow/sdk/Builder.kt | 192 +-
.../main/kotlin/org/apache/airflow/sdk/Client.kt | 4 +-
.../kotlin/org/apache/airflow/sdk/ClientTest.kt | 92 +
.../org/apache/airflow/sdk/execution/TaskTest.kt | 4 +-
java-sdk/settings.gradle.kts | 20 +-
.../test_kubernetes_pod_operator.py | 2 +-
.../alibaba/cloud/log/oss_task_handler.py | 2 +-
.../amazon/aws/log/cloudwatch_task_handler.py | 2 +-
.../providers/amazon/aws/log/s3_task_handler.py | 2 +-
.../providers/amazon/aws/operators/bedrock.py | 9 +-
.../amazon/aws/example_bedrock_evaluation.py | 2 +-
.../tests/system/amazon/aws/example_emr_eks.py | 7 +-
.../amazon/aws/executors/ecs/test_ecs_executor.py | 1 +
.../providers/apache/hdfs/log/hdfs_task_handler.py | 2 +-
providers/apache/spark/docs/changelog.rst | 2 +-
providers/apache/spark/docs/operators.rst | 4 +-
.../providers/apache/spark/hooks/spark_submit.py | 65 +-
.../apache/spark/operators/spark_submit.py | 68 +-
.../unit/apache/spark/hooks/test_spark_submit.py | 132 +-
.../apache/spark/operators/test_spark_submit.py | 183 +-
.../clickhousedb/docs/connections/clickhouse.rst | 2 +-
providers/clickhousedb/docs/index.rst | 2 +-
.../clickhousedb/docs/operators/clickhouse.rst | 4 +-
.../providers/cncf/kubernetes/operators/pod.py | 15 +-
.../providers/cncf/kubernetes/utils/pod_manager.py | 7 +
.../cncf/kubernetes/utils/xcom_sidecar.py | 2 +-
.../system/cncf/kubernetes/example_kubernetes.py | 2 +-
.../cncf/kubernetes/example_kubernetes_async.py | 2 +-
.../unit/cncf/kubernetes/operators/test_pod.py | 26 +-
.../unit/cncf/kubernetes/utils/test_pod_manager.py | 22 +
providers/common/ai/docs/toolsets.rst | 29 +
.../example_dags/example_aip_progress_tracker.py | 10 +-
.../airflow/providers/common/ai/utils/logging.py | 2 +-
.../common/ai/tests/unit/common/ai/conftest.py | 6 +-
.../tests/unit/common/ai/decorators/test_agent.py | 4 +-
.../ai/tests/unit/common/ai/decorators/test_llm.py | 4 +-
.../unit/common/ai/decorators/test_llm_branch.py | 4 +-
.../common/ai/decorators/test_llm_file_analysis.py | 2 +-
.../ai/decorators/test_llm_schema_compare.py | 4 +-
.../unit/common/ai/decorators/test_llm_sql.py | 4 +-
.../tests/unit/common/ai/operators/test_agent.py | 4 +-
.../ai/tests/unit/common/ai/operators/test_llm.py | 4 +-
.../unit/common/ai/operators/test_llm_branch.py | 4 +-
.../common/ai/operators/test_llm_file_analysis.py | 2 +-
.../common/ai/operators/test_llm_schema_compare.py | 4 +-
.../tests/unit/common/ai/operators/test_llm_sql.py | 4 +-
.../ai/tests/unit/common/ai/utils/test_logging.py | 2 +-
.../edge3/docs/img/distributed_architecture.svg | 5 +-
providers/edge3/docs/img/edge_package.svg | 5 +-
.../providers/edge3/plugins/www/package.json | 33 +-
.../providers/edge3/plugins/www/pnpm-lock.yaml | 886 ++--
.../edge3/worker_api/v2-edge-generated.yaml | 48 +-
.../providers/elasticsearch/log/es_task_handler.py | 5 +-
.../unit/elasticsearch/log/test_es_task_handler.py | 3 +
.../docs/auth-manager/configuring-flask-app.rst | 14 +-
providers/fab/docs/auth-manager/sso.rst | 4 +-
.../providers/fab/auth_manager/fab_auth_manager.py | 24 +
.../fab/auth_manager/security_manager/override.py | 1 +
.../fab/src/airflow/providers/fab/www/package.json | 2 +-
.../src/airflow/providers/fab/www/pnpm-lock.yaml | 106 +-
.../unit/fab/auth_manager/test_fab_auth_manager.py | 26 +
providers/fab/tests/unit/fab/www/views/conftest.py | 3 +-
providers/google/docs/index.rst | 1 +
.../docs/operators/transfer/mongo_to_gcs.rst | 68 +
providers/google/provider.yaml | 4 +
providers/google/pyproject.toml | 4 +
.../providers/google/cloud/log/gcs_task_handler.py | 2 +-
.../google/cloud/log/stackdriver_task_handler.py | 14 +-
.../google/cloud/transfers/mongo_to_gcs.py | 225 +
.../airflow/providers/google/get_provider_info.py | 6 +
.../google/cloud/transfers/example_mongo_to_gcs.py | 111 +
.../cloud/log/test_stackdriver_task_handler.py | 45 +
.../unit/google/cloud/operators/test_dataproc.py | 2 +-
.../unit/google/cloud/operators/test_looker.py | 2 +-
.../google/cloud/transfers/test_mongo_to_gcs.py | 273 +
.../hashicorp/_internal_client/vault_client.py | 8 +-
.../_internal_client/test_vault_client.py | 55 +
providers/http/README.rst | 1 +
providers/http/docs/index.rst | 1 +
providers/http/pyproject.toml | 1 +
.../keycloak/auth_manager/keycloak_auth_manager.py | 30 +-
.../auth_manager/test_keycloak_auth_manager.py | 21 +-
providers/microsoft/azure/docs/index.rst | 2 +
.../microsoft/azure/docs/transfer/gcs_to_wasb.rst | 69 +
providers/microsoft/azure/provider.yaml | 4 +
providers/microsoft/azure/pyproject.toml | 8 +
.../providers/microsoft/azure/get_provider_info.py | 6 +
.../providers/microsoft/azure/hooks/wasb.py | 7 +-
.../microsoft/azure/log/wasb_task_handler.py | 2 +-
.../microsoft/azure/transfers/gcs_to_wasb.py | 261 +
.../tests/unit/microsoft/azure/hooks/test_wasb.py | 32 +-
.../microsoft/azure/transfers/test_gcs_to_wasb.py | 259 +
.../unit/openlineage/plugins/test_execution.py | 2 -
.../providers/opensearch/log/os_task_handler.py | 5 +-
.../unit/opensearch/log/test_os_task_handler.py | 5 +
.../airflow/providers/papermill/hooks/kernel.py | 4 +-
.../airflow/providers/postgres/hooks/postgres.py | 37 +-
.../tests/unit/postgres/hooks/test_postgres.py | 48 +-
.../src/airflow/providers/redis/hooks/redis.py | 25 +
.../redis/tests/unit/redis/hooks/test_redis.py | 73 +-
providers/ssh/docs/operators/ssh_remote_job.rst | 42 +-
.../ssh/src/airflow/providers/ssh/hooks/ssh.py | 25 +-
.../providers/ssh/operators/ssh_remote_job.py | 242 +-
.../providers/ssh/triggers/ssh_remote_job.py | 252 +-
providers/ssh/tests/unit/ssh/hooks/test_ssh.py | 20 +
.../unit/ssh/operators/test_ssh_remote_job.py | 131 +
.../tests/unit/ssh/triggers/test_ssh_remote_job.py | 273 +-
.../airflow/providers/standard/decorators/stub.py | 10 +
.../providers/standard/operators/trigger_dagrun.py | 19 +-
.../tests/unit/standard/decorators/test_stub.py | 14 +
.../tests/unit/standard/operators/test_python.py | 2 +-
.../unit/standard/operators/test_trigger_dagrun.py | 31 +-
.../standard/sensors/test_external_task_sensor.py | 32 +-
.../tests/unit/standard/sensors/test_time_delta.py | 17 +-
.../tests/unit/standard/sensors/test_weekday.py | 12 +-
pyproject.toml | 2 +-
scripts/ci/analyze_ci_job_durations.py | 586 +++
scripts/ci/prek/check_imports_in_providers.py | 2 +-
scripts/ci/prek/check_java_sdk_version_in_sync.py | 152 +
scripts/ci/prek/check_notice_files.py | 8 +-
.../check_partition_mapper_defaults_in_sync.py | 321 +-
scripts/ci/prek/check_task_instance_dto_sync.py | 125 -
.../check_template_context_variable_in_sync.py | 6 +-
scripts/ci/prek/check_window_in_sync.py | 216 +
scripts/ci/prek/generate_agent_skills.py | 110 +
scripts/ci/prek/known_airflow_exceptions.txt | 2 +-
scripts/ci/prek/ruff_format.py | 2 +-
scripts/ci/prek/update_notice_year.py | 74 +
scripts/docker/entrypoint_ci.sh | 4 -
scripts/docker/install_jdk.sh | 70 -
scripts/docker/install_os_dependencies.sh | 34 +-
...test_check_partition_mapper_defaults_in_sync.py | 388 ++
.../tests/ci/prek/test_generate_agent_skills.py | 50 +-
scripts/tests/ci/test_analyze_ci_job_durations.py | 310 ++
scripts/tools/setup_breeze | 2 +-
.../logging/src/airflow_shared/logging/remote.py | 2 +-
shared/logging/tests/logging/test_remote.py | 4 +
.../observability/metrics/metrics_template.yaml | 44 +-
.../observability/metrics/otel_logger.py | 32 +-
.../observability/metrics/test_otel_logger.py | 48 +-
.../src/airflow_shared/secrets_backend/base.py | 40 +-
.../tests/secrets_backend/test_base.py | 95 +
shared/state/src/airflow_shared/state/__init__.py | 49 +-
shared/state/tests/state/test_state.py | 70 +-
task-sdk/docs/api.rst | 12 +
task-sdk/docs/executable-bundle-spec.rst | 59 +-
task-sdk/docs/resumable-job-mixin.rst | 8 +-
task-sdk/src/airflow/sdk/__init__.py | 19 +-
task-sdk/src/airflow/sdk/__init__.pyi | 12 +
task-sdk/src/airflow/sdk/api/client.py | 34 +-
.../src/airflow/sdk/api/datamodels/_generated.py | 33 +-
.../src/airflow/sdk/bases/resumablejobmixin.py | 114 +-
.../src/airflow/sdk/coordinators/_subprocess.py | 9 +-
.../sdk/coordinators/executable/coordinator.py | 4 +-
.../airflow/sdk/coordinators/java/coordinator.py | 4 +-
.../sdk/definitions/asset/access_control.py | 6 +-
task-sdk/src/airflow/sdk/definitions/context.py | 8 +-
.../definitions/partition_mappers/allowed_key.py | 6 +-
.../sdk/definitions/partition_mappers/base.py | 46 +-
.../sdk/definitions/partition_mappers/chain.py | 8 +-
.../sdk/definitions/partition_mappers/fixed_key.py | 52 +
.../sdk/definitions/partition_mappers/product.py | 14 +-
.../sdk/definitions/partition_mappers/temporal.py | 81 +-
.../definitions/partition_mappers/wait_policy.py | 74 +
.../sdk/definitions/partition_mappers/window.py | 85 +-
task-sdk/src/airflow/sdk/definitions/taskgroup.py | 92 +-
.../sdk/execution_time/callback_supervisor.py | 36 +-
task-sdk/src/airflow/sdk/execution_time/comms.py | 107 +-
task-sdk/src/airflow/sdk/execution_time/context.py | 145 +-
.../src/airflow/sdk/execution_time/coordinator.py | 6 +-
.../airflow/sdk/execution_time/schema/schema.json | 420 +-
.../src/airflow/sdk/execution_time/supervisor.py | 91 +-
.../src/airflow/sdk/execution_time/task_runner.py | 78 +-
.../sdk/execution_time/workloads/__init__.py | 23 -
.../airflow/sdk/execution_time/workloads/task.py | 53 -
task-sdk/src/airflow/sdk/log.py | 28 +-
task-sdk/tests/task_sdk/api/test_client.py | 48 +-
.../tests/task_sdk/bases/test_resumablejobmixin.py | 341 ++
.../tests/task_sdk/bases/test_resumablemixin.py | 199 -
.../coordinators/executable/test_coordinator.py | 8 +-
.../task_sdk/coordinators/java/test_coordinator.py | 8 +-
.../tests/task_sdk/coordinators/test_subprocess.py | 8 +-
.../definitions/test_asset_access_control.py | 2 +-
.../task_sdk/definitions/test_partition_mappers.py | 130 +
.../task_sdk/definitions/test_retry_policy.py | 20 +-
.../tests/task_sdk/definitions/test_taskgroup.py | 45 +
.../tests/task_sdk/definitions/test_wait_policy.py | 56 +
.../execution_time/test_callback_supervisor.py | 84 +-
.../tests/task_sdk/execution_time/test_context.py | 314 +-
.../task_sdk/execution_time/test_supervisor.py | 174 +-
.../task_sdk/execution_time/test_task_runner.py | 459 +-
task-sdk/tests/task_sdk/test_log.py | 120 -
uv.lock | 893 ++--
760 files changed, 36350 insertions(+), 18535 deletions(-)
copy .github/workflows/{e2e-flaky-tests-report.yml => ci-duration-monitor.yml}
(73%)
delete mode 100644 .github/workflows/scheduled-upgrade-check-v3-2-test.yml
rename
airflow-core/docs/administration-and-deployment/{task-and-asset-store-cleanup.rst
=> task-and-asset-state-store-cleanup.rst} (70%)
rename
airflow-core/docs/administration-and-deployment/{task-and-asset-store.rst =>
task-and-asset-state-store.rst} (70%)
create mode 100644
airflow-core/docs/authoring-and-scheduling/language-sdks/go.rst
rename airflow-core/docs/core-concepts/{asset-store.rst =>
asset-state-store.rst} (50%)
rename airflow-core/docs/core-concepts/{task-and-asset-store.rst =>
task-and-asset-state-store.rst} (82%)
rename airflow-core/docs/core-concepts/{task-store.rst =>
task-state-store.rst} (68%)
create mode 100644 airflow-core/newsfragments/62487.significant.rst
create mode 100644 airflow-core/newsfragments/66161.significant.rst
create mode 100644 airflow-core/newsfragments/66848.feature.rst
create mode 100644 airflow-core/newsfragments/67184.feature.rst
create mode 100644 airflow-core/newsfragments/67475.feature.rst
create mode 100644 airflow-core/newsfragments/67688.improvement.rst
create mode 100644 airflow-core/newsfragments/67716.feature.rst
create mode 100644 airflow-core/newsfragments/67868.bugfix.rst
create mode 100644 airflow-core/newsfragments/67873.bugfix.rst
create mode 100644 airflow-core/newsfragments/68175.significant.rst
create mode 100644 airflow-core/newsfragments/68266.bugfix.rst
delete mode 100644 airflow-core/src/airflow/api/client/__init__.py
delete mode 100644 airflow-core/src/airflow/api/client/local_client.py
rename
airflow-core/src/airflow/api_fastapi/core_api/datamodels/{asset_store.py =>
asset_state_store.py} (73%)
rename airflow-core/src/airflow/api_fastapi/core_api/datamodels/{task_store.py
=> task_state_store.py} (86%)
rename
airflow-core/src/airflow/api_fastapi/core_api/routes/public/{asset_store.py =>
asset_state_store.py} (64%)
rename
airflow-core/src/airflow/api_fastapi/core_api/routes/public/{task_store.py =>
task_state_store.py} (73%)
rename
airflow-core/src/airflow/api_fastapi/execution_api/datamodels/{asset_store.py
=> asset_state_store.py} (86%)
rename
airflow-core/src/airflow/api_fastapi/execution_api/datamodels/{task_store.py =>
task_state_store.py} (87%)
rename
airflow-core/src/airflow/api_fastapi/execution_api/routes/{asset_store.py =>
asset_state_store.py} (78%)
rename
airflow-core/src/airflow/api_fastapi/execution_api/routes/{task_store.py =>
task_state_store.py} (83%)
create mode 100644 airflow-core/src/airflow/cli/api_client.py
rename airflow-core/src/airflow/example_dags/{example_asset_store.py =>
example_asset_state_store.py} (81%)
rename airflow-core/src/airflow/example_dags/{example_task_store.py =>
example_task_state_store.py} (70%)
delete mode 120000 airflow-core/src/airflow/example_dags/standard
rename
airflow-core/src/airflow/migrations/versions/{0112_3_3_0_add_task_store_and_asset_store_tables.py
=> 0112_3_3_0_add_task_state_store_and_asset_state_store_tables.py} (72%)
rename airflow-core/src/airflow/models/{asset_store.py =>
asset_state_store.py} (93%)
rename airflow-core/src/airflow/models/{task_store.py => task_state_store.py}
(87%)
create mode 100644 airflow-core/src/airflow/partition_mappers/fixed_key.py
create mode 100644 airflow-core/src/airflow/partition_mappers/wait_policy.py
create mode 100644
airflow-core/src/airflow/ui/src/components/DagDeactivatedBanner.test.tsx
create mode 100644
airflow-core/src/airflow/ui/src/components/DagDeactivatedBanner.tsx
rename
airflow-core/src/airflow/ui/src/components/DataTable/{useRowSelection.ts =>
useRowSelection.tsx} (54%)
create mode 100644
airflow-core/src/airflow/ui/src/components/StoreValueCell.test.tsx
create mode 100644
airflow-core/src/airflow/ui/src/components/StoreValueCell.tsx
create mode 100644 airflow-core/src/airflow/ui/src/i18n/config.test.ts
create mode 100644 airflow-core/src/airflow/ui/src/layouts/BaseLayout.test.tsx
copy airflow-core/src/airflow/ui/src/{components/DagDeactivatedBadge.tsx =>
layouts/StorageLayout.tsx} (62%)
create mode 100644 airflow-core/src/airflow/ui/src/pages/Asset/AssetEvents.tsx
copy airflow-core/src/airflow/ui/src/{components/DagDeactivatedBadge.tsx =>
pages/Asset/AssetStateStore/AddAssetStateStoreButton.tsx} (58%)
create mode 100644
airflow-core/src/airflow/ui/src/pages/Asset/AssetStateStore/AssetStateStore.tsx
create mode 100644
airflow-core/src/airflow/ui/src/pages/Asset/AssetStateStore/AssetStateStoreModal.tsx
create mode 100644
airflow-core/src/airflow/ui/src/pages/Asset/AssetStateStore/ClearAllAssetStateStoreButton.tsx
create mode 100644
airflow-core/src/airflow/ui/src/pages/Asset/AssetStateStore/DeleteAssetStateStoreButton.tsx
copy airflow-core/src/airflow/ui/src/{components/DagDeactivatedBadge.tsx =>
pages/Asset/AssetStateStore/EditAssetStateStoreButton.tsx} (52%)
copy airflow-core/src/airflow/ui/src/{components/DagDeactivatedBadge.tsx =>
pages/Asset/AssetStateStore/index.ts} (74%)
create mode 100644
airflow-core/src/airflow/ui/src/pages/Dag/DagImportErrorModal.tsx
create mode 100644
airflow-core/src/airflow/ui/src/pages/DagRuns/BulkMarkDagRunsAsButton.tsx
rename
airflow-core/src/airflow/ui/src/pages/Dashboard/Stats/{DAGImportErrors.tsx =>
DagImportErrors.tsx} (89%)
rename
airflow-core/src/airflow/ui/src/pages/Dashboard/Stats/{DAGImportErrorsModal.tsx
=> DagImportErrorsModal.tsx} (76%)
create mode 100644
airflow-core/src/airflow/ui/src/pages/MappedTaskInstance/Details.tsx
create mode 100644
airflow-core/src/airflow/ui/src/pages/TaskInstances/TaskInstances.test.tsx
copy airflow-core/src/airflow/ui/src/{components/DagDeactivatedBadge.tsx =>
pages/TaskStateStore/AddTaskStateStoreButton.tsx} (54%)
create mode 100644
airflow-core/src/airflow/ui/src/pages/TaskStateStore/ClearAllTaskStateStoreButton.tsx
create mode 100644
airflow-core/src/airflow/ui/src/pages/TaskStateStore/DeleteTaskStateStoreButton.tsx
copy airflow-core/src/airflow/ui/src/{components/DagDeactivatedBadge.tsx =>
pages/TaskStateStore/EditTaskStateStoreButton.tsx} (50%)
create mode 100644
airflow-core/src/airflow/ui/src/pages/TaskStateStore/TaskStateStore.tsx
create mode 100644
airflow-core/src/airflow/ui/src/pages/TaskStateStore/TaskStateStoreModal.tsx
copy airflow-core/src/airflow/ui/src/{components/DagDeactivatedBadge.tsx =>
pages/TaskStateStore/index.ts} (74%)
create mode 100644
airflow-core/src/airflow/ui/src/queries/useBulkPatchDagRun.ts
create mode 100644
airflow-core/src/airflow/ui/src/queries/useGridTISummaries.test.tsx
create mode 100644 airflow-core/src/airflow/ui/src/queries/useStoreMutation.ts
copy airflow-core/src/airflow/ui/src/{components/DagDeactivatedBadge.tsx =>
utils/documentTitleContext.ts} (74%)
copy airflow-core/src/airflow/ui/src/utils/{useDocumentTitle.ts =>
useDocumentTitleProvider.tsx} (57%)
create mode 100644 airflow-core/src/airflow/ui/tests/e2e/utils/api/backfills.ts
create mode 100644 airflow-core/src/airflow/ui/tests/e2e/utils/api/dag-runs.ts
create mode 100644 airflow-core/src/airflow/ui/tests/e2e/utils/api/hitl.ts
create mode 100644 airflow-core/src/airflow/ui/tests/e2e/utils/api/variables.ts
copy airflow-core/src/airflow/ui/{src/utils/useDocumentTitle.ts =>
tests/e2e/utils/shared.ts} (56%)
delete mode 100644 airflow-core/src/airflow/ui/tests/e2e/utils/test-helpers.ts
create mode 100644 airflow-core/src/airflow/ui/tests/e2e/utils/ui/waits.ts
create mode 100644
airflow-core/tests/unit/api_fastapi/core_api/datamodels/test_trigger.py
rename
airflow-core/tests/unit/api_fastapi/core_api/routes/public/{test_asset_store.py
=> test_asset_state_store.py} (81%)
rename
airflow-core/tests/unit/api_fastapi/core_api/routes/public/{test_task_store.py
=> test_task_state_store.py} (84%)
rename
airflow-core/tests/unit/api_fastapi/execution_api/versions/head/{test_asset_store.py
=> test_asset_state_store.py} (92%)
rename
airflow-core/tests/unit/api_fastapi/execution_api/versions/head/{test_task_store.py
=> test_task_state_store.py} (90%)
create mode 100644
airflow-core/tests/unit/cli/commands/test_command_deprecations.py
create mode 100644 airflow-core/tests/unit/cli/test_api_client.py
create mode 100644 airflow-core/tests/unit/cli/test_utils.py
create mode 100644
airflow-core/tests/unit/migrations/test_0117_deadline_interval_json_migration.py
rename airflow-core/tests/unit/models/{test_asset_store.py =>
test_asset_state_store.py} (74%)
rename airflow-core/tests/unit/models/{test_task_store.py =>
test_task_state_store.py} (80%)
create mode 100644 airflow-core/tests/unit/partition_mappers/test_fixed_key.py
create mode 100644
airflow-core/tests/unit/partition_mappers/test_rollup_wait_policy.py
create mode 100644 chart/newsfragments/68036.significant.rst
create mode 100644 chart/newsfragments/68043.significant.rst
create mode 100644 chart/templates/api-server/api-server-httproute.yaml
create mode 100644
chart/tests/chart_utils/gateway.networking.k8s.io_httproutes.yaml
create mode 100644 chart/tests/helm_tests/apiserver/test_httproute_apiserver.py
create mode 100644 contributing-docs/30_new_language_sdk.rst
create mode 100644 go-sdk/sdk/context.go
create mode 100644 go-sdk/sdk/context_test.go
copy java-sdk/{example => bom}/build.gradle.kts (53%)
delete mode 100644 java-sdk/build.gradle.kts
copy airflow-core/src/airflow/ui/src/components/DagDeactivatedBadge.tsx =>
java-sdk/buildSrc/build.gradle.kts (71%)
copy java-sdk/{example/build.gradle.kts =>
buildSrc/src/main/kotlin/airflow-jvm-conventions.gradle.kts} (52%)
create mode 100644 java-sdk/buildSrc/src/main/kotlin/airflow-publish.gradle.kts
copy java-sdk/example/{build.gradle.kts => build.gradle} (69%)
create mode 120000 java-sdk/example/gradle.properties
rename airflow-core/src/airflow/ui/src/components/DagDeactivatedBadge.tsx =>
java-sdk/example/settings.gradle (69%)
rename java-sdk/{ => example/src/resources}/dags/java_examples.py (100%)
create mode 100644 java-sdk/plugin/build.gradle.kts
create mode 100644
java-sdk/plugin/src/main/kotlin/org/apache/airflow/sdk/plugin/AirflowSdkPlugin.kt
rename java-sdk/{example => processor}/build.gradle.kts (50%)
copy java-sdk/{sdk/src/main/kotlin/org/apache/airflow/sdk/Builder.kt =>
processor/src/main/kotlin/org/apache/airflow/sdk/BuilderProcessor.kt} (76%)
rename java-sdk/{sdk =>
processor}/src/main/resources/META-INF/services/javax.annotation.processing.Processor
(100%)
rename java-sdk/{sdk =>
processor}/src/test/kotlin/org/apache/airflow/sdk/BuilderTest.kt (100%)
create mode 100644
java-sdk/sdk/src/test/kotlin/org/apache/airflow/sdk/ClientTest.kt
create mode 100644 providers/google/docs/operators/transfer/mongo_to_gcs.rst
create mode 100644
providers/google/src/airflow/providers/google/cloud/transfers/mongo_to_gcs.py
create mode 100644
providers/google/tests/system/google/cloud/transfers/example_mongo_to_gcs.py
create mode 100644
providers/google/tests/unit/google/cloud/transfers/test_mongo_to_gcs.py
create mode 100644 providers/microsoft/azure/docs/transfer/gcs_to_wasb.rst
create mode 100644
providers/microsoft/azure/src/airflow/providers/microsoft/azure/transfers/gcs_to_wasb.py
create mode 100644
providers/microsoft/azure/tests/unit/microsoft/azure/transfers/test_gcs_to_wasb.py
create mode 100644 scripts/ci/analyze_ci_job_durations.py
create mode 100644 scripts/ci/prek/check_java_sdk_version_in_sync.py
delete mode 100755 scripts/ci/prek/check_task_instance_dto_sync.py
create mode 100755 scripts/ci/prek/check_window_in_sync.py
create mode 100644 scripts/ci/prek/generate_agent_skills.py
create mode 100644 scripts/ci/prek/update_notice_year.py
delete mode 100755 scripts/docker/install_jdk.sh
create mode 100644
scripts/tests/ci/prek/test_check_partition_mapper_defaults_in_sync.py
copy providers/standard/tests/unit/standard/decorators/test_stub.py =>
scripts/tests/ci/prek/test_generate_agent_skills.py (50%)
create mode 100644 scripts/tests/ci/test_analyze_ci_job_durations.py
create mode 100644
task-sdk/src/airflow/sdk/definitions/partition_mappers/fixed_key.py
create mode 100644
task-sdk/src/airflow/sdk/definitions/partition_mappers/wait_policy.py
delete mode 100644
task-sdk/src/airflow/sdk/execution_time/workloads/__init__.py
delete mode 100644 task-sdk/src/airflow/sdk/execution_time/workloads/task.py
create mode 100644 task-sdk/tests/task_sdk/bases/test_resumablejobmixin.py
delete mode 100644 task-sdk/tests/task_sdk/bases/test_resumablemixin.py
create mode 100644 task-sdk/tests/task_sdk/definitions/test_wait_policy.py
delete mode 100644 task-sdk/tests/task_sdk/test_log.py