Skip to content

Commit cf2dbfa

Browse files
committed
Merge branch 'main' into remove_InMemoryCatalog
2 parents b6af81a + 7808121 commit cf2dbfa

File tree

125 files changed

+15296
-9233
lines changed

Some content is hidden

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

125 files changed

+15296
-9233
lines changed

.asf.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ github:
3838
required_approving_review_count: 1
3939

4040
required_linear_history: true
41+
del_branch_on_merge: true
4142
features:
4243
wiki: true
4344
issues: true
Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,5 @@
1414
# KIND, either express or implied. See the License for the
1515
# specific language governing permissions and limitations
1616
# under the License.
17-
18-
mkdocs==1.6.1
19-
griffe==1.2.0
20-
jinja2==3.1.4
21-
mkdocstrings==0.26.0
22-
mkdocstrings-python==1.10.9
23-
mkdocs-literate-nav==0.6.1
24-
mkdocs-autorefs==1.2.0
25-
mkdocs-gen-files==0.5.0
26-
mkdocs-material==9.5.34
27-
mkdocs-material-extensions==1.3.1
28-
mkdocs-section-index==0.3.9
17+
[codespell]
18+
ignore-words-list = BoundIn,fo,MoR,NotIn,notIn,oT

.github/ISSUE_TEMPLATE/iceberg_bug_report.yml

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,22 @@
1+
#
2+
# Licensed to the Apache Software Foundation (ASF) under one
3+
# or more contributor license agreements. See the NOTICE file
4+
# distributed with this work for additional information
5+
# regarding copyright ownership. The ASF licenses this file
6+
# to you under the Apache License, Version 2.0 (the
7+
# "License"); you may not use this file except in compliance
8+
# with the License. You may obtain a copy of the License at
9+
#
10+
# http://www.apache.org/licenses/LICENSE-2.0
11+
#
12+
# Unless required by applicable law or agreed to in writing,
13+
# software distributed under the License is distributed on an
14+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15+
# KIND, either express or implied. See the License for the
16+
# specific language governing permissions and limitations
17+
# under the License.
18+
#
19+
120
---
221
name: Iceberg Bug report 🐞
322
description: Problems, bugs and issues with Apache Iceberg
@@ -9,7 +28,9 @@ body:
928
description: What Apache Iceberg version are you using?
1029
multiple: false
1130
options:
12-
- "0.7.1 (latest release)"
31+
- "0.8.1 (latest release)"
32+
- "0.8.0"
33+
- "0.7.1"
1334
- "0.7.0"
1435
- "0.6.1"
1536
- "0.6.0"
@@ -30,3 +51,11 @@ body:
3051
You can include files by dragging and dropping them here.
3152
validations:
3253
required: true
54+
- type: checkboxes
55+
attributes:
56+
label: Willingness to contribute
57+
description: The Apache Iceberg community encourages bug-fix contributions. Would you or another member of your organization be willing to contribute a fix for this bug to the PyIceberg codebase?
58+
options:
59+
- label: I can contribute a fix for this bug independently
60+
- label: I would be willing to contribute a fix for this bug with guidance from the Iceberg community
61+
- label: I cannot contribute a fix for this bug at this time

.github/ISSUE_TEMPLATE/iceberg_improvement.yml

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

.github/ISSUE_TEMPLATE/iceberg_question.yml

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

.github/dependabot.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ updates:
2323
directory: "/"
2424
schedule:
2525
interval: "daily"
26-
open-pull-requests-limit: 5
26+
open-pull-requests-limit: 50
2727
- package-ecosystem: "github-actions"
2828
directory: "/"
2929
schedule:

.github/workflows/check-md-link.yml

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

322
on:
423
push:
524
paths:
6-
- mkdocs/**
25+
- '.github/workflows/check-md-link.yml'
26+
- 'mkdocs/**'
727
branches:
828
- 'main'
929
pull_request:
30+
paths:
31+
- '.github/workflows/check-md-link.yml'
32+
- 'mkdocs/**'
1033

1134
jobs:
1235
markdown-link-check:
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
#
2+
# Licensed to the Apache Software Foundation (ASF) under one
3+
# or more contributor license agreements. See the NOTICE file
4+
# distributed with this work for additional information
5+
# regarding copyright ownership. The ASF licenses this file
6+
# to you under the Apache License, Version 2.0 (the
7+
# "License"); you may not use this file except in compliance
8+
# with the License. You may obtain a copy of the License at
9+
#
10+
# http://www.apache.org/licenses/LICENSE-2.0
11+
#
12+
# Unless required by applicable law or agreed to in writing,
13+
# software distributed under the License is distributed on an
14+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15+
# KIND, either express or implied. See the License for the
16+
# specific language governing permissions and limitations
17+
# under the License.
18+
#
19+
20+
name: "Nightly PyPI Build"
21+
22+
on:
23+
schedule:
24+
- cron: "0 0 * * *" # Runs at midnight UTC every day
25+
workflow_dispatch: # Allows manual triggering
26+
27+
jobs:
28+
set-version:
29+
if: github.repository == 'apache/iceberg-python' # Only run for apache repo
30+
runs-on: ubuntu-latest
31+
outputs:
32+
VERSION: ${{ steps.set-version.outputs.VERSION }}
33+
steps:
34+
- uses: actions/checkout@v4
35+
with:
36+
fetch-depth: 1
37+
38+
- uses: actions/setup-python@v5
39+
with:
40+
python-version: 3.12
41+
42+
- name: Install Poetry
43+
run: make install-poetry
44+
45+
- name: Set version
46+
id: set-version
47+
run: |
48+
CURRENT_VERSION=$(poetry version --short)
49+
TIMESTAMP=$(date +%Y%m%d%H%M%S)
50+
echo "VERSION=${CURRENT_VERSION}.dev${TIMESTAMP}" >> "$GITHUB_OUTPUT"
51+
52+
- name: Debug version
53+
run: echo "Publishing version ${{ steps.set-version.outputs.VERSION }}"
54+
55+
nightly-build:
56+
needs: set-version
57+
uses: ./.github/workflows/pypi-build-artifacts.yml
58+
with:
59+
version: ${{ needs.set-version.outputs.VERSION }}
60+
testpypi-publish:
61+
name: Publish to TestPypi
62+
needs:
63+
- nightly-build
64+
runs-on: ubuntu-latest
65+
environment:
66+
name: testpypi
67+
url: https://test.pypi.org/p/pyiceberg
68+
69+
permissions:
70+
id-token: write # IMPORTANT: mandatory for trusted publishing
71+
72+
steps:
73+
- name: Download all the artifacts
74+
uses: actions/download-artifact@v4
75+
with:
76+
merge-multiple: true
77+
path: dist/
78+
- name: List downloaded artifacts
79+
run: ls -R dist/
80+
- name: Publish to TestPyPI
81+
uses: pypa/gh-action-pypi-publish@release/v1
82+
with:
83+
repository-url: https://test.pypi.org/legacy/
84+
skip-existing: true
85+
verbose: true
Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
#
2+
# Licensed to the Apache Software Foundation (ASF) under one
3+
# or more contributor license agreements. See the NOTICE file
4+
# distributed with this work for additional information
5+
# regarding copyright ownership. The ASF licenses this file
6+
# to you under the Apache License, Version 2.0 (the
7+
# "License"); you may not use this file except in compliance
8+
# with the License. You may obtain a copy of the License at
9+
#
10+
# http://www.apache.org/licenses/LICENSE-2.0
11+
#
12+
# Unless required by applicable law or agreed to in writing,
13+
# software distributed under the License is distributed on an
14+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15+
# KIND, either express or implied. See the License for the
16+
# specific language governing permissions and limitations
17+
# under the License.
18+
#
19+
20+
name: "Build PyPI Artifacts"
21+
22+
on:
23+
workflow_call:
24+
inputs:
25+
VERSION:
26+
required: true
27+
type: string
28+
29+
jobs:
30+
pypi-build-artifacts:
31+
name: Build artifacts for PyPi on ${{ matrix.os }}
32+
runs-on: ${{ matrix.os }}
33+
strategy:
34+
matrix:
35+
os: [ ubuntu-22.04, windows-2022, macos-13, macos-14 ]
36+
37+
steps:
38+
- uses: actions/checkout@v4
39+
with:
40+
fetch-depth: 1
41+
42+
- uses: actions/setup-python@v5
43+
with:
44+
python-version: |
45+
3.9
46+
3.10
47+
3.11
48+
3.12
49+
50+
- name: Install poetry
51+
run: make install-poetry
52+
53+
- name: Set version with RC
54+
env:
55+
VERSION: ${{ inputs.VERSION }}
56+
run: python -m poetry version "${{ env.VERSION }}"
57+
58+
# Publish the source distribution with the version that's in
59+
# the repository, otherwise the tests will fail
60+
- name: Compile source distribution
61+
run: python3 -m poetry build --format=sdist
62+
if: startsWith(matrix.os, 'ubuntu')
63+
64+
- name: Build wheels
65+
uses: pypa/cibuildwheel@v2.22.0
66+
with:
67+
output-dir: wheelhouse
68+
config-file: "pyproject.toml"
69+
env:
70+
# Ignore 32 bit architectures
71+
CIBW_ARCHS: "auto64"
72+
CIBW_PROJECT_REQUIRES_PYTHON: ">=3.9,<3.13"
73+
CIBW_TEST_REQUIRES: "pytest==7.4.2 moto==5.0.1"
74+
CIBW_TEST_COMMAND: "pytest {project}/tests/avro/test_decoder.py"
75+
# Ignore tests for pypy since not all dependencies are compiled for it
76+
# and would require a local rust build chain
77+
CIBW_TEST_SKIP: "pp*"
78+
79+
- name: Add source distribution
80+
if: startsWith(matrix.os, 'ubuntu')
81+
run: ls -lah dist/* && cp dist/* wheelhouse/
82+
83+
- uses: actions/upload-artifact@v4
84+
with:
85+
name: "pypi-release-candidate-${{ matrix.os }}"
86+
path: ./wheelhouse/*
87+
88+
pypi-merge-artifacts:
89+
runs-on: ubuntu-latest
90+
needs:
91+
- pypi-build-artifacts
92+
steps:
93+
- name: Merge Artifacts
94+
uses: actions/upload-artifact/merge@v4
95+
with:
96+
name: "pypi-release-candidate-${{ inputs.VERSION }}"
97+
pattern: pypi-release-candidate*
98+
delete-merged: true

.github/workflows/python-ci-docs.yml

Lines changed: 13 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,14 @@
1717
# under the License.
1818
#
1919

20-
name: "Python Docs"
20+
name: "Python CI Docs"
21+
2122
on:
22-
workflow_dispatch:
23+
push:
24+
branches:
25+
- 'main'
26+
pull_request:
27+
2328

2429
concurrency:
2530
group: ${{ github.workflow }}-${{ github.ref }}
@@ -31,26 +36,12 @@ jobs:
3136

3237
steps:
3338
- uses: actions/checkout@v4
39+
- name: Install poetry
40+
run: make install-poetry
3441
- uses: actions/setup-python@v5
3542
with:
36-
python-version: ${{ matrix.python }}
43+
python-version: 3.12
3744
- name: Install
38-
working-directory: ./mkdocs
39-
run: pip install -r requirements.txt
40-
- name: Build
41-
working-directory: ./mkdocs
42-
run: mkdocs build --strict
43-
- name: Copy
44-
working-directory: ./mkdocs
45-
run: mv ./site /tmp/site
46-
- name: Push changes to gh-pages branch
47-
run: |
48-
git checkout --orphan gh-pages-tmp
49-
git rm --quiet -rf .
50-
cp -r /tmp/site/* .
51-
git config --global user.name 'GitHub Actions'
52-
git config --global user.email 'actions@github.com'
53-
echo "py.iceberg.apache.org" > CNAME
54-
git add --all
55-
git commit -m 'Publish Python docs'
56-
git push -f origin gh-pages-tmp:gh-pages || true
45+
run: make docs-install
46+
- name: Build docs
47+
run: make docs-build

0 commit comments

Comments
 (0)