Skip to content

Commit d5bad11

Browse files
authored
Merge branch 'main' into fix/nested-struct-field-filtering
2 parents 8fe55e3 + e759044 commit d5bad11

94 files changed

Lines changed: 2539 additions & 2410 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/nightly-pypi-build.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ jobs:
7171

7272
steps:
7373
- name: Download all the artifacts
74-
uses: actions/download-artifact@v5
74+
uses: actions/download-artifact@v6
7575
with:
7676
merge-multiple: true
7777
path: dist/

.github/workflows/pypi-build-artifacts.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ jobs:
4242
- uses: actions/setup-python@v6
4343
with:
4444
python-version: |
45-
3.9
4645
3.10
4746
3.11
4847
3.12
@@ -69,12 +68,14 @@ jobs:
6968
env:
7069
# Ignore 32 bit architectures
7170
CIBW_ARCHS: "auto64"
72-
CIBW_PROJECT_REQUIRES_PYTHON: ">=3.9,<3.13"
71+
CIBW_PROJECT_REQUIRES_PYTHON: ">=3.10"
7372
CIBW_TEST_REQUIRES: "pytest==7.4.2 moto==5.0.1"
7473
CIBW_TEST_COMMAND: "pytest {project}/tests/avro/test_decoder.py"
7574
# Ignore tests for pypy since not all dependencies are compiled for it
7675
# and would require a local rust build chain
7776
CIBW_TEST_SKIP: "pp*"
77+
# Skip free-threaded (PEP 703) builds until we evaluate decoder_fast support
78+
CIBW_SKIP: "cp3*t-*"
7879

7980
- name: Add source distribution
8081
if: startsWith(matrix.os, 'ubuntu')

.github/workflows/python-ci.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ jobs:
4747
runs-on: ubuntu-latest
4848
strategy:
4949
matrix:
50-
python: ['3.9', '3.10', '3.11', '3.12']
50+
python: ['3.10', '3.11', '3.12']
5151

5252
steps:
5353
- uses: actions/checkout@v5
@@ -71,7 +71,7 @@ jobs:
7171
runs-on: ubuntu-latest
7272
strategy:
7373
matrix:
74-
python: ['3.9', '3.10', '3.11', '3.12']
74+
python: ['3.10', '3.11', '3.12']
7575

7676
steps:
7777
- uses: actions/checkout@v5

.github/workflows/svn-build-artifacts.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ jobs:
4242
- uses: actions/setup-python@v6
4343
with:
4444
python-version: |
45-
3.9
4645
3.10
4746
3.11
4847
3.12
@@ -64,12 +63,14 @@ jobs:
6463
env:
6564
# Ignore 32 bit architectures
6665
CIBW_ARCHS: "auto64"
67-
CIBW_PROJECT_REQUIRES_PYTHON: ">=3.9,<3.13"
66+
CIBW_PROJECT_REQUIRES_PYTHON: ">=3.10"
6867
CIBW_TEST_REQUIRES: "pytest==7.4.2 moto==5.0.1"
6968
CIBW_TEST_COMMAND: "pytest {project}/tests/avro/test_decoder.py"
7069
# Ignore tests for pypy since not all dependencies are compiled for it
7170
# and would require a local rust build chain
7271
CIBW_TEST_SKIP: "pp*"
72+
# Skip free-threaded (PEP 703) builds until we evaluate decoder_fast support
73+
CIBW_SKIP: "cp3*t-*"
7374

7475
- name: Add source distribution
7576
if: startsWith(matrix.os, 'ubuntu')

.pre-commit-config.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,13 @@ repos:
2727
- id: check-yaml
2828
- id: check-ast
2929
- repo: https://github.com/astral-sh/ruff-pre-commit
30-
rev: v0.12.9
30+
rev: v0.14.3
3131
hooks:
3232
- id: ruff
3333
args: [ --fix, --exit-non-zero-on-fix ]
3434
- id: ruff-format
3535
- repo: https://github.com/pre-commit/mirrors-mypy
36-
rev: v1.17.1
36+
rev: v1.18.2
3737
hooks:
3838
- id: mypy
3939
args:

dev/hive/Dockerfile

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -13,21 +13,19 @@
1313
# See the License for the specific language governing permissions and
1414
# limitations under the License.
1515

16-
FROM openjdk:8-jre-slim AS build
17-
18-
RUN apt-get update -qq && apt-get -qq -y install curl
16+
FROM apache/hive:4.0.0
1917

2018
ENV HADOOP_VERSION=3.3.6
2119
ENV AWS_SDK_BUNDLE=1.12.753
2220

23-
RUN curl https://repo1.maven.org/maven2/org/apache/hadoop/hadoop-aws/${HADOOP_VERSION}/hadoop-aws-${HADOOP_VERSION}.jar -Lo /tmp/hadoop-aws-${HADOOP_VERSION}.jar
24-
RUN curl https://repo1.maven.org/maven2/com/amazonaws/aws-java-sdk-bundle/${AWS_SDK_BUNDLE}/aws-java-sdk-bundle-${AWS_SDK_BUNDLE}.jar -Lo /tmp/aws-java-sdk-bundle-${AWS_SDK_BUNDLE}.jar
21+
USER root
2522

26-
FROM apache/hive:4.0.0
23+
# Install curl, download JARs, and cleanup in a single layer
24+
RUN apt-get update -qq && apt-get -qq -y install curl && \
25+
curl https://repo1.maven.org/maven2/org/apache/hadoop/hadoop-aws/${HADOOP_VERSION}/hadoop-aws-${HADOOP_VERSION}.jar -Lo /opt/hive/lib/hadoop-aws-${HADOOP_VERSION}.jar && \
26+
curl https://repo1.maven.org/maven2/com/amazonaws/aws-java-sdk-bundle/${AWS_SDK_BUNDLE}/aws-java-sdk-bundle-${AWS_SDK_BUNDLE}.jar -Lo /opt/hive/lib/aws-java-sdk-bundle-${AWS_SDK_BUNDLE}.jar && \
27+
apt-get clean && rm -rf /var/lib/apt/lists/*
2728

28-
ENV HADOOP_VERSION=3.3.6
29-
ENV AWS_SDK_BUNDLE=1.12.753
30-
31-
COPY --from=build /tmp/hadoop-aws-${HADOOP_VERSION}.jar /opt/hive/lib/hadoop-aws-${HADOOP_VERSION}.jar
32-
COPY --from=build /tmp/aws-java-sdk-bundle-${AWS_SDK_BUNDLE}.jar /opt/hive/lib/aws-java-sdk-bundle-${AWS_SDK_BUNDLE}.jar
3329
COPY core-site.xml /opt/hadoop/etc/hadoop/core-site.xml
30+
31+
USER hive

mkdocs/docs/contributing.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -234,8 +234,6 @@ Deprecated in 0.1.0, will be removed in 0.2.0. The old_property is deprecated. P
234234

235235
For the type annotation the types from the `Typing` package are used.
236236

237-
PyIceberg offers support from Python 3.9 onwards, we can't use the [type hints from the standard collections](https://peps.python.org/pep-0585/).
238-
239237
### Third party libraries
240238

241239
PyIceberg naturally integrates into the rich Python ecosystem, however it is important to be hesitant adding third party packages. Adding a lot of packages makes the library heavyweight, and causes incompatibilities with other projects if they use a different version of the library. Also, big libraries such as `s3fs`, `adlfs`, `pyarrow`, `thrift` should be optional to avoid downloading everything, while not being sure if is actually being used.

mkdocs/docs/how-to-release.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ This guide outlines the process for releasing PyIceberg in accordance with the [
3030
## Requirements
3131

3232
* A GPG key must be registered and published in the [Apache Iceberg KEYS file](https://downloads.apache.org/iceberg/KEYS). Follow [the instructions for setting up a GPG key and uploading it to the KEYS file](#set-up-gpg-key-and-upload-to-apache-iceberg-keys-file).
33+
* Permission to update the `KEYS` artifact in the [Apache release distribution](https://dist.apache.org/repos/dist/release/iceberg/) (requires Iceberg PMC privileges).
3334
* SVN Access
3435
* Permission to upload artifacts to the [Apache development distribution](https://dist.apache.org/repos/dist/dev/iceberg/) (requires Apache Committer access).
3536
* Permission to upload artifacts to the [Apache release distribution](https://dist.apache.org/repos/dist/release/iceberg/) (requires Apache PMC access).
@@ -405,5 +406,12 @@ cd icebergsvn
405406
echo "" >> KEYS # append a newline
406407
gpg --list-sigs <YOUR KEY ID HERE> >> KEYS # append signatures
407408
gpg --armor --export <YOUR KEY ID HERE> >> KEYS # append public key block
408-
svn commit -m "add key for <YOUR NAME HERE>"
409+
svn commit -m "add key for <YOUR NAME HERE>" # this requires Iceberg PMC privileges
409410
```
411+
412+
<!-- prettier-ignore-start -->
413+
414+
!!! note
415+
Updating the `KEYS` artifact in the `release/` distribution requires Iceberg PMC privileges. Please work with a PMC member to update the file.
416+
417+
<!-- prettier-ignore-end -->

mkdocs/gen_doc_stubs.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@
1717

1818
from pathlib import Path
1919

20-
import griffe # type: ignore
21-
import mkdocs_gen_files # type: ignore
20+
import griffe
21+
import mkdocs_gen_files
2222

2323
nav = mkdocs_gen_files.Nav()
2424

0 commit comments

Comments
 (0)