Skip to content

setuptools-scm with uv-lock pre-commit hook workflow broken by uv==0.5 #25

Open
@jamesbraza

Description

@jamesbraza

I have this in my pre-commit-config.yaml:

default_language_version:
  python: python3
repos:
  - repo: https://github.com/astral-sh/uv-pre-commit
    rev: X
    hooks:
      - id: uv-lock

Notably, I also use setuptools-scm for SCM versioning of my package:

# pyproject.toml

[build-system]
build-backend = "setuptools.build_meta"
requires = ["setuptools>=64", "setuptools_scm>=8"]

[project]
dynamic = ["version"]
name = "foo"

[tool.setuptools_scm]
version_file = "foo/version.py"

When the rev is below 0.5, the uv-lock hook passes within a branch.

After pre-commit autoupdate to uv==0.5.1, the uv-lock hook fails within a branch on a commit-by-commit basis:

 [[package]]
 name = "foo"
-version = "0.14.3.dev3+ge144e1b"
+version = "0.14.3.dev5+g1ca1866"

If you enforce pre-commit passing in CI, you seemingly can't win because every commit changes the uv.lock file, which leads to failing CI.

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