This is an automated email from the ASF dual-hosted git repository.
potiuk pushed a change to branch fork-ci-6-reconciler-followups
in repository https://gitbox.apache.org/repos/asf/airflow.git
discard 081f95a12c5 Name the cancelled-run CI passed job in the fork CI
tampering docs
discard 4ca46389808 Count only started jobs of fork-only workflows as project
CI work
discard 90e0158b01b Close fork CI pull requests that change the fork CI gate
discard ef4774c5ca3 Attribute fork CI runs to the right pull request in the
tampering check
discard 415c5860cd3 Keep fork CI pull requests sharing a head commit across
bases for a maintainer
discard 8345cbb6ccc Ignore fork-only workflows that skipped every job in the
fork CI tampering check
discard 9f6a9d83642 Retry the fork CI push-again nudge when posting it fails
omit 7e06c66cbde Fix the fork CI section title level and label wording in
the contributor docs
omit 6246769e210 Describe apache/airflow push runs after release-branch CI
moved to a schedule
omit 4e87728811a Say when fork CI applies in the contributor docs
omit 61f46ac144a Document fork CI for contributors and maintainers
add 7b5fc4b7068 Reset Dag autoregistration state when a Python Dag file
fails to load (#74911)
add b9ae12ac432 Add asset ID filtering to database cleanup (#74498)
add 976c1d08f21 Fix scheduler crash when retrying a task that timed out or
was killed externally (#75472)
add 52983d2d5e4 Update providers metadata 2026-10-24 (#75580)
add ad3ecb8c1ab Fix serialization of datetimes with a fixed UTC offset
(#74922)
add bfc288222a3 Document fork CI for contributors and maintainers (#74825)
add 1b9a32b5283 Do not fail CI passed for a cancelled duplicate CI run
(#75578)
add 8e3a9113290 Keep Breeze unit tests independent of the CI repository
(#75587)
add daa2a86fdbd Delete the project CI runs that only gate a pull request
to fork CI (#75588)
add 0c1fa8eeb72 Keep a Breeze test's --dry-run from leaking into later
tests (#75589)
add fd52d8703fb Commit pre-release constraints onto the shared
constraints-X-Y branch (#75329)
add da4fafc5ca2 UI: Fix visual and console-error bugs in Dag list and
details (#75418)
add ea661e93307 Fix Go SDK install command breaking the first bundle build
(#75574)
add f5329a6c804 Cover YAML-generated TypeScript Dags in the ts_sdk e2e
test (#75054)
add a1976c57411 Cancel the BigQuery job when BigQueryToBigQueryOperator is
killed (#75101)
add 8b2ef80dcde Fix "Dynamic require" error for CommonJS packages in
airflow-ts-pack (#75067)
add 054d093651d TS SDK: Reject a blank queue in Dag and task specs (#75573)
add b5bc253fc2d Run maintainer and canary CI on self-hosted RunsOn runners
(#74889)
add 320a469429c Refresh the Magpie reconciliation stamp (#75606)
add 06771a97969 Let the fork CI monitor gate pull requests and stop
repeating Slack alerts (#75611)
add 05f55513e99 Stop the cdxgen server containers when SBOM generation
ends (#75613)
add 757898c95e5 Check newsfragment PR numbers in static checks instead of
a separate workflow (#75612)
add 4386cb1f89e Report EC2 Spot interruptions on pull requests and keep
them out of Slack (#75615)
add 2f7a7ea4be9 Show each fork CI job's status on gated pull requests
(#75616)
add e5f2c87a3ab Cancel the workflow runs of pull requests that have
already merged (#75619)
add 352ca600361 Fix API client errors losing detail behind a reverse proxy
(#75493)
add e9904306f1a Stop airflowctl from failing on fields added by newer API
servers (#75610)
add 47296ef5892 Run only the component's tests on chart and airflow-ctl
release branches (#75621)
add 2a3ee7ffe25 Auto-approve cheap CI runs of external contributors' PRs
(#75455)
add 1d7959a624f Detect when enhanced Power BI refreshes finish or fail
(#74600)
add 365692aac59 Run the database test jobs on RunsOn with docker in RAM
(#75625)
add 77fe4132770 Fetch provider release tags from apache/airflow in fork CI
runs (#75632)
add 9cdb49017ec Run the component branch selection tests against main on
every branch (#75633)
add 8bdb287f7ee Build no images on the airflow-ctl release branches
(#75628)
add 6e990ea1927 Make common.ai hooks report misconfiguration instead of
failing silently (#74451)
add c3e00461d06 Make LoggingToolset private and update Experimental notes
in common.ai (#74694)
add 0d527b72265 Fix Go SDK build on 32-bit targets (#75551)
add 4138878208c Use EXISTS instead of a fan-out join in asset orphanage
(#75404)
add 0df550012b1 Clear retry policy state when a TI is cleared (#73889)
add 6b264738614 Add High Obtainability (HO) mode support to Dataproc
operators (#74753)
add 840d3a41c63 Return 5xx on database deadlock when updating task state
(#75368)
add a15d3527df1 Require a selection before responding to a multiple-choice
HITL request (#75643)
add 77da6dac565 Stop a commented executable_resumable from marking a
module durable (#73607)
add be274194a97 Normalize zh-TW plural forms and wording (#75504)
add eb7a35984ee Propagate OpenLineage parent and root job types to
triggered Dags (#75303)
add a57b1e6e241 Fix task loop information and tests for OpenLineage
provider (#74752)
add 8dde17bf52a Update zh-TW plural form guidance for translators (#75669)
add 437daf6eddc Approve fork CI runs that started before "use fork ci" was
added (#75654)
add bb213a30692 Honor next when an authenticated user reaches the FAB
login page (#75665)
add 54f645dd303 Check for workflow runs to auto-approve every 15 minutes
(#75655)
add 72628b5c4f4 Stop a stale callback stat from forcing constant Dag file
reparsing (#73433)
add d1491b82c90 Refuse Human-in-the-loop responses once the task stopped
waiting (#75645)
add 6d7e0010cd6 Close German Translation Gaps 2026-10-26 (#75676)
add bfb620d271b Cancel the runs of merged pull requests when they merge
(#75683)
add e4efc876f48 Switch the default async MySQL driver to asyncmy (#75218)
add 9f1348c2013 Keep the spot interruption notice green on transient
GitHub errors (#75681)
add 36038d73b5a Pin the real selective-checks auto-approve test to main
(#75682)
add 33486021776 Check out constraints from apache/airflow when diffing
them in CI (#75675)
add ffd9398e4b4 Always approve workflow runs of PRs from trusted
stakeholder repositories (#75677)
add d22f4e4b470 Retry GitHub server errors in the fork CI monitor (#75692)
add 62e50c50030 List Meta among common.ai's external services and
recognise new pydantic-ai 2.59 providers (#75641)
add dac0a7adc44 Keep common.ai on anthropic 1.x until pydantic-ai supports
anthropic 2 (#75640)
add b19bc48f96f Let the EKS executor run per team and next to
KubernetesExecutor (#75449)
add 3f0cea0e8ba Add task instance state store commands to airflowctl
(#72746)
add 562977d11bf Make the Kubernetes, E2E and Helm release jobs pass on
fork CI (#75699)
add 2ae00f1606a Retry GitHub calls that fail to connect in the fork CI
monitor (#75701)
add ad6ec79c73e Deprecate airflow.utils.email in favor of the SMTP
provider (#75414)
add df03024a9a3 Fix BigQuery durable recovery for regional jobs (#75430)
add b70a439a238 Allow FastAPI 0.137+ by requiring cadwyn 8.1 (#75689)
add 04afd601aee Restart crashed Breeze components under mprocs (#75585)
add ec8737c5417 Handle empty or corrupted JSON in airflowctl credentials
loading (#75279)
add e3f5e6ff3af Skip scheduling tasks when their Dag cannot be
deserialized (#75263)
add 3a37fb1c33e Fix BigQuery cancellation and links with inferred job
locations (#75717)
add bec92bcad02 Let listeners see the end date of a skipped task instance
(#75685)
add 34a955c17dd Remove unused type: ignore comments in airflow-ctl (#75203)
add 750f849cc23 Run a language SDK runtime in its own process group
(#75707)
add 5243901c818 Add dag_id and task_id tags to resumable_job metrics
(#75721)
add c79293ea4b9 Wait for a maintainer when a fork PR changes any
CI-defining file (#75718)
add d340be05a4e Add metrics for task and asset state store access (#75729)
add 91fbcbff93b Fix airflowctl config lint filters matching partial config
names (#75690)
add 8eb5357fb13 Keep cancelled CI runs from showing a failed CI passed
check (#75720)
add 968cca0c7e4 Add a dag_run index on (dag_id, run_after) (#74481)
add fa9c935035d airflowctl: fix datetime.datetime CLI parameters rejecting
all input (#70249)
add 21a8a98ba96 Report language SDK runtime launch failures in the task
log (#75561)
add aee26d49b6b Fix airflowctl ignoring --env for non-auth commands
(#73808)
add ead86184fb5 Emit resumable_job metrics from KubernetesPodOperator
(#75734)
add 6cac8fcddc1 Handle None response from airflowctl connections
create-defaults (#68853)
add a22fcb9a67b Stop importing airflow.utils.email in the Amazon SES hook
(#75711)
add 8b5306690ac Fix 'lineage' export in airflow.sdk (#75744)
add c4ab82253de Report AwsEksExecutor as the caller in its AWS user agent
(#75698)
add 4ace0a1deb7 Run automatic backport PRs on RunsOn runners (#75749)
add 7c7157b124e Stop breeze k8s commands from silently rewriting uv.lock
(#75763)
add cb582009a0b Raise the stale bot operation budget so it reaches older
PRs (#75761)
add 7de5ac36770 UI: Remove unused filter count helper (#75760)
add 455f5125c9a UI: Remove unused clipboard wrappers (#75759)
add 36767cb0073 UI: Remove unused quick filter button (#75758)
add aaba5c37195 UI: Don't fire keyboard shortcuts while typing in a Monaco
editor (#75684)
add d92a4805a92 UI: Fix labels that render as raw translation keys (#75326)
add 91ca0ac42c8 UI: Fix slow pending Dag run checks on large databases
(#75674)
add 8f7a8e4ff58 Hide empty log groups in the task log view (#75686)
add df37268410b Fix UI crash by validating unresolvable Windows PT
timezone (#75723)
add ae50f958ea2 Surface errors from OpenLineage database info lookups
without losing lineage (#74805)
add d583ffe5984 Hide the scheduled run icon in the grid legend (#75775)
add de5798196d2 Make Breeze Kubernetes image tests independent of the
branch (#75724)
add a5ff71dffd3 Keep breeze verify working when dry-run is on (#75713)
add be28f7fe9c2 Tell agents to stop when breeze cannot run, not use a host
venv (#75599)
add efd28053bed Stop Google Cloud Logging handler from starting a thread
on close (#75596)
add 70a78162261 Page SqlToS3Operator like GenericTransfer (#75730)
add 55b3c58dea7 Return None from relative_path_from_logger for logs
outside base_log_folder (#75572)
add 4d9fb9e841f Remove unused airflowctl lowercase argument helper (#75768)
add da767b24133 Bump the fab-ui-package-updates group across 1 directory
with 2 updates (#75807)
add a462d683469 UI: Scope partitioned Dag run asset list to readable
assets (#75213)
add 891e83dce5d Tell contributors when their fork CI workflow stops
running (#75814)
add e0d7083c1b2 Retry the fork CI push-again nudge when posting it fails
add 1968391f14f Ignore fork-only workflows that skipped every job in the
fork CI tampering check
add 67312bfea09 Keep fork CI pull requests sharing a head commit across
bases for a maintainer
add 4a9693c894e Attribute fork CI runs to the right pull request in the
tampering check
add 177ed31a2cd Close fork CI pull requests that change the fork CI gate
add 42ef9141800 Count only started jobs of fork-only workflows as project
CI work
add 7e3d6f06fa0 Name the cancelled-run CI passed job in the fork CI
tampering docs
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 (081f95a12c5)
\
N -- N -- N refs/heads/fork-ci-6-reconciler-followups
(7e3d6f06fa0)
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:
.../skills/airflow-translations/locales/zh-TW.md | 33 +-
.../setup-isolated-setup-install.md | 5 +
.apache-magpie.lock | 43 +-
.asf.yaml | 7 +-
.github/AGENTS.md | 38 +
.github/actions/breeze/action.yml | 2 +
.../actions/prepare_breeze_and_image/action.yml | 5 +-
.github/actions/prepare_single_ci_image/action.yml | 5 +-
.../runs-on-cost-summary/action.yml} | 29 +-
.github/actions/stash-restore/action.yml | 137 +
.github/actions/stash-save/action.yml | 129 +
.github/fork-ci-gate.toml | 5 +
.github/workflows/additional-ci-image-checks.yml | 2 +-
.github/workflows/additional-prod-image-tests.yml | 80 +-
.github/workflows/auto-approve-workflow-runs.yml | 69 +
.github/workflows/basic-tests.yml | 52 +-
.github/workflows/cancel-merged-pr-runs.yml | 119 +
.github/workflows/check-newsfragment-pr-number.yml | 60 -
.github/workflows/ci-amd.yml | 227 +-
.github/workflows/ci-arm.yml | 227 +-
.github/workflows/ci-image-build.yml | 36 +-
.github/workflows/ci-image-checks.yml | 25 +-
.github/workflows/finalize-tests.yml | 12 +-
.github/workflows/fork-ci-monitor.yml | 172 +-
.github/workflows/generate-constraints.yml | 6 +-
.github/workflows/helm-tests.yml | 8 +-
.github/workflows/integration-system-tests.yml | 6 +-
.github/workflows/k8s-tests.yml | 4 +-
.github/workflows/kustomize-overlays-tests.yml | 2 +-
.github/workflows/prod-image-build.yml | 8 +-
.github/workflows/push-image-cache.yml | 4 +-
.github/workflows/release-constraints.yml | 46 +-
.../scheduled-legacy-prod-image-canary.yml | 1 +
.github/workflows/special-tests.yml | 26 +-
.github/workflows/spot-interruption-notice.yml | 57 +
.github/workflows/stale.yml | 1 +
.github/workflows/test-providers.yml | 6 +-
.github/workflows/ui-e2e-tests.yml | 2 +-
AGENTS.md | 4 +-
README.md | 2 +
.../authoring-and-scheduling/language-sdks/go.rst | 2 +-
.../language-sdks/typescript.rst | 2 +-
airflow-core/docs/howto/email-config.rst | 80 +-
airflow-core/docs/howto/set-up-database.rst | 28 +-
airflow-core/docs/howto/usage-cli.rst | 9 +
airflow-core/docs/migrations-ref.rst | 4 +-
airflow-core/newsfragments/75218.significant.rst | 13 +
airflow-core/newsfragments/75414.significant.rst | 20 +
airflow-core/newsfragments/75493.bugfix.rst | 1 +
airflow-core/pyproject.toml | 11 +-
airflow-core/src/airflow/api_fastapi/app.py | 2 +
.../src/airflow/api_fastapi/common/http_metrics.py | 25 +-
.../src/airflow/api_fastapi/common/telemetry.py | 21 +-
.../api_fastapi/core_api/datamodels/assets.py | 8 +-
.../api_fastapi/core_api/datamodels/common.py | 16 +
.../api_fastapi/core_api/datamodels/config.py | 8 +-
.../core_api/datamodels/task_instance_history.py | 4 +-
.../core_api/datamodels/task_instances.py | 2 +-
.../core_api/datamodels/ui/partitioned_dag_runs.py | 12 +-
.../api_fastapi/core_api/openapi/_private_ui.yaml | 25 +-
.../core_api/openapi/v2-rest-api-generated.yaml | 18 +-
.../api_fastapi/core_api/routes/public/dags.py | 25 +-
.../api_fastapi/core_api/routes/public/hitl.py | 32 +-
.../airflow/api_fastapi/core_api/routes/ui/dags.py | 8 +-
.../core_api/routes/ui/partitioned_dag_runs.py | 28 +-
.../src/airflow/api_fastapi/execution_api/app.py | 41 +-
.../execution_api/datamodels/taskinstance.py | 3 +-
.../execution_api/routes/task_instances.py | 10 +-
.../airflow/api_fastapi/execution_api/security.py | 10 +-
.../airflow/callbacks/database_callback_sink.py | 14 +-
airflow-core/src/airflow/cli/cli_config.py | 7 +
.../src/airflow/cli/commands/db_command.py | 1 +
airflow-core/src/airflow/dag_processing/manager.py | 19 +-
.../src/airflow/executors/base_executor.py | 2 +
.../src/airflow/jobs/scheduler_job_runner.py | 69 +-
...50_3_5_0_add_dag_run_dag_id_run_after_index.py} | 28 +-
airflow-core/src/airflow/models/dagrun.py | 6 +
airflow-core/src/airflow/models/taskinstance.py | 16 +-
airflow-core/src/airflow/settings.py | 7 +-
.../airflow/ui/openapi-gen/requests/schemas.gen.ts | 43 +-
.../airflow/ui/openapi-gen/requests/types.gen.ts | 11 +-
.../airflow/ui/public/i18n/locales/ar/common.json | 1 -
.../ui/public/i18n/locales/ar/components.json | 7 +
.../airflow/ui/public/i18n/locales/ca/common.json | 1 -
.../ui/public/i18n/locales/ca/components.json | 7 +
.../airflow/ui/public/i18n/locales/de/common.json | 1 -
.../ui/public/i18n/locales/de/components.json | 7 +
.../src/airflow/ui/public/i18n/locales/de/dag.json | 4 +
.../airflow/ui/public/i18n/locales/de/hitl.json | 1 +
.../airflow/ui/public/i18n/locales/el/common.json | 1 -
.../ui/public/i18n/locales/el/components.json | 7 +
.../airflow/ui/public/i18n/locales/en/browse.json | 1 +
.../airflow/ui/public/i18n/locales/en/common.json | 2 +-
.../ui/public/i18n/locales/en/components.json | 8 +
.../airflow/ui/public/i18n/locales/en/hitl.json | 1 +
.../airflow/ui/public/i18n/locales/es/common.json | 1 -
.../ui/public/i18n/locales/es/components.json | 7 +
.../airflow/ui/public/i18n/locales/fr/common.json | 1 -
.../ui/public/i18n/locales/fr/components.json | 7 +
.../airflow/ui/public/i18n/locales/he/common.json | 1 -
.../ui/public/i18n/locales/he/components.json | 7 +
.../airflow/ui/public/i18n/locales/hi/common.json | 1 -
.../ui/public/i18n/locales/hi/components.json | 7 +
.../airflow/ui/public/i18n/locales/hu/common.json | 1 -
.../ui/public/i18n/locales/hu/components.json | 7 +
.../airflow/ui/public/i18n/locales/it/common.json | 1 -
.../ui/public/i18n/locales/it/components.json | 7 +
.../airflow/ui/public/i18n/locales/ja/common.json | 1 -
.../ui/public/i18n/locales/ja/components.json | 7 +
.../airflow/ui/public/i18n/locales/ko/common.json | 1 -
.../ui/public/i18n/locales/ko/components.json | 7 +
.../airflow/ui/public/i18n/locales/nl/common.json | 1 -
.../ui/public/i18n/locales/nl/components.json | 7 +
.../airflow/ui/public/i18n/locales/pl/common.json | 1 -
.../ui/public/i18n/locales/pl/components.json | 7 +
.../airflow/ui/public/i18n/locales/pt/common.json | 1 -
.../ui/public/i18n/locales/pt/components.json | 7 +
.../airflow/ui/public/i18n/locales/ru/common.json | 1 -
.../ui/public/i18n/locales/ru/components.json | 7 +
.../airflow/ui/public/i18n/locales/th/common.json | 1 -
.../ui/public/i18n/locales/th/components.json | 7 +
.../airflow/ui/public/i18n/locales/tr/common.json | 1 -
.../ui/public/i18n/locales/tr/components.json | 7 +
.../ui/public/i18n/locales/zh-CN/common.json | 1 -
.../ui/public/i18n/locales/zh-CN/components.json | 7 +
.../ui/public/i18n/locales/zh-TW/common.json | 7 +-
.../ui/public/i18n/locales/zh-TW/components.json | 9 +-
.../airflow/ui/public/i18n/locales/zh-TW/dag.json | 10 +-
.../ui/public/i18n/locales/zh-TW/dashboard.json | 4 +-
.../airflow/ui/public/i18n/locales/zh-TW/hitl.json | 5 +-
.../ui/src/components/AssetProgressCell.test.tsx | 63 +-
.../ui/src/components/AssetProgressCell.tsx | 54 +-
.../src/airflow/ui/src/components/ConfigForm.tsx | 2 +-
.../ui/src/components/DAGWarningsModal.test.tsx | 33 -
.../airflow/ui/src/components/DAGWarningsModal.tsx | 62 +-
.../ui/src/components/DagDeactivatedChip.test.tsx | 154 -
.../ui/src/components/DagDeactivatedChip.tsx | 70 -
...ortErrorModal.tsx => DagImportErrorDetails.tsx} | 20 +-
.../ui/src/components/DagImportErrorModal.tsx | 52 +-
.../ui/src/components/DagStatusChip.test.tsx | 161 +
.../airflow/ui/src/components/DagStatusChip.tsx | 90 +
.../ui/src/components/DataTable/DataTable.tsx | 1 +
.../src/airflow/ui/src/components/ErrorAlert.tsx | 15 +-
.../ui/src/components/FilterBar/FilterBar.test.tsx | 15 +
.../ui/src/components/FilterBar/FilterPill.tsx | 29 +-
.../ui/src/components/QuickFilterButton.tsx | 40 -
.../airflow/ui/src/components/StatusMessage.tsx | 52 +
.../src/airflow/ui/src/components/WarningAlert.tsx | 28 +-
.../src/context/timezone/TimezoneProvider.test.tsx | 59 +
.../ui/src/context/timezone/TimezoneProvider.tsx | 17 +-
.../ui/src/hooks/useRequiredActionTabs.test.tsx | 66 +
.../airflow/ui/src/hooks/useRequiredActionTabs.ts | 31 +-
.../src/airflow/ui/src/hooks/useShortcut.test.tsx | 64 +-
.../src/airflow/ui/src/hooks/useShortcut.ts | 16 +-
.../src/airflow/ui/src/i18n/locales.test.ts | 60 +-
.../ui/src/layouts/Details/DetailsLayout.tsx | 46 +-
.../ui/src/layouts/Details/Gantt/utils.test.ts | 18 +-
.../airflow/ui/src/layouts/Details/Gantt/utils.ts | 13 +-
.../ui/src/layouts/Details/Grid/RunTypeLegend.tsx | 7 +-
.../ui/src/pages/AssetsList/AssetsList.test.tsx | 14 +-
.../ui/src/pages/Connections/ConnectionForm.tsx | 3 +-
.../src/airflow/ui/src/pages/DagsList/DagCard.tsx | 8 +-
.../DagsList/DagsFilters/DagsFilters.test.tsx | 6 +-
.../ui/src/pages/DagsList/RecentRuns.test.tsx | 58 +
.../airflow/ui/src/pages/DagsList/RecentRuns.tsx | 10 +-
.../src/airflow/ui/src/pages/DagsList/Schedule.tsx | 14 +-
.../HITLTaskInstances/HITLResponseForm.test.tsx | 193 +-
.../pages/HITLTaskInstances/HITLResponseForm.tsx | 33 +-
.../src/airflow/ui/src/pages/Pools/PoolForm.tsx | 2 +-
.../src/airflow/ui/src/pages/XCom/XCom.tsx | 2 +-
.../src/airflow/ui/src/queries/useLogs.test.ts | 38 +
.../src/airflow/ui/src/queries/useLogs.tsx | 11 +-
.../airflow/ui/src/queries/useUpdateHITLDetail.ts | 16 +-
.../airflow/ui/src/system-components/Clipboard.tsx | 42 +-
.../src/airflow/ui/src/utils/dagStatus.test.ts | 84 +
airflow-core/src/airflow/ui/src/utils/dagStatus.ts | 75 +
.../src/airflow/ui/src/utils/errorHandling.ts | 23 +
.../src/airflow/ui/src/utils/filterUtils.test.ts | 106 -
.../src/airflow/ui/src/utils/filterUtils.ts | 27 -
airflow-core/src/airflow/ui/src/utils/index.ts | 3 +-
.../src/airflow/ui/src/utils/query.test.ts | 50 +
airflow-core/src/airflow/ui/src/utils/query.ts | 7 +-
airflow-core/src/airflow/ui/testsSetup.ts | 29 +
airflow-core/src/airflow/utils/db.py | 2 +-
airflow-core/src/airflow/utils/db_cleanup.py | 24 +-
airflow-core/src/airflow/utils/email.py | 350 +-
.../src/airflow/utils/serve_logs/log_server.py | 3 +-
airflow-core/src/airflow/utils/sqlalchemy.py | 17 +
.../unit/api_fastapi/common/test_http_metrics.py | 13 +-
.../core_api/routes/public/test_assets.py | 5 +-
.../core_api/routes/public/test_dags.py | 41 +
.../core_api/routes/public/test_hitl.py | 135 +-
.../api_fastapi/core_api/routes/test_routes.py | 8 +-
.../api_fastapi/core_api/routes/ui/test_dags.py | 36 +
.../routes/ui/test_partitioned_dag_runs.py | 122 +-
.../unit/api_fastapi/execution_api/test_app.py | 29 +-
.../execution_api/test_token_scope_boundaries.py | 27 +-
.../versions/head/test_task_instances.py | 41 +-
.../unit/api_fastapi/logging/test_decorators.py | 18 +-
airflow-core/tests/unit/api_fastapi/test_app.py | 25 +
.../tests/unit/cli/commands/test_db_command.py | 84 +
airflow-core/tests/unit/core/test_settings.py | 26 +-
.../tests/unit/dag_processing/test_manager.py | 112 +-
airflow-core/tests/unit/jobs/test_scheduler_job.py | 305 ++
airflow-core/tests/unit/models/test_dagrun.py | 41 +-
.../tests/unit/models/test_taskinstance.py | 68 +
.../tests/unit/partition_mappers/test_init.py | 4 +-
airflow-core/tests/unit/utils/test_db_cleanup.py | 178 +
airflow-core/tests/unit/utils/test_email.py | 447 +-
airflow-core/tests/unit/utils/test_sqlalchemy.py | 60 +-
.../airflowctl_tests/test_airflowctl_commands.py | 7 +
airflow-ctl/docs/images/command_hashes.txt | 2 +-
airflow-ctl/docs/images/output_taskinstances.svg | 82 +-
airflow-ctl/src/airflowctl/api/client.py | 22 +-
.../src/airflowctl/api/datamodels/generated.py | 28 +-
airflow-ctl/src/airflowctl/api/operations.py | 131 +-
airflow-ctl/src/airflowctl/ctl/cli_config.py | 107 +-
airflow-ctl/src/airflowctl/ctl/cli_parser.py | 2 +
.../src/airflowctl/ctl/commands/config_command.py | 16 +-
.../src/airflowctl/ctl/commands/version_command.py | 3 +-
airflow-ctl/src/airflowctl/ctl/help_texts.yaml | 9 +
airflow-ctl/tests/airflow_ctl/api/test_client.py | 118 +-
.../tests/airflow_ctl/api/test_operations.py | 206 +
.../ctl/commands/test_config_command.py | 96 +
.../ctl/commands/test_version_command.py | 10 +-
.../tests/airflow_ctl/ctl/test_cli_config.py | 143 +-
airflow-e2e-tests/docker/ts.yml | 6 +
.../tests/airflow_e2e_tests/conftest.py | 16 +-
.../airflow_e2e_tests/openlineage_tests/README.md | 3 +-
.../airflow_e2e_tests/openlineage_tests/harness.py | 7 +-
.../openlineage_tests/prepare_dags.py | 3 +
.../test_ts_sdk_dynamic_dag.py} | 44 +-
contributing-docs/05_pull_requests.rst | 47 +
contributing-docs/18_contribution_workflow.rst | 18 +-
contributing-docs/25_maintainer_pr_triage.md | 8 +-
contributing-docs/mprocs/mprocs.yaml | 14 +-
contributing-docs/testing/unit_tests.rst | 7 +
dev/AGENTS.md | 17 +
dev/README_AIRFLOW3_DEV.md | 19 +-
dev/README_RELEASE_AIRFLOW.md | 19 +-
dev/breeze/doc/08_ci_tasks.rst | 25 +-
dev/breeze/doc/ci/04_selective_checks.md | 136 +-
dev/breeze/doc/ci/05_workflows.md | 141 +
dev/breeze/doc/ci/06_debugging.md | 6 +-
.../doc/ci/08_fork_ci_for_external_contributors.md | 251 +-
dev/breeze/doc/images/output_ci.svg | 42 +-
dev/breeze/doc/images/output_ci.txt | 2 +-
.../doc/images/output_ci_approve-workflow-runs.svg | 142 +
.../doc/images/output_ci_approve-workflow-runs.txt | 1 +
.../doc/images/output_ci_fork-ci-reconcile.svg | 46 +-
.../doc/images/output_ci_fork-ci-reconcile.txt | 2 +-
.../doc/images/output_k8s_build-k8s-image.svg | 48 +-
.../doc/images/output_k8s_build-k8s-image.txt | 2 +-
.../doc/images/output_k8s_deploy-airflow.svg | 46 +-
.../doc/images/output_k8s_deploy-airflow.txt | 2 +-
.../doc/images/output_k8s_deploy-cluster.svg | 30 +-
.../doc/images/output_k8s_deploy-cluster.txt | 2 +-
dev/breeze/doc/images/output_k8s_dev.svg | 22 +-
dev/breeze/doc/images/output_k8s_dev.txt | 2 +-
.../doc/images/output_k8s_run-complete-tests.svg | 84 +-
.../doc/images/output_k8s_run-complete-tests.txt | 2 +-
.../doc/images/output_k8s_setup-lang-sdk-test.svg | 22 +-
.../doc/images/output_k8s_setup-lang-sdk-test.txt | 2 +-
.../doc/images/output_k8s_upload-k8s-image.svg | 46 +-
.../doc/images/output_k8s_upload-k8s-image.txt | 2 +-
.../output_setup_check-all-params-in-groups.svg | 96 +-
.../output_setup_check-all-params-in-groups.txt | 2 +-
.../output_setup_regenerate-command-images.svg | 104 +-
.../output_setup_regenerate-command-images.txt | 2 +-
.../src/airflow_breeze/commands/ci_commands.py | 79 +-
.../airflow_breeze/commands/ci_commands_config.py | 19 +
.../airflow_breeze/commands/kubernetes_commands.py | 76 +-
.../commands/kubernetes_commands_config.py | 11 +-
.../commands/kubernetes_kustomize_commands.py | 2 +-
.../src/airflow_breeze/commands/verify_commands.py | 10 +-
dev/breeze/src/airflow_breeze/global_constants.py | 19 +
dev/breeze/src/airflow_breeze/utils/cdxgen.py | 74 +-
dev/breeze/src/airflow_breeze/utils/ci_audit.py | 12 -
.../airflow_breeze/utils/ci_minutes_estimate.py | 226 +
.../src/airflow_breeze/utils/fork_ci_gate.py | 25 +-
.../src/airflow_breeze/utils/fork_ci_github.py | 86 +-
.../src/airflow_breeze/utils/fork_ci_messages.py | 92 +-
.../src/airflow_breeze/utils/fork_ci_reconcile.py | 364 +-
.../src/airflow_breeze/utils/kubernetes_utils.py | 3 +-
.../src/airflow_breeze/utils/selective_checks.py | 270 +-
.../src/airflow_breeze/utils/verification_plan.py | 2 +
.../airflow_breeze/utils/workflow_run_approval.py | 821 ++++
dev/breeze/tests/conftest.py | 15 +
.../tests/test_calibrate_ci_minutes_estimates.py | 101 +
dev/breeze/tests/test_cdxgen.py | 73 +
dev/breeze/tests/test_ci_audit.py | 4 +-
dev/breeze/tests/test_ci_minutes_estimate.py | 229 +
dev/breeze/tests/test_fork_ci_gate.py | 51 +-
dev/breeze/tests/test_fork_ci_github.py | 74 +
dev/breeze/tests/test_fork_ci_messages.py | 41 +
dev/breeze/tests/test_fork_ci_reconcile.py | 714 +++-
dev/breeze/tests/test_kubernetes_commands.py | 144 +
.../tests/test_kubernetes_kustomize_commands.py | 20 +
.../tests/test_kubernetes_lang_sdk_commands.py | 18 +-
dev/breeze/tests/test_kubernetes_utils.py | 7 +
dev/breeze/tests/test_selective_checks.py | 752 ++++
dev/breeze/tests/test_verify_commands.py | 15 +
dev/breeze/tests/test_workflow_run_approval.py | 1118 +++++
dev/calibrate_ci_minutes_estimates.py | 270 ++
dev/registry/extract_parameters.py | 12 +-
dev/registry/tests/test_extract_parameters.py | 97 +
.../tests/test_registry_contract_models.py | 10 +-
dev/skill-evals/last-eval-hash.txt | 2 +-
.../src/tests_common/test_utils/api_fastapi.py | 23 +
docs/spelling_wordlist.txt | 4 +
generated/provider_metadata.json | 140 +-
go-sdk/README.md | 2 +-
go-sdk/cmd/airflow-go-pack/sources.go | 2 +-
go-sdk/internal/bundlefooter/footer.go | 5 +-
go-sdk/pkg/execution/client.go | 7 +-
go-sdk/pkg/execution/client_test.go | 17 +-
go-sdk/pkg/execution/frames.go | 16 +-
go-sdk/pkg/execution/frames_oversized_test.go | 4 +-
go-sdk/pkg/execution/frames_test.go | 14 +
providers/amazon/docs/changelog.rst | 6 +
providers/amazon/docs/executors/eks-executor.rst | 52 +-
providers/amazon/docs/transfer/sql_to_s3.rst | 19 +
providers/amazon/pyproject.toml | 2 +-
.../amazon/aws/executors/eks/_client_factory.py | 38 +-
.../amazon/aws/executors/eks/eks_executor.py | 106 +-
.../providers/amazon/aws/executors/eks/utils.py | 5 +
.../src/airflow/providers/amazon/aws/hooks/ses.py | 80 +-
.../providers/amazon/aws/transfers/sql_to_s3.py | 130 +-
.../src/airflow/providers/amazon/version_compat.py | 2 -
.../tests/system/amazon/aws/example_sql_to_s3.py | 13 +
.../aws/executors/eks/test__client_factory.py | 61 +-
.../amazon/aws/executors/eks/test_eks_executor.py | 330 +-
.../amazon/tests/unit/amazon/aws/hooks/test_ses.py | 66 +-
.../unit/amazon/aws/transfers/test_sql_to_s3.py | 188 +
.../providers/cncf/kubernetes/operators/pod.py | 16 +-
.../unit/cncf/kubernetes/operators/test_pod.py | 134 +
providers/common/ai/docs/changelog.rst | 44 +
providers/common/ai/docs/connections/mcp.rst | 3 +-
.../ai/docs/connections/pydantic_ai_azure.rst | 13 +-
.../ai/docs/connections/pydantic_ai_vertex.rst | 10 +-
providers/common/ai/docs/frameworks/index.rst | 14 +-
providers/common/ai/docs/index.rst | 2 +-
providers/common/ai/docs/operators/agent.rst | 15 +-
.../ai/docs/operators/llm_schema_compare.rst | 6 +
providers/common/ai/docs/operators/llm_sql.rst | 4 +-
providers/common/ai/docs/provider_fallback.rst | 16 +-
providers/common/ai/docs/sandbox/index.rst | 2 +-
providers/common/ai/docs/self_hosted_models.rst | 10 +-
providers/common/ai/docs/stability.rst | 11 +-
providers/common/ai/docs/supported_services.rst | 2 +-
providers/common/ai/docs/toolsets/index.rst | 18 +-
providers/common/ai/docs/toolsets/logging.rst | 35 +-
providers/common/ai/provider.yaml | 3 +-
providers/common/ai/pyproject.toml | 8 +-
.../ai/example_dags/example_llm_retry_policy.py | 7 +-
.../providers/common/ai/get_provider_info.py | 3 +-
.../airflow/providers/common/ai/hooks/langchain.py | 29 +-
.../providers/common/ai/hooks/llamaindex.py | 46 +-
.../src/airflow/providers/common/ai/hooks/mcp.py | 55 +-
.../providers/common/ai/hooks/pydantic_ai.py | 46 +-
.../airflow/providers/common/ai/operators/agent.py | 9 +-
.../common/ai/operators/llm_schema_compare.py | 4 +-
.../providers/common/ai/operators/llm_sql.py | 4 +
.../airflow/providers/common/ai/policies/retry.py | 5 +-
.../providers/common/ai/toolsets/__init__.py | 2 -
.../providers/common/ai/toolsets/logging.py | 19 +-
.../tests/unit/common/ai/hooks/test_langchain.py | 74 +
.../tests/unit/common/ai/hooks/test_llamaindex.py | 84 +
.../ai/tests/unit/common/ai/hooks/test_mcp.py | 128 +
.../tests/unit/common/ai/hooks/test_pydantic_ai.py | 71 +-
.../tests/unit/common/ai/operators/test_agent.py | 2 +-
.../ai/tests/unit/common/ai/policies/test_retry.py | 65 +-
.../tests/unit/common/ai/test_provider_metadata.py | 38 +-
.../tests/unit/common/ai/toolsets/test_logging.py | 6 +-
.../common/compat/openlineage/utils/sql.py | 29 +-
.../common/compat/openlineage/utils/test_sql.py | 60 +
.../airflow/providers/common/sql/operators/sql.py | 55 +-
.../unit/common/sql/operators/test_sql_execute.py | 89 +
.../tests/unit/dbt/cloud/utils/test_openlineage.py | 4 +-
.../edge3/tests/unit/edge3/worker_api/test_app.py | 5 +-
.../fab/auth_manager/security_manager/override.py | 7 +-
.../providers/fab/auth_manager/views/auth_login.py | 67 +
.../providers/fab/auth_manager/views/auth_oauth.py | 9 +
.../fab/src/airflow/providers/fab/www/package.json | 4 +-
.../src/airflow/providers/fab/www/pnpm-lock.yaml | 850 ++--
.../unit/fab/auth_manager/views/test_auth_login.py | 146 +
.../tests/unit/fab/www/views/test_views_login.py | 90 +
providers/google/README.rst | 2 +-
providers/google/docs/index.rst | 2 +-
providers/google/docs/operators/cloud/dataproc.rst | 51 +
providers/google/pyproject.toml | 2 +-
.../google/cloud/log/cloud_logging_task_handler.py | 8 +-
.../providers/google/cloud/operators/bigquery.py | 41 +-
.../google/cloud/transfers/bigquery_to_bigquery.py | 22 +-
...example_dataproc_cluster_high_obtainability.py} | 114 +-
.../cloud/log/test_cloud_logging_task_handler.py | 14 +
.../unit/google/cloud/operators/test_bigquery.py | 311 +-
.../unit/google/cloud/operators/test_dataproc.py | 36 +-
.../cloud/transfers/test_bigquery_to_bigquery.py | 42 +
.../providers/microsoft/azure/hooks/powerbi.py | 58 +-
.../providers/microsoft/azure/operators/powerbi.py | 17 +-
.../unit/microsoft/azure/hooks/test_powerbi.py | 191 +-
.../unit/microsoft/azure/operators/test_powerbi.py | 95 +
.../azure/resources/powerbi_completed_refresh.json | 122 +
.../azure/resources/powerbi_completed_refresh.md | 36 +
.../unit/microsoft/azure/triggers/test_powerbi.py | 94 +
providers/mysql/README.rst | 2 +
providers/mysql/docs/changelog.rst | 11 +
providers/mysql/docs/index.rst | 4 +-
providers/mysql/pyproject.toml | 8 +-
providers/openlineage/docs/macros.rst | 32 +
.../openlineage/facets/AirflowJobFacet.json | 56 +-
.../openlineage/facets/AirflowRunFacet.json | 102 +
.../providers/openlineage/plugins/adapter.py | 5 +-
.../providers/openlineage/plugins/listener.py | 63 +-
.../providers/openlineage/plugins/macros.py | 50 +-
.../providers/openlineage/plugins/openlineage.py | 4 +
.../src/airflow/providers/openlineage/sqlparser.py | 45 +-
.../openlineage/utils/sql_hook_lineage.py | 25 +-
.../airflow/providers/openlineage/utils/utils.py | 400 +-
.../example_openlineage_base_complex_dag.py | 2 +
...ple_dag.py => example_openlineage_retry_dag.py} | 38 +-
...> example_openlineage_sensor_reschedule_dag.py} | 18 +-
.../example_openlineage_task_groups_dag.py | 2 +-
.../example_openlineage_task_loop_dag.py | 152 +
.../example_openlineage_task_loop_groups_dag.py | 104 +
...g.py => example_openlineage_task_states_dag.py} | 44 +-
.../openlineage/example_openlineage_trigger_dag.py | 8 +-
.../example_openlineage_trigger_dag_deferrable.py | 2 +-
.../system/openlineage/expected_events/__init__.py | 8 +
.../openlineage_base_complex_dag__af2.json | 14 +
.../openlineage_base_complex_dag__af3.json | 14 +
.../openlineage_base_simple_dag__af2.json | 36 +-
.../openlineage_base_simple_dag__af3.json | 36 +-
.../openlineage_manual_lineage_dag.json | 388 +-
.../openlineage_policy_hook_lineage_dag.json | 52 +
.../expected_events/openlineage_retry_dag.json | 227 +
.../openlineage_retry_dag__af2.json | 227 +
.../openlineage_retry_dag__af3_0.json | 227 +
.../openlineage_sensor_reschedule_dag.json | 121 +
.../openlineage_sensor_reschedule_dag__af2.json | 121 +
.../openlineage_sensor_reschedule_dag__af3_0.json | 121 +
.../openlineage_task_groups_dag.json | 4 +
.../expected_events/openlineage_task_loop_dag.json | 4406 ++++++++++++++++++++
.../openlineage_task_loop_groups_dag.json | 2237 ++++++++++
.../openlineage_task_states_dag.json | 250 ++
.../openlineage_task_states_dag__af3_0.json | 155 +
.../expected_events/openlineage_trigger_dag.json | 132 +-
.../openlineage_trigger_dag__af3_3_plus.json | 132 +-
.../openlineage_trigger_dag_deferrable.json | 228 +-
...lineage_trigger_dag_deferrable__af3_3_plus.json | 228 +-
.../openlineage_trigger_failed_dag.json | 54 +-
...openlineage_trigger_failed_dag__af3_3_plus.json | 54 +-
.../tests/system/openlineage/operator.py | 229 +-
.../unit/openlineage/plugins/test_listener.py | 223 +-
.../tests/unit/openlineage/plugins/test_macros.py | 85 +
.../tests/unit/openlineage/test_sqlparser.py | 53 +-
.../test_system_tests_run_id_integrity.py | 373 ++
.../openlineage/utils/test_sql_hook_lineage.py | 130 +
.../tests/unit/openlineage/utils/test_utils.py | 998 ++++-
.../unit/snowflake/hooks/test_cortex_model.py | 18 +-
.../providers/standard/utils/openlineage.py | 24 +-
.../tests/unit/standard/utils/test_openlineage.py | 153 +-
scripts/ci/make_mnt_writeable.sh | 21 +-
scripts/ci/move_docker_to_mnt.sh | 7 +-
.../ci/prek/check_airflowctl_command_coverage.py | 24 +-
scripts/ci/prek/check_ci_gate_needs.py | 15 +
scripts/ci/prek/check_ci_workflows_in_sync.py | 23 +-
scripts/ci/prek/newsfragments.py | 69 +
...un_mypy_full_dist_local_venv_or_breeze_in_ci.py | 4 +-
scripts/ci/spot_interruptions.py | 428 ++
scripts/in_container/bin/generate_mprocs_config.py | 18 +-
scripts/in_container/in_container_utils.py | 18 +-
.../in_container/run_provider_yaml_files_check.py | 2 +-
scripts/tests/ci/prek/test_check_ci_gate_needs.py | 23 +
scripts/tests/ci/prek/test_newsfragments.py | 128 +-
scripts/tests/ci/test_spot_interruptions.py | 445 ++
.../in_container/test_generate_mprocs_config.py | 30 +
.../observability/metrics/metrics_template.yaml | 84 +-
task-sdk/pyproject.toml | 2 +-
task-sdk/src/airflow/sdk/__init__.py | 227 +-
task-sdk/src/airflow/sdk/api/client.py | 10 +-
.../src/airflow/sdk/bases/resumablejobmixin.py | 7 +-
.../src/airflow/sdk/coordinators/_subprocess.py | 332 +-
task-sdk/src/airflow/sdk/execution_time/context.py | 50 +-
.../src/airflow/sdk/execution_time/coordinator.py | 14 +-
.../src/airflow/sdk/execution_time/supervisor.py | 60 +-
.../src/airflow/sdk/execution_time/task_runner.py | 12 +-
.../src/airflow/sdk/importers/python_importer.py | 8 +-
task-sdk/src/airflow/sdk/log.py | 6 +-
.../src/airflow/sdk/serde/serializers/timezone.py | 8 +-
task-sdk/tests/task_sdk/api/test_client.py | 29 +
.../tests/task_sdk/bases/test_resumablejobmixin.py | 47 +-
.../tests/task_sdk/coordinators/test_subprocess.py | 485 ++-
task-sdk/tests/task_sdk/docs/test_public_api.py | 26 +-
.../tests/task_sdk/execution_time/test_context.py | 97 +
.../task_sdk/execution_time/test_task_runner.py | 16 +-
.../task_sdk/importers/test_python_importer.py | 37 +
task-sdk/tests/task_sdk/serde/test_serializers.py | 17 +-
task-sdk/tests/task_sdk/test_log.py | 20 +
ts-sdk/example/package.json | 1 +
ts-sdk/example/src/dynamic.ts | 51 +
ts-sdk/example/src/main.ts | 8 +-
ts-sdk/pnpm-lock.yaml | 3 +
ts-sdk/src/cli/pack.ts | 6 +
ts-sdk/src/sdk/dag.ts | 9 +
ts-sdk/tests/cli/pack.test.ts | 31 +
ts-sdk/tests/sdk/dag.test.ts | 14 +
uv.lock | 98 +-
509 files changed, 31892 insertions(+), 4669 deletions(-)
create mode 100644 .github/AGENTS.md
copy .github/{workflows/scheduled-upgrade-check-v3-4-test.yml =>
actions/runs-on-cost-summary/action.yml} (59%)
create mode 100644 .github/actions/stash-restore/action.yml
create mode 100644 .github/actions/stash-save/action.yml
create mode 100644 .github/workflows/auto-approve-workflow-runs.yml
create mode 100644 .github/workflows/cancel-merged-pr-runs.yml
delete mode 100644 .github/workflows/check-newsfragment-pr-number.yml
create mode 100644 .github/workflows/spot-interruption-notice.yml
create mode 100644 airflow-core/newsfragments/75218.significant.rst
create mode 100644 airflow-core/newsfragments/75414.significant.rst
create mode 100644 airflow-core/newsfragments/75493.bugfix.rst
copy
providers/common/compat/tests/unit/common/compat/openlineage/utils/test_utils.py
=> airflow-core/src/airflow/api_fastapi/common/telemetry.py (58%)
copy
airflow-core/src/airflow/migrations/versions/{0037_3_0_0_add_backfill_to_dag_run_model.py
=> 0150_3_5_0_add_dag_run_dag_id_run_after_index.py} (62%)
delete mode 100644
airflow-core/src/airflow/ui/src/components/DAGWarningsModal.test.tsx
delete mode 100644
airflow-core/src/airflow/ui/src/components/DagDeactivatedChip.test.tsx
delete mode 100644
airflow-core/src/airflow/ui/src/components/DagDeactivatedChip.tsx
copy airflow-core/src/airflow/ui/src/components/{DagImportErrorModal.tsx =>
DagImportErrorDetails.tsx} (85%)
create mode 100644
airflow-core/src/airflow/ui/src/components/DagStatusChip.test.tsx
create mode 100644 airflow-core/src/airflow/ui/src/components/DagStatusChip.tsx
delete mode 100644
airflow-core/src/airflow/ui/src/components/QuickFilterButton.tsx
create mode 100644 airflow-core/src/airflow/ui/src/components/StatusMessage.tsx
create mode 100644
airflow-core/src/airflow/ui/src/context/timezone/TimezoneProvider.test.tsx
create mode 100644
airflow-core/src/airflow/ui/src/hooks/useRequiredActionTabs.test.tsx
create mode 100644
airflow-core/src/airflow/ui/src/pages/DagsList/RecentRuns.test.tsx
create mode 100644 airflow-core/src/airflow/ui/src/utils/dagStatus.test.ts
create mode 100644 airflow-core/src/airflow/ui/src/utils/dagStatus.ts
delete mode 100644 airflow-core/src/airflow/ui/src/utils/filterUtils.test.ts
delete mode 100644 airflow-core/src/airflow/ui/src/utils/filterUtils.ts
create mode 100644 airflow-core/src/airflow/ui/src/utils/query.test.ts
copy
airflow-e2e-tests/tests/airflow_e2e_tests/{java_sdk_tests/test_java_sdk_dynamic_dag.py
=> ts_sdk_tests/test_ts_sdk_dynamic_dag.py} (60%)
create mode 100644 dev/breeze/doc/images/output_ci_approve-workflow-runs.svg
create mode 100644 dev/breeze/doc/images/output_ci_approve-workflow-runs.txt
create mode 100644 dev/breeze/src/airflow_breeze/utils/ci_minutes_estimate.py
create mode 100644 dev/breeze/src/airflow_breeze/utils/workflow_run_approval.py
create mode 100644 dev/breeze/tests/test_calibrate_ci_minutes_estimates.py
create mode 100644 dev/breeze/tests/test_cdxgen.py
create mode 100644 dev/breeze/tests/test_ci_minutes_estimate.py
create mode 100644 dev/breeze/tests/test_kubernetes_commands.py
create mode 100644 dev/breeze/tests/test_workflow_run_approval.py
create mode 100644 dev/calibrate_ci_minutes_estimates.py
create mode 100644
providers/fab/src/airflow/providers/fab/auth_manager/views/auth_login.py
create mode 100644
providers/fab/tests/unit/fab/auth_manager/views/test_auth_login.py
create mode 100644 providers/fab/tests/unit/fab/www/views/test_views_login.py
copy
providers/google/tests/system/google/cloud/dataproc/{example_dataproc_start_from_trigger.py
=> example_dataproc_cluster_high_obtainability.py} (50%)
create mode 100644
providers/microsoft/azure/tests/unit/microsoft/azure/resources/powerbi_completed_refresh.json
create mode 100644
providers/microsoft/azure/tests/unit/microsoft/azure/resources/powerbi_completed_refresh.md
copy
providers/openlineage/tests/system/openlineage/{example_openlineage_mapped_simple_dag.py
=> example_openlineage_retry_dag.py} (61%)
copy
providers/openlineage/tests/system/openlineage/{example_openlineage_defer_simple_dag.py
=> example_openlineage_sensor_reschedule_dag.py} (73%)
create mode 100644
providers/openlineage/tests/system/openlineage/example_openlineage_task_loop_dag.py
create mode 100644
providers/openlineage/tests/system/openlineage/example_openlineage_task_loop_groups_dag.py
copy
providers/openlineage/tests/system/openlineage/{example_openlineage_mapped_simple_dag.py
=> example_openlineage_task_states_dag.py} (56%)
create mode 100644
providers/openlineage/tests/system/openlineage/expected_events/openlineage_retry_dag.json
create mode 100644
providers/openlineage/tests/system/openlineage/expected_events/openlineage_retry_dag__af2.json
create mode 100644
providers/openlineage/tests/system/openlineage/expected_events/openlineage_retry_dag__af3_0.json
create mode 100644
providers/openlineage/tests/system/openlineage/expected_events/openlineage_sensor_reschedule_dag.json
create mode 100644
providers/openlineage/tests/system/openlineage/expected_events/openlineage_sensor_reschedule_dag__af2.json
create mode 100644
providers/openlineage/tests/system/openlineage/expected_events/openlineage_sensor_reschedule_dag__af3_0.json
create mode 100644
providers/openlineage/tests/system/openlineage/expected_events/openlineage_task_loop_dag.json
create mode 100644
providers/openlineage/tests/system/openlineage/expected_events/openlineage_task_loop_groups_dag.json
create mode 100644
providers/openlineage/tests/system/openlineage/expected_events/openlineage_task_states_dag.json
create mode 100644
providers/openlineage/tests/system/openlineage/expected_events/openlineage_task_states_dag__af3_0.json
create mode 100644
providers/openlineage/tests/unit/openlineage/test_system_tests_run_id_integrity.py
create mode 100755 scripts/ci/spot_interruptions.py
create mode 100644 scripts/tests/ci/test_spot_interruptions.py
create mode 100644 ts-sdk/example/src/dynamic.ts