Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
12 changes: 6 additions & 6 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ concurrency:
cancel-in-progress: true

env:
rust_msrv: "1.84.0"
rust_msrv: "1.85.0"

jobs:
check:
Expand Down Expand Up @@ -118,11 +118,11 @@ jobs:
- name: Maximize build space
uses: easimon/maximize-build-space@master
with:
remove-dotnet: 'true'
remove-android: 'true'
remove-haskell: 'true'
remove-codeql: 'true'
remove-docker-images: 'true'
remove-dotnet: "true"
remove-android: "true"
remove-haskell: "true"
remove-codeql: "true"
remove-docker-images: "true"
root-reserve-mb: 10240
temp-reserve-mb: 10240

Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,11 @@ name: Publish
on:
push:
tags:
- '*'
- "*"
workflow_dispatch:

env:
rust_msrv: "1.77.1"
rust_msrv: "1.85"

jobs:
publish:
Expand Down Expand Up @@ -57,4 +57,4 @@ jobs:
if: ${{ startsWith(github.ref, 'refs/tags/') && !contains(github.ref, '-') }}
run: cargo publish --all-features
env:
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}
76 changes: 40 additions & 36 deletions .github/workflows/release_python.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ name: Publish Python 🐍 distribution 📦 to PyPI
on:
push:
tags:
- '*'
- "*"
pull_request:
branches:
- main
Expand All @@ -29,7 +29,7 @@ on:
workflow_dispatch:

env:
rust_msrv: "1.77.1"
rust_msrv: "1.85"

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }}
Expand Down Expand Up @@ -62,33 +62,37 @@ jobs:
- { os: windows-latest }
- { os: macos-latest, target: "universal2-apple-darwin" }
- { os: ubuntu-latest, target: "x86_64" }
- { os: ubuntu-latest, target: "aarch64", manylinux: "manylinux_2_28" }
- {
os: ubuntu-latest,
target: "aarch64",
manylinux: "manylinux_2_28",
}
- { os: ubuntu-latest, target: "armv7l" }
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: 3.9
- name: Setup Rust toolchain
uses: ./.github/actions/setup-builder
with:
rust-version: ${{ env.rust_msrv }}
- uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.target }}
manylinux: ${{ matrix.manylinux || 'auto' }}
working-directory: "bindings/python"
command: build
args: --release -o dist
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-${{ matrix.os }}-${{ matrix.target }}
path: bindings/python/dist
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: 3.9
- name: Setup Rust toolchain
uses: ./.github/actions/setup-builder
with:
rust-version: ${{ env.rust_msrv }}
- uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.target }}
manylinux: ${{ matrix.manylinux || 'auto' }}
working-directory: "bindings/python"
command: build
args: --release -o dist
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-${{ matrix.os }}-${{ matrix.target }}
path: bindings/python/dist

pypi-publish:
name: Publish Python 🐍 distribution 📦 to Pypi
needs: [ sdist, wheels ]
needs: [sdist, wheels]
runs-on: ubuntu-latest
# Only publish to PyPi if the tag is not a pre-release
if: ${{ startsWith(github.ref, 'refs/tags/') && !contains(github.ref, '-') }}
Expand All @@ -98,18 +102,18 @@ jobs:
url: https://pypi.org/p/pyiceberg-core

permissions:
id-token: write # IMPORTANT: mandatory for trusted publishing
id-token: write # IMPORTANT: mandatory for trusted publishing

steps:
- name: Download all the dists
uses: actions/download-artifact@v4
with:
pattern: wheels-*
merge-multiple: true
path: bindings/python/dist
- name: Publish to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
- name: Download all the dists
uses: actions/download-artifact@v4
with:
pattern: wheels-*
merge-multiple: true
path: bindings/python/dist
- name: Publish to PyPI
uses: pypa/gh-action-pypi-publish@release/v1

with:
skip-existing: true
packages-dir: bindings/python/dist
with:
skip-existing: true
packages-dir: bindings/python/dist
110 changes: 57 additions & 53 deletions .github/workflows/release_python_nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,11 @@ name: "Nightly PyPI Build"

on:
schedule:
- cron: "0 0 * * *" # Runs at midnight UTC every day
workflow_dispatch: # Allows manual triggering
- cron: "0 0 * * *" # Runs at midnight UTC every day
workflow_dispatch: # Allows manual triggering

env:
rust_msrv: "1.77.1"
rust_msrv: "1.85"

permissions:
contents: read
Expand All @@ -40,12 +40,12 @@ jobs:

sdist:
needs: set-version
if: github.repository == 'apache/iceberg-rust' # Only run for apache repo
if: github.repository == 'apache/iceberg-rust' # Only run for apache repo
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/overwrite-package-version # Overwrite package version with timestamp

- uses: ./.github/actions/overwrite-package-version # Overwrite package version with timestamp
with:
timestamp: ${{ needs.set-version.outputs.TIMESTAMP }}

Expand All @@ -54,7 +54,7 @@ jobs:
working-directory: "bindings/python"
command: sdist
args: -o dist

- name: Upload sdist
uses: actions/upload-artifact@v4
with:
Expand All @@ -63,69 +63,73 @@ jobs:

wheels:
needs: set-version
if: github.repository == 'apache/iceberg-rust' # Only run for apache repo
if: github.repository == 'apache/iceberg-rust' # Only run for apache repo
runs-on: "${{ matrix.os }}"
strategy:
matrix:
include:
- { os: windows-latest }
- { os: macos-latest, target: "universal2-apple-darwin" }
- { os: ubuntu-latest, target: "x86_64" }
- { os: ubuntu-latest, target: "aarch64", manylinux: "manylinux_2_28" }
- {
os: ubuntu-latest,
target: "aarch64",
manylinux: "manylinux_2_28",
}
- { os: ubuntu-latest, target: "armv7l" }
steps:
- uses: actions/checkout@v4

- uses: ./.github/actions/overwrite-package-version # Overwrite package version with timestamp
with:
timestamp: ${{ needs.set-version.outputs.TIMESTAMP }}

- uses: actions/setup-python@v5
with:
python-version: 3.9

- name: Setup Rust toolchain
uses: ./.github/actions/setup-builder
with:
rust-version: ${{ env.rust_msrv }}

- uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.target }}
manylinux: ${{ matrix.manylinux || 'auto' }}
working-directory: "bindings/python"
command: build
args: --release -o dist

- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-${{ matrix.os }}-${{ matrix.target }}
path: bindings/python/dist
- uses: actions/checkout@v4

- uses: ./.github/actions/overwrite-package-version # Overwrite package version with timestamp
with:
timestamp: ${{ needs.set-version.outputs.TIMESTAMP }}

- uses: actions/setup-python@v5
with:
python-version: 3.9

- name: Setup Rust toolchain
uses: ./.github/actions/setup-builder
with:
rust-version: ${{ env.rust_msrv }}

- uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.target }}
manylinux: ${{ matrix.manylinux || 'auto' }}
working-directory: "bindings/python"
command: build
args: --release -o dist

- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-${{ matrix.os }}-${{ matrix.target }}
path: bindings/python/dist

testpypi-publish:
needs: [ sdist, wheels ]
needs: [sdist, wheels]
runs-on: ubuntu-latest

environment:
name: testpypi
url: https://test.pypi.org/p/pyiceberg-core

permissions:
id-token: write # IMPORTANT: mandatory for trusted publishing
id-token: write # IMPORTANT: mandatory for trusted publishing

steps:
- name: Download all the dists
uses: actions/download-artifact@v4
with:
pattern: wheels-*
merge-multiple: true
path: bindings/python/dist
- name: List downloaded artifacts
run: ls -R bindings/python/dist
- name: Publish to TestPyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
repository-url: https://test.pypi.org/legacy/
skip-existing: true
packages-dir: bindings/python/dist
- name: Download all the dists
uses: actions/download-artifact@v4
with:
pattern: wheels-*
merge-multiple: true
path: bindings/python/dist
- name: List downloaded artifacts
run: ls -R bindings/python/dist
- name: Publish to TestPyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
repository-url: https://test.pypi.org/legacy/
skip-existing: true
packages-dir: bindings/python/dist
4 changes: 2 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -29,14 +29,14 @@ members = [
resolver = "2"

[workspace.package]
edition = "2021"
edition = "2024"
homepage = "https://rust.iceberg.apache.org/"
version = "0.4.0"

license = "Apache-2.0"
repository = "https://github.com/apache/iceberg-rust"
# Check the MSRV policy in README.md before changing this
rust-version = "1.84"
rust-version = "1.85"

[workspace.dependencies]
anyhow = "1.0.72"
Expand Down
1 change: 1 addition & 0 deletions bindings/python/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 3 additions & 3 deletions bindings/python/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,11 @@
# under the License.

[package]
edition = "2021"
edition = "2024"
homepage = "https://rust.iceberg.apache.org"
name = "pyiceberg_core_rust"
rust-version = "1.84"
version = "0.4.0"
rust-version = "1.85"
version = "0.5.0"
# This crate is used to build python bindings, we don't want to publish it
publish = false

Expand Down
2 changes: 1 addition & 1 deletion bindings/python/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ classifiers = [
name = "pyiceberg-core"
readme = "project-description.md"
requires-python = "~=3.9"
version = "0.4.0"
version = "0.5.0"

[tool.maturin]
features = ["pyo3/extension-module"]
Expand Down
2 changes: 1 addition & 1 deletion bindings/python/src/datafusion_table_provider.rs
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@ use std::ffi::CString;
use std::sync::Arc;

use datafusion_ffi::table_provider::FFI_TableProvider;
use iceberg::TableIdent;
use iceberg::io::FileIO;
use iceberg::table::StaticTable;
use iceberg::TableIdent;
use iceberg_datafusion::table::IcebergTableProvider;
use pyo3::exceptions::PyRuntimeError;
use pyo3::prelude::*;
Expand Down
2 changes: 1 addition & 1 deletion bindings/python/src/error.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@
// specific language governing permissions and limitations
// under the License.

use pyo3::exceptions::PyValueError;
use pyo3::PyErr;
use pyo3::exceptions::PyValueError;

/// Convert an iceberg error to a python error
pub fn to_py_err(err: iceberg::Error) -> PyErr {
Expand Down
2 changes: 1 addition & 1 deletion bindings/python/src/transform.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
// specific language governing permissions and limitations
// under the License.

use arrow::array::{make_array, Array, ArrayData};
use arrow::array::{Array, ArrayData, make_array};
use arrow::pyarrow::{FromPyArrow, ToPyArrow};
use iceberg::spec::Transform;
use iceberg::transform::create_transform_function;
Expand Down
Loading
Loading