diff --git a/pkgs/development/python-modules/uv-build/built-by-uv.nix b/pkgs/development/python-modules/uv-build/built-by-uv.nix new file mode 100644 index 000000000000..aa3ba16693ff --- /dev/null +++ b/pkgs/development/python-modules/uv-build/built-by-uv.nix @@ -0,0 +1,22 @@ +{ + buildPythonPackage, + uv, + uv-build, + anyio, + pytestCheckHook, +}: +buildPythonPackage { + pname = "built-by-uv"; + version = "0.1.0"; + pyproject = true; + + src = "${uv.src}/scripts/packages/built-by-uv"; + + build-system = [ uv-build ]; + + dependencies = [ anyio ]; + + pythonImportsCheck = [ "built_by_uv" ]; + + nativeCheckInputs = [ pytestCheckHook ]; +} diff --git a/pkgs/development/python-modules/uv-build/default.nix b/pkgs/development/python-modules/uv-build/default.nix new file mode 100644 index 000000000000..851ce18c0f08 --- /dev/null +++ b/pkgs/development/python-modules/uv-build/default.nix @@ -0,0 +1,43 @@ +{ + lib, + pkgs, + buildPythonPackage, + rustPlatform, + callPackage, +}: + +buildPythonPackage { + pname = "uv-build"; + pyproject = true; + + inherit (pkgs.uv) + version + src + cargoDeps + cargoBuildFlags + ; + + nativeBuildInputs = [ + rustPlatform.cargoSetupHook + rustPlatform.maturinBuildHook + ]; + + buildAndTestSubdir = "crates/uv-build"; + + # $src/.github/workflows/build-binaries.yml#L139 + maturinBuildFlags = [ "--profile=minimal-size" ]; + + pythonImportsCheck = [ "uv_build" ]; + + # The package has no tests + doCheck = false; + + # Run the tests of a package built by `uv_build`. + passthru.tests.built-by-uv = callPackage ./built-by-uv.nix { inherit (pkgs) uv; }; + + meta = { + description = "A minimal build backend for uv"; + inherit (pkgs.uv.meta) homepage changelog license; + maintainers = with lib.maintainers; [ bengsparks ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index f9e04abda169..0c046157350e 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -18145,6 +18145,8 @@ self: super: with self; { uv = callPackage ../development/python-modules/uv { }; + uv-build = callPackage ../development/python-modules/uv-build { }; + uv-dynamic-versioning = callPackage ../development/python-modules/uv-dynamic-versioning { }; uvcclient = callPackage ../development/python-modules/uvcclient { };