Skip to content

all_packages=True skips Dagger codegen for workspace members #100

Description

@Kewe63

Summary

At b0e9d0ca81328d3c91a08ab8c7a0e8963c2fa7ae, UvSyncPlan.create(all_packages=True, dagger_codegen=True) runs codegen only at . instead of for each local workspace member.

Expected behavior

all_packages is documented to install every workspace member. Dagger codegen is documented to run for the package being built before uv sync, so every selected local Dagger member needs its generated SDK materialized.

Actual behavior

Codegen paths are derived only from the explicit package list. The normal empty list used with all_packages=True falls back to ['.'] before local members are discovered.

Reproduction

PYTHONPATH=repositories/daggerverse/github/src:repositories/daggerverse/ruff/src:repositories/daggerverse/uv/src \
  evidence/daggerverse/venv314/bin/pytest -q \
  evidence/daggerverse/repros/test_candidates.py::test_all_packages_codegen_visits_each_local_member

Observed: expected ['packages/app-one', 'packages/app-two']; actual codegen visits ['.'].

The explicit package=['app-one', 'app-two'] control visits both member paths and passes.

Impact

A pure workspace root can omit gitignored generated SDK sources before frozen sync, so an all-packages build can fail even though explicit selection of the same members works. A full Dagger container build was not run in this audit.

Root cause

uv/src/uv/workspace/plan.py:204-210 computes codegen paths from explicit packages only, before _discover_local_packages handles all_packages.

Suggested fix and regression test

When all_packages is true, derive and deduplicate codegen paths for all reachable local members. Preserve current explicit-package and bare-root behavior. Add a two-member pure-workspace regression plus explicit/default controls.

Duplicate check

The full all-state tracker and actual open patches were inspected. Fresh searches covered all_packages, dagger_codegen, UvSyncPlan.create, workspace member paths, generated SDKs, and skip/selection synonyms. PRs #2/#3 establish codegen necessity and PR #81 changes eligibility, but none addresses all-packages selection.

Activity

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions