From 58a81f7c4700ed79bb5870334fe0b52198f91973 Mon Sep 17 00:00:00 2001 From: Charlie Marsh Date: Wed, 8 Jan 2025 19:33:55 -0500 Subject: [PATCH] Add `uv lock --script` to the docs (#10414) --- docs/guides/scripts.md | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/docs/guides/scripts.md b/docs/guides/scripts.md index 0696af57a..c6d10af63 100644 --- a/docs/guides/scripts.md +++ b/docs/guides/scripts.md @@ -210,11 +210,30 @@ print(Point) is not installed — see the documentation on [Python versions](../concepts/python-versions.md) for more details. +## Locking dependencies + +uv supports locking dependencies for PEP 723 scripts using the `uv.lock` file format. Unlike with +projects, scripts must be explicitly locked using `uv lock`: + +```console +$ uv lock --script example.py +``` + +Running `uv lock --script` will create a `.lock` file adjacent to the script (e.g., +`example.py.lock`). + +Once locked, subsequent operations like `uv run --script`, `uv add --script`, `uv export --script`, +and `uv tree --script` will reuse the locked dependencies, updating the lockfile if necessary. + +If no such lockfile is present, commands like `uv export --script` will still function as expected, +but will not create a lockfile. + ## Improving reproducibility -uv supports an `exclude-newer` field in the `tool.uv` section of inline script metadata to limit uv -to only considering distributions released before a specific date. This is useful for improving the -reproducibility of your script when run at a later point in time. +In addition to locking dependencies, uv supports an `exclude-newer` field in the `tool.uv` section +of inline script metadata to limit uv to only considering distributions released before a specific +date. This is useful for improving the reproducibility of your script when run at a later point in +time. The date must be specified as an [RFC 3339](https://www.rfc-editor.org/rfc/rfc3339.html) timestamp (e.g., `2006-12-02T02:07:43Z`).