Skip to content

Suppress redundant pyproject dependency warning for uv-managed projects #1968

Description

@codeforester

Goal

Stop basectl check from reporting a redundant BASE-P142 warning for projects that explicitly declare python.manager: uv.

Background

Base's read-only pyproject.toml diagnostics currently warn whenever Python dependency metadata is present, with the message that Base does not reconcile it. That warning is accurate for an unmanaged Python project, but it is misleading for an explicit uv-managed project: Base delegates dependency synchronization to uv and already reports the uv project environment as synchronized or identifies its drift through the BASE-P150 through BASE-P155 checks.

For example, a healthy uv-managed project can finish basectl check successfully while still emitting BASE-P142, making a normal supported configuration look incomplete.

Scope

  • Make the pyproject.toml dependency diagnostic aware of the explicit python.manager: uv contract.
  • Suppress the redundant BASE-P142 warning for explicit uv-managed projects.
  • Preserve the existing warning for projects with dependency metadata that Base does not manage through a supported project manager.
  • Keep uv readiness and synchronization findings as the source of truth for uv-managed dependency state.
  • Add focused regression coverage and update the diagnostic documentation.

Acceptance Criteria

  • A manifest with python.manager: uv and Python dependency metadata does not emit BASE-P142.
  • A manifest without an explicit supported Python manager still emits BASE-P142 when dependency metadata is present.
  • Existing BASE-P140, BASE-P141, and BASE-P143 behavior is unchanged.
  • Existing uv findings continue to report missing project files, missing environments, and synchronization drift.
  • Text and JSON check/doctor output remain consistent, and a healthy uv-managed project reports no redundant warning.
  • No dependency resolution or project mutation is added to basectl check or basectl doctor.

Validation

  • Focused base_setup pyproject and diagnostics pytest tests.
  • Relevant uv pytest tests.
  • basectl test base.
  • git diff --check.

Non-Goals

  • Do not move Python dependencies into base_manifest.yaml.
  • Do not change uv synchronization behavior.
  • Do not remove BASE-P142 for unmanaged projects.
  • Do not add a new dependency manager.

Project Fields

  • Status: In Progress
  • Priority: P2
  • Size: S
  • Area: Python
  • Initiative: Adoption Polish

Agent Assignment

  • Assigned to: codeforester
  • Implementation is limited to the existing pyproject diagnostic boundary, its tests, and the matching documentation.

Metadata

Metadata

Assignees

Labels

bugSomething is not working

Type

No type

Projects

Status
Done

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions