This is an automated email from the ASF dual-hosted git repository.
jason810496 pushed a change to branch jason/java-sdk/pack-dag-sources
in repository https://gitbox.apache.org/repos/asf/airflow.git
discard 0cb996db1b6 Java SDK: Show each Dag's own source and find it outside
the package layout
discard dfe2e5d0e95 Java SDK: Bound the describe run and keep its payload to
the bundle JAR
discard cb7cd410b94 Java SDK: Pack each native Dag's source file into the
bundle JAR
discard 5ad8ae8056f Java SDK: Record the class that declares each Dag and
describe it on request
discard b8938f81f2a Java SDK: Accept every cron schedule croniter does and
bind wired inputs first
discard 23406201598 Java SDK: Mark the native Dag capabilities as shipping in
3.4
discard 3f1ee0f29c4 Java SDK: Keep one unserializable Dag from failing a whole
bundle's parse
discard bffb85daf32 Java SDK: Carry a native Dag's call arguments as argument
bindings
discard dfdeb7abd58 Java SDK: Build a native Dag's timetable the way Python
does
discard 5b8bad2c484 Java SDK: Run the serialization conformance check on every
file that steers it
discard 74b83ac6d9c Java SDK: Check native Dag serialization against Airflow's
discard 5c5ac8e7a5b Java SDK: Write each Dag tag once, as Python does
discard 0b49afb882f Java SDK: Serialize a native Dag's task groups
discard 87f77cd0f22 Java SDK: Leave out the email flags a Java task cannot act
on
discard 12a21690851 Java SDK: Leave config-backed Dag fields for Airflow to
fill in
discard c014e161ce3 Test that the conformance check compares Dag params
discard b82efd3c38a Java SDK: Serialize native Dags to DagSerialization v3 on
parse requests
omit b8ec1ff47ac Java SDK: Reserve the whole group view surface and pin
group edge order
omit a22621f5749 Java SDK: Group a native Dag's tasks with task groups
add 2a62e03fc03 Add missing Taiwanese Mandarin UI translations (#74223)
add a2cf3289367 Go SDK: answer the Dag-parsing request from Serve (#74391)
add 7f653e67153 Fix UI lint erros failing static checks (#74402)
add 4cab3cf055c [AIP-94] Mark dags clear as migrated to airflowctl (#74384)
add 634d6bd7242 Enforce execution_timeout from the task supervisor side
(#73806)
add 9af3db03639 Keep get_dag_details and get_pools database queries off
the API server event loop (#74247)
add 104a8691b93 Add a test that a mapped task group skip decision stays
within its Dag run (#74390)
add ef495f35a30 Add `max_retries` to `AgentSkillsToolset` (#74381)
add 9f241d42332 Add toolset overview and MCP tool filtering example to
`common.ai` docs (#74378)
add 4ef67b4e0c6 Tell the model a pinned hook argument is fixed for every
allowed method (#74380)
add 73a4ffa3a53 Avoid a full asset table scan per request in simple auth
manager (#72934)
add 96582adf66f Respect run on latest version when clearing a running Dag
run (#71425)
add ccd96d21597 Regenerate the stale TS SDK supervisor types (#74412)
add 11cbf4da098 Allow a custom Kubernetes client factory for
KubernetesExecutor (#73014)
add 57183056ca7 Fix AsyncToSync error in Databricks deferrable operators
on Airflow 3.0 (#74406)
add 0b4039e250c Upgrade UI major dependencies: msw, vitest, react-table
and mermaid (#74369)
add 8b115c0be65 Verify SSH host keys by default in SSH and SFTP hooks
(#73419)
add 77e0906dc31 Scope plugin views on any entity field, not a fixed
criteria set (#74278)
add 4da2ad1e2b3 Document HTTP statuses that route helpers raise (#74027)
add 05dec276c72 Let the task endpoint describe a task at a given Dag
version (#74365)
add 19d20a091dc UI: Add 'Mark as Skipped' option to Task Instance actions
(#72425)
add d38e9ceb749 Fix date range filter inputs committing on every keystroke
(#74011)
add 37032a47d49 Bump the fab-ui-package-updates group across 1 directory
with 2 updates (#74418)
add 37dad4c1df2 Fix codespell failure on main in DateRangeFilter test
(#74430)
add fe4481cc8e5 Fix Databricks async connection test on Airflow before 3.1
(#74427)
add 8043c703de1 Java SDK: Group a native Dag's tasks with task groups
(#74230)
add 5b242ea7734 Java SDK: Serialize native Dags to DagSerialization v3 on
parse requests
add b4e382ad87d Test that the conformance check compares Dag params
add 6c6108e8c40 Java SDK: Leave config-backed Dag fields for Airflow to
fill in
add 509050aeb3e Java SDK: Leave out the email flags a Java task cannot act
on
add 7ffa0f4509a Java SDK: Serialize a native Dag's task groups
add d516f21edd9 Java SDK: Write each Dag tag once, as Python does
add 9b4b4804b55 Java SDK: Check native Dag serialization against Airflow's
add 7b05fa912e3 Java SDK: Run the serialization conformance check on every
file that steers it
add 1d269c8fe1d Java SDK: Build a native Dag's timetable the way Python
does
add f8ed44be37b Java SDK: Carry a native Dag's call arguments as argument
bindings
add 165e39d2351 Java SDK: Keep one unserializable Dag from failing a whole
bundle's parse
add b3b6ed54fd0 Java SDK: Mark the native Dag capabilities as shipping in
3.4
add f1f528fe138 Java SDK: Accept every cron schedule croniter does and
bind wired inputs first
add 5c62c64d00f Java SDK: Record the class that declares each Dag and
describe it on request
add 5d130b3d915 Java SDK: Pack each native Dag's source file into the
bundle JAR
add 373107ed495 Java SDK: Bound the describe run and keep its payload to
the bundle JAR
add 5c11685b7bb Java SDK: Show each Dag's own source and find it outside
the package layout
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 (0cb996db1b6)
\
N -- N -- N refs/heads/jason/java-sdk/pack-dag-sources
(5c11685b7bb)
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:
.../docs/administration-and-deployment/plugins.rst | 172 ++++--
airflow-core/docs/core-concepts/tasks.rst | 28 +-
airflow-core/newsfragments/69148.feature.rst | 1 -
airflow-core/newsfragments/73806.improvement.rst | 1 +
airflow-core/newsfragments/74278.feature.rst | 1 +
.../auth/managers/simple/simple_auth_manager.py | 30 ++
.../api_fastapi/core_api/datamodels/dags.py | 14 +-
.../api_fastapi/core_api/datamodels/plugins.py | 31 +-
.../api_fastapi/core_api/datamodels/pools.py | 6 +-
.../api_fastapi/core_api/openapi/_private_ui.yaml | 6 +
.../core_api/openapi/v2-rest-api-generated.yaml | 98 ++--
.../api_fastapi/core_api/routes/public/dags.py | 8 +-
.../api_fastapi/core_api/routes/public/pools.py | 2 +-
.../core_api/routes/public/task_state_store.py | 2 +-
.../api_fastapi/core_api/routes/public/tasks.py | 29 +-
.../api_fastapi/core_api/routes/ui/calendar.py | 4 +-
.../api_fastapi/execution_api/routes/hitl.py | 6 +-
.../execution_api/routes/task_instances.py | 12 +-
.../src/airflow/cli/commands/dag_command.py | 1 +
.../src/airflow/config_templates/config.yml | 4 +-
airflow-core/src/airflow/models/dagrun.py | 4 +-
airflow-core/src/airflow/models/taskinstance.py | 107 ++--
airflow-core/src/airflow/plugins_manager.py | 216 +++++++-
.../src/airflow/ui/openapi-gen/queries/common.ts | 5 +-
.../ui/openapi-gen/queries/ensureQueryData.ts | 10 +-
.../src/airflow/ui/openapi-gen/queries/prefetch.ts | 10 +-
.../src/airflow/ui/openapi-gen/queries/queries.ts | 10 +-
.../src/airflow/ui/openapi-gen/queries/suspense.ts | 10 +-
.../airflow/ui/openapi-gen/requests/schemas.gen.ts | 108 +---
.../ui/openapi-gen/requests/services.gen.ts | 10 +
.../airflow/ui/openapi-gen/requests/types.gen.ts | 29 +-
airflow-core/src/airflow/ui/package.json | 10 +-
airflow-core/src/airflow/ui/pnpm-lock.yaml | 599 ++++++++++-----------
.../airflow/ui/public/i18n/locales/en/dags.json | 1 +
.../ui/public/i18n/locales/zh-TW/admin.json | 1 +
.../ui/public/i18n/locales/zh-TW/assets.json | 1 +
.../ui/public/i18n/locales/zh-TW/browse.json | 30 ++
.../ui/public/i18n/locales/zh-TW/common.json | 38 +-
.../ui/public/i18n/locales/zh-TW/components.json | 17 +-
.../airflow/ui/public/i18n/locales/zh-TW/dag.json | 68 +++
.../airflow/ui/public/i18n/locales/zh-TW/dags.json | 13 +-
.../ui/public/i18n/locales/zh-TW/dashboard.json | 17 +-
.../ui/src/components/ActionAccordion/columns.tsx | 9 +-
.../ui/src/components/Assets/AssetEvent.test.tsx | 2 +-
.../src/components/Assets/TriggeredRuns.test.tsx | 2 +-
.../src/components/Banner/BackfillBanner.test.tsx | 2 +-
.../src/components/Banner/DrainingBanner.test.tsx | 2 +-
.../TaskInstance/ClearTaskInstanceDialog.test.tsx | 4 +-
.../DagActions/PartitionPreviewTable.tsx | 3 +-
.../components/DagActions/RunBackfillForm.test.tsx | 2 +-
.../components/DagActions/inlineMessage.test.tsx | 2 +-
.../src/components/DagDeactivatedBanner.test.tsx | 2 +-
.../ui/src/components/DataTable/CardList.tsx | 14 +-
.../DataTable/DataTable.columnVisibility.test.tsx | 5 +-
.../DataTable/DataTable.stateChange.test.tsx | 101 ++++
.../ui/src/components/DataTable/DataTable.test.tsx | 40 +-
.../ui/src/components/DataTable/DataTable.tsx | 75 ++-
.../src/components/DataTable/FilterMenuButton.tsx | 12 +-
.../ui/src/components/DataTable/TableList.test.tsx | 11 +-
.../ui/src/components/DataTable/TableList.tsx | 18 +-
.../features.ts} | 27 +-
.../ui/src/components/DataTable/skeleton.tsx | 3 +-
.../airflow/ui/src/components/DataTable/types.ts | 18 +-
.../ui/src/components/FilterBar/FilterBar.test.tsx | 2 +-
.../src/components/FilterBar/filters/DateInput.tsx | 10 +-
.../FilterBar/filters/DateRangeFilter.test.tsx | 164 +++++-
.../FilterBar/filters/DateRangeFilter.tsx | 4 +
.../FilterBar/filters/DateRangeInputs.tsx | 8 +-
.../components/FlexibleForm/FieldObject.test.tsx | 2 +-
.../ui/src/components/Graph/TaskLink.test.tsx | 2 +-
.../ui/src/components/ImportErrorCount.test.tsx | 2 +-
.../airflow/ui/src/components/JsonEditor.test.tsx | 2 +-
.../TaskInstance/MarkTaskInstanceAsButton.tsx | 17 +-
.../TaskInstance/MarkTaskInstanceAsDialog.test.tsx | 71 ++-
.../TaskInstance/MarkTaskInstanceAsDialog.tsx | 26 +-
.../airflow/ui/src/components/MarkAs/utils.test.ts | 46 +-
.../src/airflow/ui/src/components/MarkAs/utils.ts | 12 +-
.../ui/src/components/MarkdownModal.test.tsx | 2 +-
.../airflow/ui/src/components/NotePreview.test.tsx | 2 +-
.../src/airflow/ui/src/components/PoolBar.test.tsx | 2 +-
.../ui/src/components/PresetFiltersMenu.test.tsx | 2 +-
.../ui/src/components/RenderedJsonField.test.tsx | 2 +-
.../airflow/ui/src/components/StatsCard.test.tsx | 2 +-
.../ui/src/components/TaskInstanceTooltip.test.tsx | 2 +-
.../airflow/ui/src/components/TeamName.test.tsx | 2 +-
.../airflow/ui/src/components/TogglePause.test.tsx | 2 +-
.../TriggerDag/PausedDagOptions.test.tsx | 2 +-
.../TriggerDag/TriggerDAGButton.test.tsx | 2 +-
.../components/TriggerDag/TriggerDAGForm.test.tsx | 2 +-
.../components/TriggerDag/TriggerDAGModal.test.tsx | 2 +-
.../src/components/VersionCompareSelect.test.tsx | 2 +-
.../ui/src/components/renderStructuredLog.test.tsx | 2 +-
.../src/airflow/ui/src/hooks/useAdvancedSearch.ts | 6 +-
.../src/airflow/ui/src/hooks/useDateRangeFilter.ts | 117 ++--
.../ui/src/hooks/usePluginAppliesToContext.test.ts | 12 +
.../ui/src/hooks/usePluginAppliesToContext.ts | 12 +-
.../airflow/ui/src/hooks/usePluginTabs.test.tsx | 10 +-
.../ui/src/layouts/Details/DagBreadcrumb.test.tsx | 2 +-
.../ui/src/layouts/Details/Grid/Grid.test.tsx | 2 +-
.../src/layouts/Details/Grid/GridButton.test.tsx | 2 +-
.../ui/src/layouts/Details/Grid/GridTI.test.tsx | 2 +-
.../ui/src/layouts/Details/PanelButtons.test.tsx | 2 +-
.../airflow/ui/src/layouts/Nav/DocsButton.test.tsx | 2 +-
.../ui/src/layouts/Nav/LanguageSelector.test.tsx | 2 +-
.../src/airflow/ui/src/layouts/Nav/Nav.test.tsx | 2 +-
.../airflow/ui/src/layouts/Nav/NavButton.test.tsx | 2 +-
.../ui/src/layouts/Nav/PluginMenus.test.tsx | 2 +-
.../ui/src/layouts/Nav/UserSettingsButton.test.tsx | 2 +-
.../Asset/AssetStateStore/AssetStateStore.tsx | 6 +-
.../src/pages/Asset/CreateAssetEventModal.test.tsx | 2 +-
.../src/airflow/ui/src/pages/Asset/Header.test.tsx | 2 +-
.../ui/src/pages/AssetsList/AssetsList.test.tsx | 4 +-
.../airflow/ui/src/pages/AssetsList/AssetsList.tsx | 3 +-
.../pages/AssetsList/DependencyPopover.test.tsx | 2 +-
.../src/airflow/ui/src/pages/Configs/Configs.tsx | 3 +-
.../src/pages/Connections/ConnectionForm.test.tsx | 2 +-
.../ui/src/pages/Connections/Connections.tsx | 5 +-
.../pages/Connections/NothingFoundInfo.test.tsx | 2 +-
.../pages/Dag/Backfills/BackfillDagRunsModal.tsx | 3 +-
.../ui/src/pages/Dag/Backfills/Backfills.test.tsx | 2 +-
.../ui/src/pages/Dag/Backfills/Backfills.tsx | 3 +-
.../Dag/Backfills/BackfillsDateFilter.test.tsx | 2 +-
.../ui/src/pages/Dag/Code/FileLocation.test.tsx | 2 +-
.../airflow/ui/src/pages/Dag/DagHeader.test.tsx | 4 +-
.../ui/src/pages/Dag/DeadlineAlertsBadge.test.tsx | 2 +-
.../src/airflow/ui/src/pages/Dag/Header.test.tsx | 2 +-
.../ui/src/pages/Dag/Overview/Overview.test.tsx | 4 +-
.../src/airflow/ui/src/pages/Dag/Tasks/Tasks.tsx | 3 +-
.../pages/Dag/Versions/VersionDiff.i18n.test.tsx | 2 +-
.../ui/src/pages/Dag/Versions/VersionDiff.test.tsx | 2 +-
.../ui/src/pages/Dag/Versions/Versions.test.tsx | 2 +-
.../airflow/ui/src/pages/DagBundle/BundleFiles.tsx | 3 +-
.../ui/src/pages/DagBundles/DagBundles.test.tsx | 4 +-
.../airflow/ui/src/pages/DagBundles/DagBundles.tsx | 3 +-
.../src/pages/DagRuns/BulkDeleteDagRunsButton.tsx | 3 +-
.../airflow/ui/src/pages/DagRuns/DagRuns.test.tsx | 2 +-
.../src/airflow/ui/src/pages/DagRuns/DagRuns.tsx | 8 +-
.../DagsList/DagFolderTree/DagFolderTree.test.tsx | 2 +-
.../DagsList/DagsFilters/DagsFilters.test.tsx | 2 +-
.../ui/src/pages/DagsList/DagsList.test.tsx | 4 +-
.../ui/src/pages/DagsList/DagsListColumns.tsx | 3 +-
.../src/pages/DagsList/PartitionScheduleModal.tsx | 3 +-
.../pages/DagsList/RecentTaskStateCountsColumn.tsx | 4 +-
.../ui/src/pages/Dashboard/AlertContent.test.tsx | 2 +-
.../ui/src/pages/Dashboard/Dashboard.test.tsx | 2 +-
.../ui/src/pages/Dashboard/Health/Health.test.tsx | 2 +-
.../Dashboard/PoolSummary/PoolSummary.test.tsx | 2 +-
.../ui/src/pages/Dashboard/Stats/Stats.test.tsx | 2 +-
.../src/airflow/ui/src/pages/Deadlines/index.tsx | 6 +-
.../src/airflow/ui/src/pages/Events/Events.tsx | 3 +-
.../pages/HITLTaskInstances/HITLTaskInstances.tsx | 3 +-
airflow-core/src/airflow/ui/src/pages/Jobs.tsx | 8 +-
.../src/airflow/ui/src/pages/LandingPage.test.tsx | 2 +-
.../src/airflow/ui/src/pages/Providers.tsx | 3 +-
.../src/airflow/ui/src/pages/ReactPlugin.test.tsx | 2 +-
.../src/airflow/ui/src/pages/Run/Header.test.tsx | 2 +-
.../ui/src/pages/Task/Overview/Overview.test.tsx | 4 +-
.../ui/src/pages/TaskInstance/DefaultTab.test.tsx | 2 +-
.../ui/src/pages/TaskInstance/Details.test.tsx | 2 +-
.../ui/src/pages/TaskInstance/ExtraLinks.test.tsx | 2 +-
.../ui/src/pages/TaskInstance/Header.test.tsx | 2 +-
.../TaskInstance/Logs/LogSearchInput.test.tsx | 2 +-
.../ui/src/pages/TaskInstance/Logs/Logs.test.tsx | 2 +-
.../pages/TaskInstance/Logs/LogsSelection.test.tsx | 2 +-
.../pages/TaskInstance/RenderedTemplates.test.tsx | 2 +-
.../ui/src/pages/TaskInstances/TaskInstances.tsx | 3 +-
.../ui/src/pages/TaskStateStore/TaskStateStore.tsx | 3 +-
.../airflow/ui/src/pages/Variables/Variables.tsx | 7 +-
.../src/airflow/ui/src/pages/XCom/XCom.tsx | 3 +-
.../airflow/ui/src/pages/XCom/XComEntry.test.tsx | 4 +-
.../ui/src/queries/useRecentTaskStateCounts.tsx | 2 +-
.../airflow/ui/src/queries/useTogglePause.test.tsx | 2 +-
.../airflow/ui/src/utils/pluginAppliesTo.test.ts | 303 +++++++----
.../src/airflow/ui/src/utils/pluginAppliesTo.ts | 202 ++++---
.../renderMermaid.test.ts} | 31 +-
.../src/airflow/ui/src/utils/renderMermaid.ts | 10 +-
airflow-core/src/airflow/ui/testsSetup.ts | 2 +-
.../managers/simple/test_simple_auth_manager.py | 74 +++
airflow-core/tests/unit/api_fastapi/conftest.py | 28 +
.../core_api/routes/public/test_assets.py | 8 +-
.../core_api/routes/public/test_dags.py | 7 +
.../core_api/routes/public/test_plugins.py | 30 +-
.../core_api/routes/public/test_pools.py | 8 +
.../core_api/routes/public/test_tasks.py | 35 ++
.../api_fastapi/core_api/routes/ui/test_assets.py | 12 +-
.../unit/cli/commands/test_command_deprecations.py | 1 +
.../unit/cli/commands/test_plugins_command.py | 4 +-
.../tests/unit/dag_processing/test_processor.py | 1 +
airflow-core/tests/unit/jobs/test_triggerer_job.py | 1 +
airflow-core/tests/unit/models/test_cleartasks.py | 232 ++++++++
airflow-core/tests/unit/plugins/test_plugin.py | 4 +-
.../tests/unit/plugins/test_plugins_manager.py | 220 +++++++-
.../deps/test_not_previously_skipped_dep.py | 22 +
.../src/airflowctl/api/datamodels/generated.py | 24 +-
go-sdk/README.md | 4 +
go-sdk/airflow/bundle.go | 55 +-
go-sdk/airflow/bundle_test.go | 41 ++
go-sdk/airflow/dag.go | 4 +-
go-sdk/airflow/serve.go | 7 +-
go-sdk/airflow/serve_test.go | 102 +++-
go-sdk/internal/bundle/doc.go | 8 +-
go-sdk/internal/bundle/task.go | 14 +
go-sdk/pkg/execution/dag_parse.go | 79 +++
go-sdk/pkg/execution/dag_parse_test.go | 202 +++++++
.../pkg/execution/genmodels/discriminators.gen.go | 4 +
go-sdk/pkg/execution/genmodels/models.gen.go | 18 +-
go-sdk/pkg/execution/integration_test.go | 65 ++-
go-sdk/pkg/execution/server.go | 22 +-
go-sdk/schema/supervisor-schema.json | 21 +
.../unit/amazon/aws/transfers/test_s3_to_sftp.py | 12 +
.../unit/amazon/aws/transfers/test_sftp_to_s3.py | 12 +
providers/cncf/kubernetes/provider.yaml | 24 +
.../kubernetes/executors/kubernetes_executor.py | 19 +-
.../executors/kubernetes_executor_utils.py | 17 +-
.../providers/cncf/kubernetes/get_provider_info.py | 14 +
.../providers/cncf/kubernetes/kube_client.py | 43 ++
.../executors/test_kubernetes_executor.py | 175 +++++-
.../tests/unit/cncf/kubernetes/test_kube_client.py | 96 +++-
providers/common/ai/docs/toolsets/datafusion.rst | 26 +-
providers/common/ai/docs/toolsets/hook.rst | 27 +-
providers/common/ai/docs/toolsets/index.rst | 211 ++++----
providers/common/ai/docs/toolsets/logging.rst | 9 +-
providers/common/ai/docs/toolsets/mcp.rst | 45 +-
.../common/ai/docs/toolsets/object_storage.rst | 4 +-
providers/common/ai/docs/toolsets/skills.rst | 28 +-
providers/common/ai/docs/toolsets/sql.rst | 7 +-
.../common/ai/example_dags/example_agent_skills.py | 2 +
.../common/ai/example_dags/example_mcp.py | 35 +-
.../airflow/providers/common/ai/toolsets/hook.py | 28 +-
.../airflow/providers/common/ai/toolsets/skills.py | 15 +-
.../providers/common/ai/utils/tool_definition.py | 2 +-
.../ai/tests/unit/common/ai/toolsets/test_hook.py | 109 ++--
.../tests/unit/common/ai/toolsets/test_skills.py | 47 +-
providers/databricks/pyproject.toml | 2 +-
.../providers/databricks/hooks/databricks_base.py | 8 +
.../tests/unit/databricks/hooks/test_databricks.py | 27 +
.../providers/3rd-party-licenses/LICENSES-ui.txt | 2 +-
.../fab/src/airflow/providers/fab/www/package.json | 4 +-
.../src/airflow/providers/fab/www/pnpm-lock.yaml | 30 +-
providers/sftp/docs/changelog.rst | 16 +
providers/sftp/docs/connections/sftp.rst | 2 +-
providers/sftp/pyproject.toml | 2 +-
.../sftp/src/airflow/providers/sftp/hooks/sftp.py | 38 +-
.../src/airflow/providers/sftp/operators/sftp.py | 1 +
.../src/airflow/providers/sftp/triggers/sftp.py | 22 +-
providers/sftp/tests/unit/sftp/hooks/test_sftp.py | 205 ++++++-
.../sftp/tests/unit/sftp/operators/test_sftp.py | 31 +-
providers/ssh/docs/changelog.rst | 15 +
providers/ssh/docs/connections/ssh.rst | 2 +-
.../ssh/src/airflow/providers/ssh/hooks/ssh.py | 71 ++-
providers/ssh/tests/unit/ssh/hooks/test_ssh.py | 67 ++-
.../ssh/tests/unit/ssh/hooks/test_ssh_async.py | 64 +++
.../ci/prek/check_openapi_exception_doc_in_sync.py | 201 ++++++-
.../test_check_openapi_exception_doc_in_sync.py | 114 +++-
.../plugins_manager/plugins_manager.py | 12 +-
task-sdk/src/airflow/sdk/execution_time/comms.py | 8 +
.../airflow/sdk/execution_time/schema/schema.json | 21 +
.../src/airflow/sdk/execution_time/supervisor.py | 50 +-
.../src/airflow/sdk/execution_time/task_runner.py | 2 +
.../task_sdk/execution_time/test_supervisor.py | 154 +++++-
.../task_sdk/execution_time/test_task_runner.py | 12 +-
ts-sdk/src/generated/supervisor.ts | 104 ++--
262 files changed, 5446 insertions(+), 1642 deletions(-)
delete mode 100644 airflow-core/newsfragments/69148.feature.rst
create mode 100644 airflow-core/newsfragments/73806.improvement.rst
create mode 100644 airflow-core/newsfragments/74278.feature.rst
create mode 100644
airflow-core/src/airflow/ui/src/components/DataTable/DataTable.stateChange.test.tsx
copy airflow-core/src/airflow/ui/src/components/{DAGWarningsModal.test.tsx =>
DataTable/features.ts} (62%)
copy
providers/edge3/src/airflow/providers/edge3/plugins/www/src/components/StateBadge.tsx
=> airflow-core/src/airflow/ui/src/components/MarkAs/utils.test.ts (57%)
copy airflow-core/src/airflow/ui/src/{components/StatsCard.test.tsx =>
utils/renderMermaid.test.ts} (58%)
create mode 100644 go-sdk/pkg/execution/dag_parse.go
create mode 100644 go-sdk/pkg/execution/dag_parse_test.go