This is an automated email from the ASF dual-hosted git repository.
dru pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/iceberg-python.git
The following commit(s) were added to refs/heads/main by this push:
new fcfaaf6d Improve lockfile management documentation and enforce
`uv.lock` freshness in CI (#3144)
fcfaaf6d is described below
commit fcfaaf6d16651a354cf4ef9523af8aae9fe6af37
Author: Kevin Liu <[email protected]>
AuthorDate: Thu Mar 12 10:31:17 2026 -0700
Improve lockfile management documentation and enforce `uv.lock` freshness
in CI (#3144)
---
.github/workflows/python-ci.yml | 2 ++
mkdocs/docs/contributing.md | 20 ++++++++++----------
2 files changed, 12 insertions(+), 10 deletions(-)
diff --git a/.github/workflows/python-ci.yml b/.github/workflows/python-ci.yml
index d1bc3a0f..6472fcbc 100644
--- a/.github/workflows/python-ci.yml
+++ b/.github/workflows/python-ci.yml
@@ -65,6 +65,8 @@ jobs:
enable-cache: true
- name: Install system dependencies
run: sudo apt-get update && sudo apt-get install -y libkrb5-dev # for
kerberos
+ - name: Check uv.lock is up to date
+ run: uv lock --check
- name: Install
run: make install
- name: Run linters
diff --git a/mkdocs/docs/contributing.md b/mkdocs/docs/contributing.md
index 50100b9b..0155907a 100644
--- a/mkdocs/docs/contributing.md
+++ b/mkdocs/docs/contributing.md
@@ -88,25 +88,25 @@ For full control over your environment, you can use uv
commands directly. See th
- Managing dependencies with `uv add` and `uv remove`
- Python version management with `uv python`
- Running commands with `uv run`
-- Lock file management with `uv.lock`
+- Lock file management with `uv lock`
### Lock File Management
-`uv.lock` is a cross-platform lockfile that contains exact information about
the project's dependencies.
-See the [uv.lock
documentation](https://docs.astral.sh/uv/guides/projects/#uvlock) for more
details.
+`uv.lock` is a cross-platform lockfile that contains the exact versions of all
project dependencies. See the [uv.lock
documentation](https://docs.astral.sh/uv/guides/projects/#uvlock) for more
details.
-When modifying dependencies in `pyproject.toml`, regenerate the lock file:
+**Automatic lock file management:**
+When you commit changes to `pyproject.toml` or dependencies, the
[`uv-pre-commit`](https://github.com/astral-sh/uv-pre-commit) pre-commit hook
will automatically update `uv.lock` if needed. If the lockfile changes, your
commit will be stopped and you will be prompted to add the updated `uv.lock` to
your commit.
-```bash
-make uv-lock
-```
-
-Separately, to verify that the lock file is up to date without modifying it:
+**Manual update:**
+If you want to update the lockfile yourself (for example, after editing
`pyproject.toml`), run:
```bash
-make uv-lock-check
+uv lock
```
+**CI enforcement:**
+Our continuous integration (CI) system checks that `uv.lock` is up to date
with `pyproject.toml` on every pull request or push. If they are out of sync,
the CI build will fail. This ensures that dependencies are always consistent
and up to date for all contributors.
+
## Installation from source
Clone the repository for local development: