Skip to content

Commit 6f7e74b

Browse files
committed
Merge branch 'main' into field_ids
2 parents 7c94bf5 + d3d3127 commit 6f7e74b

File tree

8 files changed

+846
-36
lines changed

8 files changed

+846
-36
lines changed

.asf.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ github:
4040

4141
required_pull_request_reviews:
4242
required_approving_review_count: 1
43-
dismiss_stale_reviews: true
43+
dismiss_stale_reviews: false
4444

4545
required_linear_history: true
4646
del_branch_on_merge: true

.github/workflows/bindings_python_ci.yml

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -56,17 +56,21 @@ jobs:
5656
runs-on: ubuntu-latest
5757
steps:
5858
- uses: actions/checkout@v5
59+
- uses: astral-sh/setup-uv@v6
60+
with:
61+
version: "0.9.3"
62+
enable-cache: true
5963
- name: Install tools
6064
run: |
61-
pip install ruff
65+
uv tool install ruff
6266
- name: Check format
6367
working-directory: "bindings/python"
6468
run: |
65-
ruff format . --diff
69+
uvx ruff format . --diff
6670
- name: Check style
6771
working-directory: "bindings/python"
6872
run: |
69-
ruff check .
73+
uvx ruff check .
7074
7175
test:
7276
runs-on: ${{ matrix.os }}
@@ -80,17 +84,28 @@ jobs:
8084
- uses: actions/checkout@v5
8185
- uses: actions/setup-python@v6
8286
with:
83-
python-version: 3.9
87+
python-version: 3.12
8488
- uses: PyO3/maturin-action@v1
8589
with:
8690
working-directory: "bindings/python"
8791
command: build
8892
args: --out dist --sdist
93+
- uses: astral-sh/setup-uv@v6
94+
with:
95+
version: "0.9.3"
96+
enable-cache: true
97+
- name: Sync dependencies
98+
working-directory: "bindings/python"
99+
shell: bash
100+
run: |
101+
make install
102+
- name: Install built wheel
103+
working-directory: "bindings/python"
104+
shell: bash
105+
run: |
106+
uv pip install --reinstall dist/pyiceberg_core-*.whl
89107
- name: Run tests
90108
working-directory: "bindings/python"
91109
shell: bash
92110
run: |
93-
set -e
94-
pip install hatch==1.14.2
95-
hatch run dev:pip install dist/pyiceberg_core-*.whl --force-reinstall
96-
hatch run dev:test
111+
make test

.licenserc.yaml

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,16 +21,17 @@ header:
2121
copyright-owner: Apache Software Foundation
2222

2323
paths-ignore:
24-
- 'LICENSE'
25-
- 'NOTICE'
26-
- '.gitattributes'
27-
- '**/*.json'
24+
- "LICENSE"
25+
- "NOTICE"
26+
- ".gitattributes"
27+
- "**/*.json"
2828
# Generated content by mdbook
29-
- 'website/book'
29+
- "website/book"
3030
# Generated content by scripts
31-
- '**/DEPENDENCIES.*.tsv'
31+
- "**/DEPENDENCIES.*.tsv"
3232
# Release distributions
33-
- 'dist/*'
34-
- 'Cargo.lock'
35-
- '.github/PULL_REQUEST_TEMPLATE.md'
33+
- "dist/*"
34+
- "Cargo.lock"
35+
- "bindings/python/uv.lock"
36+
- ".github/PULL_REQUEST_TEMPLATE.md"
3637
comment: on-failure

Makefile

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,7 @@ NIGHTLY_VERSION := $(shell awk -F'"' '/^channel/ {print $$2}' rust-toolchain.tom
4545
MSRV_VERSION := $(shell awk -F'"' '/^rust-version/ {print $$2}' Cargo.toml)
4646

4747
check-msrv:
48-
@set -e; \
49-
trap 'git restore Cargo.lock' EXIT; \
50-
cargo +$(NIGHTLY_VERSION) generate-lockfile -Z direct-minimal-versions; \
51-
cargo +$(MSRV_VERSION) check --locked --workspace
48+
cargo +$(MSRV_VERSION) check --workspace
5249

5350
check: check-fmt check-clippy check-toml cargo-machete
5451

bindings/python/Makefile

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# Licensed to the Apache Software Foundation (ASF) under one
2+
# or more contributor license agreements. See the NOTICE file
3+
# distributed with this work for additional information
4+
# regarding copyright ownership. The ASF licenses this file
5+
# to you under the Apache License, Version 2.0 (the
6+
# "License"); you may not use this file except in compliance
7+
# with the License. You may obtain a copy of the License at
8+
#
9+
# http://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# Unless required by applicable law or agreed to in writing,
12+
# software distributed under the License is distributed on an
13+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14+
# KIND, either express or implied. See the License for the
15+
# specific language governing permissions and limitations
16+
# under the License.
17+
18+
19+
install:
20+
uv sync --group dev --no-install-project
21+
22+
build:
23+
uv run maturin develop
24+
25+
test:
26+
uv run --no-sync pytest

bindings/python/README.md

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,22 +23,26 @@ This project is used to build an Iceberg-rust powered core for [PyIceberg](https
2323

2424
## Setup
2525

26-
Install Hatch:
26+
Install [uv](https://docs.astral.sh/uv/getting-started/installation/):
2727

2828
```shell
29-
pip install hatch==1.12.0
29+
pip install uv==0.9.3
3030
```
3131

32-
Hatch uses [uv](https://docs.astral.sh/uv/) as a backend by default, so [make sure that it is installed](https://docs.astral.sh/uv/getting-started/installation/) as well.
32+
Set up the development environment:
33+
34+
```shell
35+
make install
36+
```
3337

3438
## Build
3539

3640
```shell
37-
hatch run dev:develop
41+
make build
3842
```
3943

4044
## Test
4145

4246
```shell
43-
hatch run dev:test
47+
make test
4448
```

bindings/python/pyproject.toml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -25,14 +25,13 @@ classifiers = [
2525
"Intended Audience :: Developers",
2626
"License :: OSI Approved :: Apache Software License",
2727
"Operating System :: OS Independent",
28-
"Programming Language :: Python :: 3.9",
2928
"Programming Language :: Python :: 3.10",
3029
"Programming Language :: Python :: 3.11",
3130
"Programming Language :: Python :: 3.12",
3231
]
3332
name = "pyiceberg-core"
3433
readme = "project-description.md"
35-
requires-python = "~=3.9"
34+
requires-python = ">=3.10,<3.13"
3635
dynamic = ["version"]
3736
license = { file = "LICENSE" }
3837

@@ -48,10 +47,11 @@ include = [
4847
[tool.ruff.lint]
4948
ignore = ["F403", "F405"]
5049

51-
[tool.hatch.envs.dev]
52-
dependencies = ["maturin>=1.0,<2.0", "pytest>=8.3.2", "datafusion==50.*", "pyiceberg[sql-sqlite,pyarrow]>=0.10.0", "fastavro>=1.11.1"]
53-
54-
[tool.hatch.envs.dev.scripts]
55-
build = "maturin build --out dist --sdist"
56-
develop = "maturin develop"
57-
test = "pytest"
50+
[dependency-groups]
51+
dev = [
52+
"maturin>=1.0,<2.0",
53+
"pytest>=8.3.2",
54+
"datafusion==50.*",
55+
"pyiceberg[sql-sqlite,pyarrow] @ git+https://github.com/apache/iceberg-python.git@d3eb149fe99b14e714a06e727b69cd617c6c052d",
56+
"fastavro>=1.11.1",
57+
]

0 commit comments

Comments
 (0)