This is an automated email from the ASF dual-hosted git repository.

potiuk pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/main by this push:
     new be28f7fe9c2 Tell agents to stop when breeze cannot run, not use a host 
venv (#75599)
be28f7fe9c2 is described below

commit be28f7fe9c232a3985901073169eea77b38b1ea7
Author: Shahar Epstein <[email protected]>
AuthorDate: Tue Oct 27 19:42:05 2026 +0200

    Tell agents to stop when breeze cannot run, not use a host venv (#75599)
    
    * Tell agents to stop when breeze cannot run instead of using a host venv
    
    AGENTS.md said never to run pytest on the host but also listed
    `uv run --project` commands, and had no guidance for when breeze is
    unavailable. A sandboxed agent whose breeze calls were refused by the
    container gateway built a host virtualenv with Airflow 2.11.1 instead of
    reporting the failure.
    
    Narrow the host exception to the listed `uv run` commands, tell agents
    to stop and report when breeze cannot run, and document the breeze
    command for testing providers against a released Airflow version
    (generated from contributing-docs). Note in the magpie override that the
    breeze allows do not make breeze work behind the container gateway.
    
    * Record skill-eval run for the breeze-unavailable AGENTS.md guidance
---
 .apache-magpie-overrides/setup-isolated-setup-install.md | 5 +++++
 AGENTS.md                                                | 4 +++-
 contributing-docs/testing/unit_tests.rst                 | 7 +++++++
 dev/skill-evals/last-eval-hash.txt                       | 2 +-
 4 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/.apache-magpie-overrides/setup-isolated-setup-install.md 
b/.apache-magpie-overrides/setup-isolated-setup-install.md
index b890c94c252..2e3d35a5b97 100644
--- a/.apache-magpie-overrides/setup-isolated-setup-install.md
+++ b/.apache-magpie-overrides/setup-isolated-setup-install.md
@@ -74,6 +74,11 @@ plus read-only `docker ps` / `docker info`. No `docker rm`, 
no
 `docker network prune`, nothing that writes outside the breeze workflow —
 those stay prompt-gated.
 
+The allows only skip the permission prompt. They do not make breeze work
+behind the magpie container gateway, which refuses Docker calls breeze
+depends on (BuildKit sessions, untyped `docker inspect`) by design, so breeze
+cannot run in a session whose `DOCKER_HOST` points at the gateway.
+
 ## Scope notes
 
 - These land in the gitignored, per-machine `.claude/settings.local.json`,
diff --git a/AGENTS.md b/AGENTS.md
index fd8b64b293b..839092ed976 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -23,7 +23,8 @@ Don't spell out **Directed Acyclic Graph** except for 
historical context.
 - Install prek: `uv tool install prek`
 - Enable commit hooks: `prek install`
 - Install breeze shim (one-time, per machine): `scripts/tools/setup_breeze` — 
installs `~/.local/bin/breeze` that runs breeze via `uv run --locked` from the 
current git worktree's `dev/breeze`, with dependencies pinned by 
`dev/breeze/uv.lock` (so each worktree, including ephemeral agent worktrees, 
gets its own breeze tied to its sources). See [ADR 
0017](dev/breeze/doc/adr/0017-use-uvx-to-run-breeze-from-local-sources.md).
-- **Never run pytest, python, or airflow commands directly on the host** — 
always use `breeze`.
+- **Never run pytest, python, or airflow commands directly on the host** — 
always use `breeze`. The only exception is the `uv run --project <PROJECT> ...` 
commands listed below, run against the workspace sources.
+- If a step needs `breeze` and it cannot run (Docker missing, or its Docker 
calls refused by a sandbox or socket proxy), stop and tell the user which call 
failed. Do not build a substitute host environment instead, such as a 
virtualenv with a released Airflow version.
 - Place temporary scripts in `dev/` (mounted as `/opt/airflow/dev/` inside 
Breeze).
 
 ## Commands
@@ -47,6 +48,7 @@ Don't spell out **Directed Acyclic Graph** except for 
historical context.
 - **Run other suites of tests** `breeze testing <test_group>` (test groups: 
`airflow-ctl-tests`, `docker-compose-tests`, `task-sdk-tests`)
 - **Run scripts tests:** `uv run --project scripts pytest scripts/tests/ -xvs`
 - **Run Airflow CLI:** `breeze run airflow dags list`
+- **Run provider tests against a released Airflow version:** `breeze shell 
--use-airflow-version <VERSION> --mount-sources providers-and-tests`, then 
`pytest providers/<provider>/tests/...` inside the shell
 - **Type-check (non-providers):** run the prek hook — `prek run mypy-<project> 
--all-files` (e.g. `mypy-airflow-core`, `mypy-task-sdk`, `mypy-shared-logging`; 
each `shared/<dist>` workspace member has its own `mypy-shared-<dist>` hook). 
The hook uses a dedicated virtualenv and mypy cache under 
`.build/mypy-venvs/<hook>/` and `.build/mypy-caches/<hook>/`; mypy itself is 
installed from `uv.lock` via the `mypy` dependency group (`uv sync --group 
mypy`), so it never mutates your project `.ve [...]
 - **Type-check (providers):** `breeze run mypy path/to/code`
 - **Lint with ruff only:** `prek run ruff --from-ref <target_branch>`
diff --git a/contributing-docs/testing/unit_tests.rst 
b/contributing-docs/testing/unit_tests.rst
index c801cd84c33..e86844c3999 100644
--- a/contributing-docs/testing/unit_tests.rst
+++ b/contributing-docs/testing/unit_tests.rst
@@ -1165,6 +1165,13 @@ directly to the container.
    breeze container, and you can re-run the tests inside the ``breeze`` 
container without restarting it
    (which makes it faster to iterate).
 
+.. AGENT-SKILL-START
+   type: agents-md-commands
+   order: 25
+   lines:
+     - "- **Run provider tests against a released Airflow version:** `breeze 
shell --use-airflow-version <VERSION> --mount-sources providers-and-tests`, 
then `pytest providers/<provider>/tests/...` inside the shell"
+.. AGENT-SKILL-END
+
 .. note::
 
    Since providers are installed from sources rather than from packages, 
plugins from providers are not
diff --git a/dev/skill-evals/last-eval-hash.txt 
b/dev/skill-evals/last-eval-hash.txt
index 75a3c2c4d54..f489ded32f5 100644
--- a/dev/skill-evals/last-eval-hash.txt
+++ b/dev/skill-evals/last-eval-hash.txt
@@ -1,3 +1,3 @@
 # Generated by dev/skill-evals/eval.py — do not edit or resolve conflicts by 
hand.
 # Run `prek run run-skill-eval --hook-stage manual --all-files` to regenerate.
-6a82b68ab3d4179b148c7a545206c4e37e7611f85e9b830d89186a8713c8b272
+32e8c893747492d95d98e47b9244b693f9b23756c9d7502cd6aae94225e4ef27

Reply via email to