Skip to content

Read Action Files or Name the Cause When UV_NO_CACHE Removes the Resolved PyYAML Interpreter #2358

Open

Description

@ptr727

Problem

When in-process PyYAML is missing, the repo gate's composite-actions check resolves a PyYAML interpreter once per run through uvx --with pyyaml python, then runs its reader under that interpreter directly (#2348). Under UV_NO_CACHE=1, or uv's no-cache = true configuration, uv builds that environment in a temporary cache and deletes it when uvx exits, so the resolved interpreter is already gone when the reader launches.

The check then reports one host finding, the interpreter uvx provided could not start: [Errno 2] No such file or directory: '<temporary path>'. The shell half never runs on such a host. The finding names a vanished temporary path rather than the cause or the remedy (unset UV_NO_CACHE, or make PyYAML importable), and scripts/README.md says uvx alone is enough.

Done When

On a host with UV_NO_CACHE set and no in-process PyYAML, either the shell half still reads the action files, for example by falling back to running the reader inside uvx per file on this error, or the single host finding names the no-cache setting and the remedy. A test with a stub probe pins whichever behavior is chosen.

Found by the final strict review pass on #2348, which was at its review-round cap, so the finding was filed rather than fixed.

Activity

  1. ptr727 commented on Oct 4, 2026

    @ptr727
    OwnerAuthor

    Also in scope here, from the round-2 Copilot overview on #2359: no test covers an OSError raised when uvx itself fails to start during the PyYAML probe. A missing uvx, a probe timeout, a probe exit, and a vanished resolved interpreter are each covered, and the start failure takes the same single-host-finding path. One stub test pins it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions