Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
112 commits
Select commit Hold shift + click to select a range
14c27cf
first attempt at init_manifests
amitgilad3 Feb 10, 2025
ee0392d
initial implementation of rewrite_manifests
amitgilad3 Feb 13, 2025
7b82638
fix lint
amitgilad3 Feb 13, 2025
15a8f6a
remove unused code
amitgilad3 Feb 13, 2025
443ffda
commit
amitgilad3 Feb 17, 2025
10affa8
1. support returning rewrite results
amitgilad3 Feb 23, 2025
82d0d3a
add test
amitgilad3 Mar 2, 2025
6913f09
fixes according to pr
amitgilad3 May 15, 2025
74e42e0
more fixes
amitgilad3 May 15, 2025
ba5ebc4
fixed comments to pr
amitgilad3 May 17, 2025
d7dd666
validate seq number
amitgilad3 May 17, 2025
98db350
remove redundant test
amitgilad3 May 17, 2025
fe4811d
Replace Deprecated (Current) OAuth2 Handling with AuthManager Impleme…
sungwy May 16, 2025
4f9ce30
Add Hugging Face filesystem support to fsspec (#1997)
lhoestq May 16, 2025
e10e81d
Build: Bump flask-cors from 5.0.1 to 6.0.0 (#2012)
dependabot[bot] May 18, 2025
981d385
Add ADLFS property `adls.account-host` (#2016)
vsdsantos May 19, 2025
b3f7d18
Build: Bump setuptools from 78.1.0 to 78.1.1 (#2027)
dependabot[bot] May 20, 2025
62cf1a7
Build: Bump fastavro from 1.10.0 to 1.11.1 (#2026)
dependabot[bot] May 20, 2025
9eec12a
Build: Bump sqlalchemy from 2.0.40 to 2.0.41 (#2025)
dependabot[bot] May 20, 2025
77f2400
Build: Bump getdaft from 0.4.14 to 0.4.15 (#2023)
dependabot[bot] May 20, 2025
a20da10
Build: Bump mypy-boto3-glue from 1.38.12 to 1.38.18 (#2021)
dependabot[bot] May 20, 2025
f42e0ca
Build: Bump huggingface-hub from 0.31.2 to 0.31.4 (#2020)
dependabot[bot] May 20, 2025
f5cc239
feat: `validate_deleted_data_files` (#1938)
jayceslesar May 20, 2025
3419faa
Build: Bump mkdocs-material from 9.6.13 to 9.6.14 (#2024)
dependabot[bot] May 20, 2025
2861881
Build: Bump cython from 3.0.12 to 3.1.1 (#2022)
dependabot[bot] May 20, 2025
0ddf3b7
Fix the CI (#2049)
Fokko May 27, 2025
741eae5
Build: Bump mypy-boto3-glue from 1.38.18 to 1.38.22 (#2038)
dependabot[bot] May 27, 2025
899d364
Build: Bump moto from 5.1.4 to 5.1.5 (#2039)
dependabot[bot] May 27, 2025
02d934f
Build: Bump pytest-mock from 3.14.0 to 3.14.1 (#2040)
dependabot[bot] May 27, 2025
84c0c98
Build: Bump getdaft from 0.4.15 to 0.4.16 (#2042)
dependabot[bot] May 27, 2025
56d5d1a
Build: Bump pydantic from 2.11.4 to 2.11.5 (#2045)
dependabot[bot] May 27, 2025
8be200d
Build: Bump coverage from 7.8.0 to 7.8.2 (#2047)
dependabot[bot] May 27, 2025
d65f7e6
Build: Bump huggingface-hub from 0.31.4 to 0.32.1 (#2046)
dependabot[bot] May 27, 2025
fd559a2
Build: Bump thrift from 0.21.0 to 0.22.0 (#2043)
dependabot[bot] May 27, 2025
d4b5f9b
Build: Bump mkdocstrings-python from 1.16.10 to 1.16.11 (#2044)
dependabot[bot] May 28, 2025
16ae0f5
Build: Bump mkdocs-autorefs from 1.4.1 to 1.4.2 (#2048)
dependabot[bot] May 28, 2025
b410ca2
Build: Bump cachetools from 5.5.2 to 6.0.0 (#2041)
dependabot[bot] May 28, 2025
767b6e8
Add `.vscode` folder to `.gitignore` (#2053)
rambleraptor May 31, 2025
6798d27
Make `validation_history` private before release (#2054)
sungwy Jun 1, 2025
7df5b81
Build: Bump datafusion from 46.0.0 to 47.0.0 (#2063)
dependabot[bot] Jun 3, 2025
71915e3
Build: Bump huggingface-hub from 0.32.2 to 0.32.3 (#2061)
dependabot[bot] Jun 3, 2025
ac2bb7e
Build: Bump getdaft from 0.4.16 to 0.4.18 (#2060)
dependabot[bot] Jun 3, 2025
1d7abed
Build: Bump pyspark from 3.5.5 to 3.5.6 (#2062)
dependabot[bot] Jun 3, 2025
dd0fbe0
Leverage Iceberg-Rust for all the transforms (#1833)
Fokko Jun 7, 2025
401cfc3
Build: Bump cython from 3.1.1 to 3.1.2 (#2081)
dependabot[bot] Jun 10, 2025
c4104cc
Build: Bump huggingface-hub from 0.32.3 to 0.32.4 (#2077)
dependabot[bot] Jun 10, 2025
cdc7f1f
Build: Bump requests from 2.32.3 to 2.32.4 (#2078)
dependabot[bot] Jun 10, 2025
1251e4b
Build: Bump duckdb from 1.2.2 to 1.3.0 (#2080)
dependabot[bot] Jun 10, 2025
bdcb4b9
Build: Bump pandas from 2.2.3 to 2.3.0 (#2079)
dependabot[bot] Jun 10, 2025
2579793
Build: Bump mkdocstrings-python from 1.16.11 to 1.16.12 (#2076)
dependabot[bot] Jun 10, 2025
e1b1ebe
Robustify boto3 session handling (DynamoDB, RestCatalog) (#2071)
jayceslesar Jun 11, 2025
8d3c147
chore: remove non-test asserts (#2082)
jayceslesar Jun 12, 2025
315a4eb
fix: glue drop_namespace to check non-iceberg tables (#2083)
geruh Jun 12, 2025
6f960b2
Add v3 structs (#2065)
b-phi Jun 13, 2025
e016922
Add Avro compression (#1976)
Fokko Jun 13, 2025
58b0caf
REST: Pass `purgeRequest` to catalog (#2086)
jayceslesar Jun 14, 2025
7761e26
Bump Ruff to the latest version (#2073)
Fokko Jun 14, 2025
4c0b549
Bump mypy in pre-commit (#2074)
Fokko Jun 14, 2025
36fd7b2
feat: support listing known catalogs (#2088)
Anton-Tarazi Jun 14, 2025
4e2bf97
fix: add metadata_properties to _construct_parameters when update hiv…
kadai0308 Jun 14, 2025
e0ceff1
change catalog default warehouse location to not use hive-style wareh…
kevinjqliu Jun 14, 2025
9e88d26
Bump PyIceberg to 0.9.1 (#2092)
Fokko Jun 14, 2025
875768f
Bump tests to Spark 3.5.6 (#2091)
Fokko Jun 14, 2025
10ed707
Bump Iceberg-Java to 1.9.1 (#2093)
Fokko Jun 14, 2025
e05c5f3
maint: use `URI` constant instead of 'uri' strings (#2094)
jayceslesar Jun 15, 2025
0e4f849
Build: Bump pypa/cibuildwheel from 2.23.3 to 3.0.0 (#2099)
dependabot[bot] Jun 17, 2025
23ebc71
Build: Bump moto from 5.1.5 to 5.1.6 (#2100)
dependabot[bot] Jun 17, 2025
26dac9d
Build: Bump cachetools from 5.5.2 to 6.1.0 (#2101)
dependabot[bot] Jun 17, 2025
bffe41f
Build: Bump huggingface-hub from 0.32.5 to 0.33.0 (#2103)
dependabot[bot] Jun 17, 2025
58b432f
Build: Bump typing-extensions from 4.13.2 to 4.14.0 (#2104)
dependabot[bot] Jun 17, 2025
283523d
Build: Bump duckdb from 1.3.0 to 1.3.1 (#2105)
dependabot[bot] Jun 17, 2025
854aeeb
Build: Bump boto3 from 1.37.3 to 1.38.27 (#2108)
dependabot[bot] Jun 17, 2025
c18279f
Build: Bump pydantic from 2.11.5 to 2.11.7 (#2107)
dependabot[bot] Jun 17, 2025
753ba70
Build: Bump coverage from 7.8.2 to 7.9.1 (#2106)
dependabot[bot] Jun 17, 2025
d4621fd
Docs: fix manifest min count to merge description (#2116)
ThomasDsantos Jun 18, 2025
2a5fb97
Prefer `FileIO` over the PyArrow `FileSystem` (#2115)
Fokko Jun 18, 2025
f1ef03d
Add `ExpireSnapshots` (#1880)
ForeverAngry Jun 19, 2025
d988323
Build: Bump third party deps (#2127)
Fokko Jun 20, 2025
bb45772
Support ADLS with Pyarrow file IO (#2111)
NikitaMatskevich Jun 20, 2025
64d6241
Improve upsert memory pressure (#1995)
koenvo Jun 20, 2025
555898a
Type mismatch Avro zstd decompression (#2128)
zhongyujiang Jun 20, 2025
907876a
Expose S3 retry strategy (#2110)
Fokko Jun 20, 2025
c55b550
Refactor `Makefile` and run s3/adls/gcs tests (#2125)
kevinjqliu Jun 20, 2025
4357b53
perf: optimize `table.add_files` and `inspect.files` (#2133)
jayceslesar Jun 22, 2025
2925917
Run `test_create_table_transaction` for Rest V1 tables (#2137)
Fokko Jun 23, 2025
a742534
Add warehouse parameter to the REST Catalog doc (#2066)
elca-anh Jun 23, 2025
7cb8b1b
Build: Bump mypy-boto3-glue from 1.38.22 to 1.38.42 (#2144)
dependabot[bot] Jun 24, 2025
f1d2af2
test: use `create or replace` (#2140)
kevinjqliu Jun 24, 2025
75eaea3
Update assertion for testing locally (#2113)
kevinjqliu Jun 24, 2025
8c47fb3
Validate added data files for snapshot compatibility (#2050)
kaushiksrini Jun 24, 2025
f027a86
Add `hive.kerberos-service-name` configuration option (#2032) (#2141)
gardenia Jun 24, 2025
cdd6e81
Relax REST client `/v1/config` response constraints (#2148)
ccancellieri Jun 26, 2025
aa9db67
dep: update `multidict`, previous version yanked (#2157)
kevinjqliu Jun 29, 2025
cd10a62
Build: Bump mypy-boto3-dynamodb from 1.38.4 to 1.39.0 (#2163)
dependabot[bot] Jul 1, 2025
d158d00
Build: Bump mypy-boto3-glue from 1.38.42 to 1.39.0 (#2164)
dependabot[bot] Jul 1, 2025
030d676
Build: Bump huggingface-hub from 0.33.0 to 0.33.1 (#2165)
dependabot[bot] Jul 1, 2025
aa3dde6
Build: Bump pyroaring from 1.0.1 to 1.0.2 (#2162)
dependabot[bot] Jul 1, 2025
3a37b52
Feature: Write to branches (#941)
vinjai Jul 2, 2025
0b06400
Hive: update hive storage descriptor after commit schema change (#2036)
frankliee Jul 3, 2025
fb8b82d
fix: Propagate Table properties to Glue (#2097)
summermousa-vendia Jul 3, 2025
c29a360
Documented `row_filter` expressions (#1862)
norton120 Jul 3, 2025
daa887d
Fix the CI (#2171)
Fokko Jul 4, 2025
5d67b67
add iceberg datafusion integration (#2075)
kevinjqliu Jul 6, 2025
f11ebbd
Cleanup in `expression-dsl.md` (#2168)
Fokko Jul 6, 2025
117e2be
Docs: Condens Python API docs (#2139)
Fokko Jul 6, 2025
c7cb34c
feat: add support for setting and removing table properties on consol…
blinkseb Jul 6, 2025
9583732
first attempt at init_manifests
amitgilad3 Feb 10, 2025
06211b8
initial implementation of rewrite_manifests
amitgilad3 Feb 13, 2025
31efcbc
fix lint
amitgilad3 Feb 13, 2025
b3487ac
1. support returning rewrite results
amitgilad3 Feb 23, 2025
0ad1eeb
lint and rebase
amitgilad3 Jul 7, 2025
9bdbc86
linting errors
amitgilad3 Jul 7, 2025
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: 1 addition & 1 deletion .github/workflows/pypi-build-artifacts.yml
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ jobs:
if: startsWith(matrix.os, 'ubuntu')

- name: Build wheels
uses: pypa/cibuildwheel@v2.23.3
uses: pypa/cibuildwheel@v3.0.0
with:
output-dir: wheelhouse
config-file: "pyproject.toml"
Expand Down
34 changes: 29 additions & 5 deletions .github/workflows/python-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -62,10 +62,12 @@ jobs:
run: sudo apt-get update && sudo apt-get install -y libkrb5-dev # for kerberos
- name: Install
run: make install-dependencies
- name: Linters
- name: Run linters
run: make lint
- name: Tests
run: make test-coverage-unit
- name: Run unit tests with coverage
run: COVERAGE=1 make test
- name: Generate coverage report (85%) # Coverage threshold should only increase over time — never decrease it!
run: COVERAGE_FAIL_UNDER=85 make coverage-report

integration-test:
runs-on: ubuntu-22.04
Expand All @@ -79,8 +81,30 @@ jobs:
run: sudo apt-get update && sudo apt-get install -y libkrb5-dev # for kerberos
- name: Install
run: make install
- name: Run integration tests
run: make test-coverage-integration

- name: Run integration tests with coverage
run: COVERAGE=1 make test-integration
- name: Show debug logs
if: ${{ failure() }}
run: docker compose -f dev/docker-compose.yml logs

- name: Run s3 integration tests with coverage
run: COVERAGE=1 make test-s3
- name: Show debug logs
if: ${{ failure() }}
run: docker compose -f dev/docker-compose.yml logs

- name: Run adls integration tests with coverage
run: COVERAGE=1 make test-adls
- name: Show debug logs
if: ${{ failure() }}
run: docker compose -f dev/docker-compose-azurite.yml logs

- name: Run gcs integration tests with coverage
run: COVERAGE=1 make test-gcs
- name: Show debug logs
if: ${{ failure() }}
run: docker compose -f dev/docker-compose-gcs-server.yml logs

- name: Generate coverage report (75%) # Coverage threshold should only increase over time — never decrease it!
run: COVERAGE_FAIL_UNDER=75 make coverage-report
2 changes: 1 addition & 1 deletion .github/workflows/svn-build-artifacts.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ jobs:
if: startsWith(matrix.os, 'ubuntu')

- name: Build wheels
uses: pypa/cibuildwheel@v2.23.3
uses: pypa/cibuildwheel@v3.0.0
with:
output-dir: wheelhouse
config-file: "pyproject.toml"
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ coverage.xml
.project
.settings
bin/
.vscode/

# Hive/metastore files
metastore_db/
Expand Down
4 changes: 2 additions & 2 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -27,13 +27,13 @@ repos:
- id: check-yaml
- id: check-ast
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.8.6
rev: v0.11.13
hooks:
- id: ruff
args: [ --fix, --exit-non-zero-on-fix ]
- id: ruff-format
- repo: https://github.com/pre-commit/mirrors-mypy
rev: v1.14.1
rev: v1.16.0
hooks:
- id: mypy
args:
Expand Down
141 changes: 89 additions & 52 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -14,106 +14,143 @@
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
# ========================
# Configuration Variables
# ========================

PYTEST_ARGS ?= -v # Override with e.g. PYTEST_ARGS="-vv --tb=short"
COVERAGE ?= 0 # Set COVERAGE=1 to enable coverage: make test COVERAGE=1
COVERAGE_FAIL_UNDER ?= 85 # Minimum coverage % to pass: make coverage-report COVERAGE_FAIL_UNDER=70

help: ## Display this help
@awk 'BEGIN {FS = ":.*##"; printf "\nUsage:\n make \033[36m\033[0m\n"} /^[a-zA-Z_-]+:.*?##/ { printf " \033[36m%-20s\033[0m %s\n", $$1, $$2 } /^##@/ { printf "\n\033[1m%s\033[0m\n", substr($$0, 5) } ' $(MAKEFILE_LIST)
ifeq ($(COVERAGE),1)
TEST_RUNNER = poetry run coverage run --parallel-mode --source=pyiceberg -m
else
TEST_RUNNER = poetry run
endif

POETRY_VERSION = 2.1.1
install-poetry: ## Ensure Poetry is installed and the correct version is being used.

# ============
# Help Section
# ============

##@ General

help: ## Display this help message
@awk 'BEGIN {FS = ":.*##"; printf "\nUsage:\n make \033[36m<target>\033[0m\n"} /^[a-zA-Z_-]+:.*?##/ { printf " \033[36m%-25s\033[0m %s\n", $$1, $$2 } /^##@/ { printf "\n\033[1m%s\033[0m\n", substr($$0, 5) } ' $(MAKEFILE_LIST)

# ==================
# Installation Tasks
# ==================

##@ Setup

install-poetry: ## Ensure Poetry is installed at the specified version
@if ! command -v poetry &> /dev/null; then \
echo "Poetry could not be found. Installing..."; \
echo "Poetry not found. Installing..."; \
pip install --user poetry==$(POETRY_VERSION); \
else \
INSTALLED_VERSION=$$(pip show poetry | grep Version | awk '{print $$2}'); \
if [ "$$INSTALLED_VERSION" != "$(POETRY_VERSION)" ]; then \
echo "Poetry version $$INSTALLED_VERSION does not match required version $(POETRY_VERSION). Updating..."; \
echo "Updating Poetry to version $(POETRY_VERSION)..."; \
pip install --user --upgrade poetry==$(POETRY_VERSION); \
else \
echo "Poetry version $$INSTALLED_VERSION is already installed."; \
fi \
echo "Poetry version $(POETRY_VERSION) already installed."; \
fi; \
fi

install-dependencies: ## Install dependencies including dev, docs, and all extras
install-dependencies: ## Install all dependencies including extras
poetry install --all-extras

install: | install-poetry install-dependencies
install: install-poetry install-dependencies ## Install Poetry and dependencies

# ===============
# Code Validation
# ===============

##@ Quality

check-license: ## Check license headers
./dev/check-license

lint: ## lint
lint: ## Run code linters via pre-commit
poetry run pre-commit run --all-files

test: ## Run all unit tests, can add arguments with PYTEST_ARGS="-vv"
poetry run pytest tests/ -m "(unmarked or parametrize) and not integration" ${PYTEST_ARGS}
# ===============
# Testing Section
# ===============

test-s3: # Run tests marked with s3, can add arguments with PYTEST_ARGS="-vv"
sh ./dev/run-minio.sh
poetry run pytest tests/ -m s3 ${PYTEST_ARGS}
##@ Testing

test-integration: | test-integration-setup test-integration-exec ## Run all integration tests, can add arguments with PYTEST_ARGS="-vv"
test: ## Run all unit tests (excluding integration)
$(TEST_RUNNER) pytest tests/ -m "(unmarked or parametrize) and not integration" $(PYTEST_ARGS)

test-integration-setup: # Prepare the environment for integration
test-integration: test-integration-setup test-integration-exec ## Run integration tests

test-integration-setup: ## Start Docker services for integration tests
docker compose -f dev/docker-compose-integration.yml kill
docker compose -f dev/docker-compose-integration.yml rm -f
docker compose -f dev/docker-compose-integration.yml up -d
sleep 10
docker compose -f dev/docker-compose-integration.yml cp ./dev/provision.py spark-iceberg:/opt/spark/provision.py
docker compose -f dev/docker-compose-integration.yml exec -T spark-iceberg ipython ./provision.py

test-integration-exec: # Execute integration tests, can add arguments with PYTEST_ARGS="-vv"
poetry run pytest tests/ -v -m integration ${PYTEST_ARGS}
test-integration-exec: ## Run integration tests (excluding provision)
$(TEST_RUNNER) pytest tests/ -m integration $(PYTEST_ARGS)

test-integration-rebuild:
test-integration-rebuild: ## Rebuild integration Docker services from scratch
docker compose -f dev/docker-compose-integration.yml kill
docker compose -f dev/docker-compose-integration.yml rm -f
docker compose -f dev/docker-compose-integration.yml build --no-cache

test-adls: ## Run tests marked with adls, can add arguments with PYTEST_ARGS="-vv"
test-s3: ## Run tests marked with @pytest.mark.s3
sh ./dev/run-minio.sh
$(TEST_RUNNER) pytest tests/ -m s3 $(PYTEST_ARGS)

test-adls: ## Run tests marked with @pytest.mark.adls
sh ./dev/run-azurite.sh
poetry run pytest tests/ -m adls ${PYTEST_ARGS}
$(TEST_RUNNER) pytest tests/ -m adls $(PYTEST_ARGS)

test-gcs: ## Run tests marked with gcs, can add arguments with PYTEST_ARGS="-vv"
test-gcs: ## Run tests marked with @pytest.mark.gcs
sh ./dev/run-gcs-server.sh
poetry run pytest tests/ -m gcs ${PYTEST_ARGS}
$(TEST_RUNNER) pytest tests/ -m gcs $(PYTEST_ARGS)

test-coverage-unit: # Run test with coverage for unit tests, can add arguments with PYTEST_ARGS="-vv"
poetry run coverage run --source=pyiceberg/ --data-file=.coverage.unit -m pytest tests/ -v -m "(unmarked or parametrize) and not integration" ${PYTEST_ARGS}

test-coverage-integration: # Run test with coverage for integration tests, can add arguments with PYTEST_ARGS="-vv"
docker compose -f dev/docker-compose-integration.yml kill
docker compose -f dev/docker-compose-integration.yml rm -f
docker compose -f dev/docker-compose-integration.yml up -d
sh ./dev/run-azurite.sh
sh ./dev/run-gcs-server.sh
sleep 10
docker compose -f dev/docker-compose-integration.yml cp ./dev/provision.py spark-iceberg:/opt/spark/provision.py
docker compose -f dev/docker-compose-integration.yml exec -T spark-iceberg ipython ./provision.py
poetry run coverage run --source=pyiceberg/ --data-file=.coverage.integration -m pytest tests/ -v -m integration ${PYTEST_ARGS}
test-coverage: COVERAGE=1
test-coverage: test test-integration test-s3 test-adls test-gcs coverage-report ## Run all tests with coverage and report

test-coverage: | test-coverage-unit test-coverage-integration ## Run all tests with coverage including unit and integration tests
poetry run coverage combine .coverage.unit .coverage.integration
poetry run coverage report -m --fail-under=90
coverage-report: ## Combine and report coverage
poetry run coverage combine
poetry run coverage report -m --fail-under=$(COVERAGE_FAIL_UNDER)
poetry run coverage html
poetry run coverage xml

# ================
# Documentation
# ================

clean: ## Clean up the project Python working environment
@echo "Cleaning up Cython and Python cached files"
@rm -rf build dist *.egg-info
@find . -name "*.so" -exec echo Deleting {} \; -delete
@find . -name "*.pyc" -exec echo Deleting {} \; -delete
@find . -name "__pycache__" -exec echo Deleting {} \; -exec rm -rf {} +
@find . -name "*.pyd" -exec echo Deleting {} \; -delete
@find . -name "*.pyo" -exec echo Deleting {} \; -delete
@echo "Cleanup complete"
##@ Documentation

docs-install:
docs-install: ## Install docs dependencies
poetry install --with docs

docs-serve:
docs-serve: ## Serve local docs preview (hot reload)
poetry run mkdocs serve -f mkdocs/mkdocs.yml

docs-build:
docs-build: ## Build the static documentation site
poetry run mkdocs build -f mkdocs/mkdocs.yml --strict

# ===================
# Project Maintenance
# ===================

##@ Maintenance

clean: ## Remove build artifacts and caches
@echo "Cleaning up Cython and Python cached files..."
@rm -rf build dist *.egg-info
@find . -name "*.so" -exec echo Deleting {} \; -delete
@find . -name "*.pyc" -exec echo Deleting {} \; -delete
@find . -name "__pycache__" -exec echo Deleting {} \; -exec rm -rf {} +
@find . -name "*.pyd" -exec echo Deleting {} \; -delete
@find . -name "*.pyo" -exec echo Deleting {} \; -delete
@echo "Cleanup complete."
6 changes: 3 additions & 3 deletions dev/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -37,10 +37,10 @@ RUN mkdir -p ${HADOOP_HOME} && mkdir -p ${SPARK_HOME} && mkdir -p /home/iceberg/
WORKDIR ${SPARK_HOME}

# Remember to also update `tests/conftest`'s spark setting
ENV SPARK_VERSION=3.5.4
ENV SPARK_VERSION=3.5.6
ENV ICEBERG_SPARK_RUNTIME_VERSION=3.5_2.12
ENV ICEBERG_VERSION=1.9.0
ENV PYICEBERG_VERSION=0.9.0
ENV ICEBERG_VERSION=1.9.1
ENV PYICEBERG_VERSION=0.9.1

RUN curl --retry 5 -s -C - https://archive.apache.org/dist/spark/spark-${SPARK_VERSION}/spark-${SPARK_VERSION}-bin-hadoop3.tgz -o spark-${SPARK_VERSION}-bin-hadoop3.tgz \
&& tar xzf spark-${SPARK_VERSION}-bin-hadoop3.tgz --directory /opt/spark --strip-components 1 \
Expand Down
2 changes: 1 addition & 1 deletion dev/docker-compose-integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ services:
- AWS_REGION=us-east-1
entrypoint: >
/bin/sh -c "
until (/usr/bin/mc config host add minio http://minio:9000 admin password) do echo '...waiting...' && sleep 1; done;
until (/usr/bin/mc alias set minio http://minio:9000 admin password) do echo '...waiting...' && sleep 1; done;
/usr/bin/mc mb minio/warehouse;
/usr/bin/mc policy set public minio/warehouse;
tail -f /dev/null
Expand Down
2 changes: 1 addition & 1 deletion dev/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ services:
- AWS_REGION=us-east-1
entrypoint: >
/bin/sh -c "
until (/usr/bin/mc config host add minio http://minio:9000 admin password) do echo '...waiting...' && sleep 1; done;
until (/usr/bin/mc alias set minio http://minio:9000 admin password) do echo '...waiting...' && sleep 1; done;
/usr/bin/mc rm -r --force minio/warehouse;
/usr/bin/mc mb minio/warehouse;
/usr/bin/mc policy set public minio/warehouse;
Expand Down
5 changes: 5 additions & 0 deletions dev/hive/core-site.xml
Original file line number Diff line number Diff line change
Expand Up @@ -50,4 +50,9 @@
<name>fs.s3a.path.style.access</name>
<value>true</value>
</property>
<property>
<name>hive.metastore.disallow.incompatible.col.type.changes</name>
<value>false</value>
</property>

</configuration>
6 changes: 1 addition & 5 deletions dev/provision.py
Original file line number Diff line number Diff line change
Expand Up @@ -273,13 +273,9 @@
"""
)

# There is an issue with CREATE OR REPLACE
# https://github.com/apache/iceberg/issues/8756
spark.sql(f"DROP TABLE IF EXISTS {catalog_name}.default.test_table_version")

spark.sql(
f"""
CREATE TABLE {catalog_name}.default.test_table_version (
CREATE OR REPLACE TABLE {catalog_name}.default.test_table_version (
dt date,
number integer,
letter string
Expand Down
2 changes: 2 additions & 0 deletions mkdocs/docs/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@
- [Configuration](configuration.md)
- [CLI](cli.md)
- [API](api.md)
- [Row Filter Syntax](row-filter-syntax.md)
- [Expression DSL](expression-dsl.md)
- [Contributing](contributing.md)
- [Community](community.md)
- Releases
Expand Down
Loading