Skip to content

Feature request: Add native uv project support (pyproject.toml + uv.lock) via cyclonedx-py uv subcommand #1029

@m7mdhka

Description

@m7mdhka

Is your feature request related to a problem? Please describe.

Yes. cyclonedx-py currently supports generating SBOMs from environments, requirements, Pipenv, and Poetry projects, but there is no first-class uv project workflow in released versions.
This makes it harder for teams using uv to generate lockfile-based SBOMs directly from pyproject.toml + uv.lock, and can block adoption in projects where uv is the package manager of record.

Describe the solution you'd like

Add native uv project support as a dedicated CLI subcommand (for example, cyclonedx-py uv) that:

  • accepts a project directory (or uv.lock path),
  • reads pyproject.toml and uv.lock,
  • resolves dependency groups/extras in a way consistent with uv,
  • generates CycloneDX JSON/XML output with the same quality and validation behavior as existing subcommands,
  • is documented in README and docs/usage.rst,
  • includes integration/unit tests and snapshot coverage.

Describe alternatives you've considered

  • Environment scan (cyclonedx-py environment): works for installed packages, but is less lockfile-centric and can differ from the exact declared lock resolution.
  • Converting/exporting through external tools first: adds extra steps and potential drift between source lock data and generated SBOM.
  • Maintaining custom scripts: increases maintenance burden and reduces consistency with official tool behavior.

Additional context

uv adoption is growing quickly, and users expect parity with other mainstream Python dependency workflows.
A dedicated uv subcommand would improve reproducibility, reduce friction in CI pipelines, and align with lockfile-driven supply chain practices.

Contribution

  • I am willing to provide an implementation
  • I will wait until somebody else implements it

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions