This is an automated email from the ASF dual-hosted git repository.
fokko 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 9178ee4b docs: update `contributing.md` with uv (#2733)
9178ee4b is described below
commit 9178ee4bcf28a5656bd236a815efa4aa687c89c1
Author: Drew Gallardo <[email protected]>
AuthorDate: Mon Nov 10 23:56:46 2025 -0800
docs: update `contributing.md` with uv (#2733)
# Rationale for this change
Update contributing documentation to reflect the migration from Poetry
to uv for dependency management in #2601.
https://docs.astral.sh/uv/
## Are these changes tested?
`make lint && make docs-serve`
<img width="625" height="600" alt="image"
src="https://github.com/user-attachments/assets/5ff10875-ac2c-432e-b34d-11833968656d"
/>
## Are there any user-facing changes?
doc changes
---
mkdocs/docs/contributing.md | 56 +++++++++++++++++++++++++++++++++------------
1 file changed, 42 insertions(+), 14 deletions(-)
diff --git a/mkdocs/docs/contributing.md b/mkdocs/docs/contributing.md
index 2115244e..aaecab2c 100644
--- a/mkdocs/docs/contributing.md
+++ b/mkdocs/docs/contributing.md
@@ -34,33 +34,61 @@ For first-time contributors, feel free to check out our
[good first issues](http
The PyIceberg Project is hosted on GitHub at
<https://github.com/apache/iceberg-python>.
-For the development, Poetry is used for packing and dependency management. You
can install this using:
+For development, [uv](https://docs.astral.sh/uv/) is used for dependency
management and packaging. uv is a Python package installer and resolver,
written in Rust, that serves as a drop-in replacement for pip, and virtualenv.
+
+### Getting Started
+
+Install uv and set up the development environment:
```bash
-make install-poetry
+make install
```
-To get started, you can run `make install`, which installs all the
dependencies of the Iceberg library. This also installs the development
dependencies. If you don't want to install the development dependencies, you
need to install using `poetry install --without dev` instead of `make install`.
+This will install uv if needed, create a virtual environment in `.venv`, and
install all dependencies.
+
+If you only want to just install uv:
+
+```bash
+make install-uv
+```
-If you want to install the library on the host, you can simply run `pip3
install -e .`. If you wish to use a virtual environment, you can run `poetry
shell`. Poetry will open up a virtual environment with all the dependencies set.
+### Python Version Selection
-> **Note:** If you want to use `poetry shell`, you need to install it using
`pip install poetry-plugin-shell`. Alternatively, you can run commands directly
with `poetry run`.
+You can specify which Python version to use when creating your virtual
environment:
-To set up IDEA with Poetry:
+```bash
+PYTHON=3.12 make install # Create environment with Python 3.12
+make test # Run tests against Python 3.12
+```
+
+> **Tip:** `uv python list` shows available interpreters. `uv python install
3.12` can install one if needed.
+
+### IDE Setup
+
+After running `make install`, configure your IDE to use the Python interpreter
at `.venv/bin/python`.
+
+**To set up IDEA with uv:**
- Open up the Python project in IntelliJ
-- Make sure that you're on latest main (that includes Poetry)
+- Make sure that you're on latest main
- Go to File -> Project Structure (⌘;)
- Go to Platform Settings -> SDKs
-- Click the + sign -> Add Python SDK
-- Select Poetry Environment from the left hand side bar and hit OK
-- It can take some time to download all the dependencies based on your internet
-- Go to Project Settings -> Project
-- Select the Poetry SDK from the SDK dropdown, and click OK
+- Add Python SDK -> Virtualenv Environment -> Existing environment
+- Point to `.venv/bin/python`
+
+**VS Code:**
+
+- Press Cmd/Ctrl+Shift+P -> "Python: Select Interpreter"
+- Choose `.venv/bin/python`
+
+### Advanced uv Usage
-For IDEA ≤2021 you need to install the [Poetry integration as a
plugin](https://plugins.jetbrains.com/plugin/14307-poetry/).
+For full control over your environment, you can use uv commands directly. See
the [uv documentation](https://docs.astral.sh/uv/) to learn more about:
-Now you're set using Poetry, and all the tests will run in Poetry, and you'll
have syntax highlighting in the pyproject.toml to indicate stale dependencies.
+- 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`
## Installation from source