This is an automated email from the ASF dual-hosted git repository.
jason810496 pushed a change to branch jason/lang-sdk-e2e/02-importer-registry
in repository https://gitbox.apache.org/repos/asf/airflow.git
discard 40bf9b36a7c Harden claimed-file discovery errors and archive importers
discard 9ff9d0a6da5 Tidy the importer routing helpers and their tests
discard 1b150318965 Keep claimed files queued when their importer cannot list
them
discard a7a81df9f58 Claim Dag files by extension and keep .py, .pyc and .zip
legacy
discard b051d590807 Read a claimed file's Dag source through its importer
discard cf95650ca17 Queue and track files that a Task SDK importer claims
discard 12a840b2d22 Parse files that a Task SDK importer claims
discard a481344223b Reject empty subprocess coordinator artifact roots
discard 0aec44e8889 Reject concurrent subprocess coordinator execution
consistently
discard ce617c8474b Make task bundle access dependencies explicit
discard a59132f973f Preserve custom subprocess coordinator compatibility
discard 14d5448c276 Read the Dag bundle configuration through a single entry
point
discard ed24a7cdcdf Resolve coordinator Dag bundles without importing the task
runner
discard 5fa4098e409 Make JavaCoordinator main_class optional in co-located mode
discard da37c21686b Harden subprocess coordinator artifact bundle resolution
discard b87d2907a24 Document dag_bundle_name option for language-SDK
coordinators
discard 68693340f67 Add dag_bundle_name option to subprocess coordinators
add 0566d6cd5ef Add OpenSandbox backend for sandbox tools (#71676)
add 93978958ae1 Fix example_neptune_analytics by pinning an explicit
region (#73851)
add d6c4c71979e Bump prettier (#73857)
add c8ca02e4158 Update changelog to clarify new LLMBranchOperator
"branches" feature (#73850)
add ad3e67fccd2 Add Modal provider with `ModalHook` and connection type
(#73418)
add ce614baf9b0 Add Strands Agents support for `common.ai` toolsets
(#73587)
add dbac03d87dd Fix KubernetesExecutor not queuing tasks on Airflow 3.0.x
(#73764)
add b3bcb388742 Recognize grouped PR references in provider changelog
tooling (#73855)
add ae1e8385060 Let the sandbox toolset attach to a sandbox another task
provisioned (#73559)
add c1b878ad22c Exclude SQLAlchemy 2.1.0 (#73865)
add 10221c300eb Read the AWS task logs once more after the fetcher is
stopped (#73211)
add 86d5297ca4b Add dag_bundle_name option to subprocess coordinators
add 1a65f90325e Document dag_bundle_name option for language-SDK
coordinators
add fec090c4e62 Harden subprocess coordinator artifact bundle resolution
add aa32014083c Make JavaCoordinator main_class optional in co-located mode
add 6523b0581c3 Resolve coordinator Dag bundles without importing the task
runner
add ac1f620daec Read the Dag bundle configuration through a single entry
point
add 13b4a38ac26 Preserve custom subprocess coordinator compatibility
add 5e210e8f8d6 Make task bundle access dependencies explicit
add f79d7502c2c Reject concurrent subprocess coordinator execution
consistently
add 6dc4ee7384a Reject empty subprocess coordinator artifact roots
add b238a022c47 Reject blank subprocess coordinator artifact roots
add 61af924d65c Parse files that a Task SDK importer claims
add 687df08ff40 Queue and track files that a Task SDK importer claims
add 453d40ca237 Read a claimed file's Dag source through its importer
add 334f4c72a54 Claim Dag files by extension and keep .py, .pyc and .zip
legacy
add 844bb62d542 Keep claimed files queued when their importer cannot list
them
add de6df7075e7 Tidy the importer routing helpers and their tests
add a73513df7c1 Harden claimed-file discovery errors and archive importers
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 (40bf9b36a7c)
\
N -- N -- N refs/heads/jason/lang-sdk-e2e/02-importer-registry
(a73513df7c1)
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:
.github/ISSUE_TEMPLATE/1-airflow_bug_report.yml | 1 +
.github/boring-cyborg.yml | 3 +
airflow-core/docs/extra-packages-ref.rst | 2 +
airflow-core/pyproject.toml | 2 +-
.../src/airflow/dag_processing/importer_routing.py | 7 +-
airflow-core/src/airflow/models/dagcode.py | 29 +-
airflow-core/tests/unit/models/test_dagcode.py | 23 +-
dev/breeze/doc/images/output_build-docs.svg | 4 +-
dev/breeze/doc/images/output_build-docs.txt | 2 +-
...tput_release-management_add-back-references.svg | 4 +-
...tput_release-management_add-back-references.txt | 2 +-
...elease-management_classify-provider-changes.svg | 4 +-
...elease-management_classify-provider-changes.txt | 2 +-
...management_generate-issue-content-providers.svg | 4 +-
...management_generate-issue-content-providers.txt | 2 +-
...ease-management_generate-providers-metadata.svg | 10 +-
...ease-management_generate-providers-metadata.txt | 2 +-
...e-management_prepare-provider-distributions.svg | 4 +-
...e-management_prepare-provider-distributions.txt | 2 +-
...e-management_prepare-provider-documentation.svg | 4 +-
...e-management_prepare-provider-documentation.txt | 2 +-
.../output_release-management_publish-docs.svg | 4 +-
.../output_release-management_publish-docs.txt | 2 +-
...output_sbom_generate-providers-requirements.svg | 2 +-
...output_sbom_generate-providers-requirements.txt | 2 +-
.../images/output_workflow-run_publish-docs.svg | 4 +-
.../images/output_workflow-run_publish-docs.txt | 2 +-
dev/breeze/src/airflow_breeze/global_constants.py | 2 +-
.../prepare_providers/provider_documentation.py | 11 +-
dev/breeze/tests/test_provider_documentation.py | 48 ++
devel-common/pyproject.toml | 2 +-
docs/spelling_wordlist.txt | 4 +
providers/amazon/docs/index.rst | 2 +-
providers/amazon/pyproject.toml | 2 +-
.../providers/amazon/aws/utils/task_log_fetcher.py | 38 +-
.../system/amazon/aws/example_neptune_analytics.py | 20 +-
.../unit/amazon/aws/utils/test_task_log_fetcher.py | 36 +-
providers/apache/hive/docs/index.rst | 2 +-
providers/apache/hive/pyproject.toml | 2 +-
providers/apache/impala/docs/index.rst | 8 +-
providers/apache/impala/pyproject.toml | 2 +-
.../kubernetes/executors/kubernetes_executor.py | 12 +-
.../executors/test_kubernetes_executor.py | 32 +
providers/common/ai/README.rst | 47 +-
providers/common/ai/docs/changelog.rst | 2 +-
providers/common/ai/docs/frameworks/index.rst | 119 ++++
providers/common/ai/docs/frameworks/strands.rst | 154 +++++
providers/common/ai/docs/index.rst | 48 +-
providers/common/ai/docs/installation.rst | 7 +-
providers/common/ai/docs/sandbox/backends.rst | 126 +++-
providers/common/ai/docs/sandbox/configuration.rst | 205 ++++--
providers/common/ai/docs/sandbox/index.rst | 86 ++-
providers/common/ai/docs/tool_approval.rst | 9 +-
providers/common/ai/provider.yaml | 5 +-
providers/common/ai/pyproject.toml | 4 +-
.../ai/example_dags/example_sandbox_toolset.py | 100 ++-
.../ai/example_dags/example_strands_agent.py | 89 +++
.../providers/common/ai/get_provider_info.py | 7 +-
.../airflow/providers/common/ai/operators/agent.py | 91 ++-
.../providers/common/ai/sandbox/__init__.py | 6 +
.../airflow/providers/common/ai/sandbox/base.py | 245 ++++++-
.../airflow/providers/common/ai/sandbox/modal.py | 246 +++++--
.../providers/common/ai/sandbox/opensandbox.py | 545 +++++++++++++++
.../src/airflow/providers/common/ai/sandbox/sbx.py | 17 +-
.../airflow/providers/common/ai/tools/__init__.py | 135 ++++
.../providers/common/ai/tools/_from_toolset.py | 100 +++
.../airflow/providers/common/ai/tools/strands.py | 108 +++
.../airflow/providers/common/ai/toolsets/hook.py | 17 +
.../common/ai/toolsets/langchain_bridge.py | 28 +-
.../providers/common/ai/toolsets/sandbox.py | 304 ++++++++-
.../airflow/providers/common/ai/toolsets/sql.py | 18 +
.../providers/common/ai/utils/coroutines.py} | 30 +-
.../common/ai/tests/system/common/ai/README.md | 37 +-
.../common/ai/example_sandbox_toolset_modal.py | 138 +++-
...x.py => example_sandbox_toolset_opensandbox.py} | 27 +-
.../common/ai/tests/unit/common/ai/conftest.py | 34 +
.../tests/unit/common/ai/operators/test_agent.py | 170 ++++-
.../ai/tests/unit/common/ai/sandbox/fake_modal.py | 17 +
.../ai/tests/unit/common/ai/sandbox/fake_tags.py | 63 ++
.../ai/tests/unit/common/ai/sandbox/test_base.py | 173 +++++
.../ai/tests/unit/common/ai/sandbox/test_modal.py | 207 +++++-
.../unit/common/ai/sandbox/test_opensandbox.py | 734 +++++++++++++++++++++
.../ai/tests/unit/common/ai/sandbox/test_sbx.py | 6 +
.../ai/tests/unit/common/ai/tools}/__init__.py | 0
.../unit/common/ai/tools/test__from_toolset.py | 155 +++++
.../ai/tests/unit/common/ai/tools/test_strands.py | 107 +++
.../ai/tests/unit/common/ai/tools/test_tools.py | 111 ++++
.../tests/unit/common/ai/toolsets/test_sandbox.py | 371 ++++++++++-
.../tests/unit/common/ai/utils/test_coroutines.py | 25 +-
providers/common/sql/docs/index.rst | 2 +-
providers/common/sql/pyproject.toml | 2 +-
providers/exasol/docs/index.rst | 8 +-
providers/exasol/pyproject.toml | 2 +-
.../fab/src/airflow/providers/fab/www/package.json | 2 +-
.../src/airflow/providers/fab/www/pnpm-lock.yaml | 10 +-
providers/jdbc/docs/index.rst | 2 +-
providers/jdbc/pyproject.toml | 2 +-
{airflow-core => providers/modal}/.gitignore | 0
{chart => providers/modal}/LICENSE | 0
NOTICE => providers/modal/NOTICE | 0
providers/{opensearch => modal}/README.rst | 21 +-
providers/modal/docs/.latest-doc-only-change.txt | 1 +
providers/{duckdb => modal}/docs/changelog.rst | 6 +-
providers/{keycloak => modal}/docs/commits.rst | 7 +-
providers/{mongo => modal}/docs/conf.py | 2 +-
providers/modal/docs/connections.rst | 85 +++
providers/modal/docs/index.rst | 131 ++++
.../docs/installing-providers-from-sources.rst | 0
providers/modal/docs/integration-logos/Modal.png | Bin 0 -> 10357 bytes
providers/{anthropic => modal}/docs/security.rst | 0
providers/modal/docs/usage.rst | 158 +++++
providers/modal/provider.yaml | 74 +++
providers/{vespa => modal}/pyproject.toml | 20 +-
.../modal/src/airflow}/__init__.py | 0
.../modal/src/airflow/providers}/__init__.py | 0
.../src/airflow/providers/modal}/__init__.py | 4 +-
.../src/airflow/providers/modal/exceptions.py | 18 +-
.../airflow/providers/modal/get_provider_info.py | 61 ++
.../src/airflow/providers/modal/hooks}/__init__.py | 0
.../src/airflow/providers/modal/hooks/modal.py | 279 ++++++++
providers/{airbyte => modal}/tests/conftest.py | 0
.../modal/tests/unit}/__init__.py | 0
.../modal/tests/unit/modal}/__init__.py | 0
.../modal/tests/unit/modal/hooks}/__init__.py | 0
.../modal/tests/unit/modal/hooks/test_modal.py | 372 +++++++++++
.../tests/unit/modal}/test_exceptions.py | 14 +-
providers/openlineage/docs/index.rst | 8 +-
providers/openlineage/pyproject.toml | 2 +-
providers/postgres/docs/index.rst | 2 +-
providers/postgres/pyproject.toml | 2 +-
providers/presto/docs/index.rst | 2 +-
providers/presto/pyproject.toml | 2 +-
providers/teradata/docs/index.rst | 2 +-
providers/teradata/pyproject.toml | 2 +-
providers/vertica/docs/index.rst | 8 +-
providers/vertica/pyproject.toml | 2 +-
providers/ydb/docs/index.rst | 8 +-
providers/ydb/pyproject.toml | 2 +-
pyproject.toml | 10 +
scripts/ci/docker-compose/remove-sources.yml | 1 +
scripts/ci/docker-compose/tests-sources.yml | 1 +
scripts/ci/prek/changelog_duplicates.py | 11 +-
scripts/tests/ci/prek/test_changelog_duplicates.py | 36 +-
.../airflow/sdk/coordinators/_bundle_metadata.py | 8 +-
.../coordinators/executable/test_coordinator.py | 8 +-
.../task_sdk/coordinators/java/test_coordinator.py | 8 +-
.../task_sdk/coordinators/node/test_coordinator.py | 8 +-
uv.lock | 112 +++-
148 files changed, 6623 insertions(+), 532 deletions(-)
create mode 100644 providers/common/ai/docs/frameworks/index.rst
create mode 100644 providers/common/ai/docs/frameworks/strands.rst
create mode 100644
providers/common/ai/src/airflow/providers/common/ai/example_dags/example_strands_agent.py
create mode 100644
providers/common/ai/src/airflow/providers/common/ai/sandbox/opensandbox.py
create mode 100644
providers/common/ai/src/airflow/providers/common/ai/tools/__init__.py
create mode 100644
providers/common/ai/src/airflow/providers/common/ai/tools/_from_toolset.py
create mode 100644
providers/common/ai/src/airflow/providers/common/ai/tools/strands.py
copy providers/{fab/src/airflow/providers/fab/www/airflow_flask_app.py =>
common/ai/src/airflow/providers/common/ai/utils/coroutines.py} (54%)
copy
providers/common/ai/tests/system/common/ai/{example_sandbox_toolset_sbx.py =>
example_sandbox_toolset_opensandbox.py} (80%)
create mode 100644
providers/common/ai/tests/unit/common/ai/sandbox/fake_tags.py
create mode 100644
providers/common/ai/tests/unit/common/ai/sandbox/test_opensandbox.py
copy {airflow-core/src/airflow/_shared =>
providers/common/ai/tests/unit/common/ai/tools}/__init__.py (100%)
create mode 100644
providers/common/ai/tests/unit/common/ai/tools/test__from_toolset.py
create mode 100644
providers/common/ai/tests/unit/common/ai/tools/test_strands.py
create mode 100644 providers/common/ai/tests/unit/common/ai/tools/test_tools.py
copy airflow-core/src/airflow/api_fastapi/core_api/datamodels/providers.py =>
providers/common/ai/tests/unit/common/ai/utils/test_coroutines.py (57%)
copy {airflow-core => providers/modal}/.gitignore (100%)
copy {chart => providers/modal}/LICENSE (100%)
copy NOTICE => providers/modal/NOTICE (100%)
copy providers/{opensearch => modal}/README.rst (77%)
create mode 100644 providers/modal/docs/.latest-doc-only-change.txt
copy providers/{duckdb => modal}/docs/changelog.rst (88%)
copy providers/{keycloak => modal}/docs/commits.rst (93%)
copy providers/{mongo => modal}/docs/conf.py (99%)
create mode 100644 providers/modal/docs/connections.rst
create mode 100644 providers/modal/docs/index.rst
copy providers/{airbyte => modal}/docs/installing-providers-from-sources.rst
(100%)
create mode 100644 providers/modal/docs/integration-logos/Modal.png
copy providers/{anthropic => modal}/docs/security.rst (100%)
create mode 100644 providers/modal/docs/usage.rst
create mode 100644 providers/modal/provider.yaml
copy providers/{vespa => modal}/pyproject.toml (91%)
copy {airflow-core/tests/integration =>
providers/modal/src/airflow}/__init__.py (100%)
copy {airflow-core/tests/integration =>
providers/modal/src/airflow/providers}/__init__.py (100%)
copy providers/{edge3/src/airflow/providers/edge3 =>
modal/src/airflow/providers/modal}/__init__.py (94%)
copy airflow-core/tests/unit/task/conftest.py =>
providers/modal/src/airflow/providers/modal/exceptions.py (63%)
create mode 100644
providers/modal/src/airflow/providers/modal/get_provider_info.py
copy {airflow-core/src/airflow/_shared =>
providers/modal/src/airflow/providers/modal/hooks}/__init__.py (100%)
create mode 100644 providers/modal/src/airflow/providers/modal/hooks/modal.py
copy providers/{airbyte => modal}/tests/conftest.py (100%)
copy {airflow-core/tests/integration =>
providers/modal/tests/unit}/__init__.py (100%)
copy {airflow-core/src/airflow/_shared =>
providers/modal/tests/unit/modal}/__init__.py (100%)
copy {airflow-core/src/airflow/_shared =>
providers/modal/tests/unit/modal/hooks}/__init__.py (100%)
create mode 100644 providers/modal/tests/unit/modal/hooks/test_modal.py
copy providers/{alibaba/tests/unit/alibaba/cloud =>
modal/tests/unit/modal}/test_exceptions.py (62%)