diff --git a/scripts/uvx_dummy/README.md b/scripts/uvx_dummy/README.md new file mode 100644 index 000000000..b5a62ebac --- /dev/null +++ b/scripts/uvx_dummy/README.md @@ -0,0 +1,8 @@ +# uvx + +`uvx` is provided by the [uv package](https://pypi.org/project/uv/). There is no need to install it +separately. This is just a dummy package guarding against dependendency confusion attacks. + +Previously, this was a third-party package used to extend uv's functionality. The author of that +package graciously renamed it to [`uvenv`](https://pypi.org/project/uvenv/) to avoid confusion. If +you're attempting to use that package, replace your dependency on `uvx` with `uvenv`. diff --git a/scripts/uvx_dummy/build_backend.py b/scripts/uvx_dummy/build_backend.py new file mode 100644 index 000000000..fb028010f --- /dev/null +++ b/scripts/uvx_dummy/build_backend.py @@ -0,0 +1,21 @@ +import sys + +from hatchling.build import * # noqa:F401,F403 + + +def build_wheel(wheel_directory, config_settings, metadata_directory) -> str: + print( + "This package is a placeholder to prevent dependency confusion with `uvx`. " + "Please refer to https://github.com/astral-sh/uv for installing uv and uvx.", + file=sys.stderr, + ) + sys.exit(1) + + +def prepare_metadata_for_build_wheel(metadata_directory, config_settings) -> str: + print( + "This package is a placeholder to prevent dependency confusion with `uvx`. " + "Please refer to https://github.com/astral-sh/uv for installing uv and uvx.", + file=sys.stderr, + ) + sys.exit(1) diff --git a/scripts/uvx_dummy/pyproject.toml b/scripts/uvx_dummy/pyproject.toml new file mode 100644 index 000000000..6bdf9dfb6 --- /dev/null +++ b/scripts/uvx_dummy/pyproject.toml @@ -0,0 +1,12 @@ +[project] +name = "uvx" +version = "3.0.0" +description = "A placeholder package to prevent dependency confusion with `uvx`." +authors = [{ name = "Astral Software Inc.", email = "hey@astral.sh" }] +requires-python = ">=3.8" +readme = "README.md" + +[build-system] +backend-path = ["."] +requires = ["hatchling"] +build-backend = "build_backend"