Skip to content

feat!: discover uv workspaces and deptry projects through the pyproject module - #127

Merged
danielgafni merged 3 commits into
mainfrom
feat/pyproject-consumers
Oct 23, 2026
Merged

danielgafni merged 3 commits into
mainfrom
feat/pyproject-consumers

Conversation

@danielgafni

@danielgafni danielgafni commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

No description provided.

@danielgafni
danielgafni force-pushed the feat/pyproject-consumers branch 2 times, most recently from 029492c to 13d29fa Compare October 23, 2026 12:46
…ct module

uv and deptry now take their projects and workspaces from the `pyproject`
module instead of walking the tree themselves.

uv:
- Workspaces are `pyproject` workspaces with the `uv.lock` marker. Each
  `UvWorkspaceSource.source` is the workspace's scoped load (members plus
  their path dependencies, nothing else), not the whole tree, so editing
  an unrelated project no longer invalidates its builds.
- `audit` mounts the new `manifests` directory and no longer takes `ws`.

deptry:
- Projects come from `pyproject`, and each check scans the project's
  `files`: its tree less nested projects. That replaces the hardcoded
  `**/sdk` and `**/clients` excludes, which also skipped any user package
  with those names.
- Dagger-generated projects (`[tool.dagger] generated`) are skipped.
- `check` no longer takes `ws`.

pyproject:
- New `files(ws)`: the files a project owns.
- New `generated` field from `[tool.dagger] generated`.

ruff keeps its single whole-tree run: ruff resolves the nearest config per
file itself, and splitting it per project would cut off configs that
`extend` a parent.

BREAKING CHANGE: `UvWorkspaceSource.audit` and `DeptryProject.check` no
longer take a `ws` argument.
main carries the fix for the generator's staleness check.
@danielgafni
danielgafni force-pushed the feat/pyproject-consumers branch from ad839da to a32da96 Compare October 23, 2026 13:21
@danielgafni
danielgafni changed the base branch from feat/pyproject-module to main October 23, 2026 13:21
On beta.20, python-sdk@main's generator still binds the workspace's own
clients by Git URL when the workspace is loaded from Git (as Dagger Cloud
checks load it), so python-sdk/generate/stale fails in CI: the engine
renders those refs as <repo>#<sha>:<path>, which the SDK's same-repo
check doesn't recognise. Generation output is unchanged locally.
@danielgafni
danielgafni force-pushed the feat/pyproject-consumers branch from a32da96 to 34d9eec Compare October 23, 2026 13:21
@danielgafni
danielgafni merged commit d36f95d into main Oct 23, 2026
16 of 19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant