Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/workflows/python-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
12 changes: 5 additions & 7 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -66,11 +66,9 @@ repos:
rev: v2.4.1
hooks:
- id: codespell
- repo: local
- repo: https://github.com/astral-sh/uv-pre-commit
# uv version.
rev: 0.10.9
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

critical

The rev 0.10.9 is not a valid uv version. According to the uv-pre-commit documentation, this should be a valid version of uv. uv versions are in the format 0.x.y (e.g., 0.2.2). This will cause the pre-commit hook installation to fail. Please use a valid uv version.

    rev: 0.2.2

hooks:
- id: uv-lock-check
name: uv lock file check
entry: make uv-lock-check
language: system
pass_filenames: false
files: ^(pyproject\.toml|uv\.lock)$
# Update the uv lockfile
- id: uv-lock
10 changes: 1 addition & 9 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
test test-integration test-integration-setup test-integration-exec test-integration-cleanup test-integration-rebuild \
test-s3 test-adls test-gcs test-coverage coverage-report \
docs-serve docs-build notebook notebook-infra \
clean uv-lock uv-lock-check
clean

.DEFAULT_GOAL := help
# ========================
Expand Down Expand Up @@ -193,11 +193,3 @@ clean: ## Remove build artifacts and caches
@echo "Cleaning up coverage files..."
@rm -rf .coverage .coverage.* htmlcov/ coverage.xml
@echo "Cleanup complete."

uv-lock: ## Regenerate uv.lock file from pyproject.toml
uv lock $(PYTHON_ARG)

uv-lock-check: ## Verify uv.lock is up to date
@command -v uv >/dev/null || \
(echo "uv is required. Run 'make install' or 'make install-uv' first." && exit 1)
uv lock --check $(PYTHON_ARG)
20 changes: 10 additions & 10 deletions mkdocs/docs/contributing.md
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
28 changes: 13 additions & 15 deletions uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading