Skip to content
Open
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
15 changes: 15 additions & 0 deletions recipes/pyiceberg-core/build.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
@echo on
set "PYO3_PYTHON=%PYTHON%"

set CARGO_PROFILE_RELEASE_STRIP=symbols
set CARGO_PROFILE_RELEASE_LTO=fat

set "CMAKE_GENERATOR=NMake Makefiles"
maturin build -v --jobs 1 --release --strip --manylinux off --interpreter=%PYTHON% --no-default-features || exit 1

cd bindings/python

FOR /F "delims=" %%i IN ('dir /s /b target\wheels\*.whl') DO set pyiceberg_core_wheel=%%i
%PYTHON% -m pip install --ignore-installed --no-deps %pyiceberg_core_wheel% -vv || exit 1

cargo-bundle-licenses --format yaml --output THIRDPARTY.yml || exit 1
18 changes: 18 additions & 0 deletions recipes/pyiceberg-core/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#!/bin/bash

set -euxo pipefail

export CARGO_PROFILE_RELEASE_STRIP=symbols
export CARGO_PROFILE_RELEASE_LTO=fat

export OPENSSL_DIR=$PREFIX

# Use native-tls on conda-forge
export MATURIN_PEP517_ARGS="--no-default-features"

# Run the maturin build via pip which works for direct and
# cross-compiled builds.
$PYTHON -m pip install . -vv

pushd bindings/python
cargo-bundle-licenses --format yaml --output THIRDPARTY.yml
4 changes: 4 additions & 0 deletions recipes/pyiceberg-core/conda-forge.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
build_platform:
osx_arm64: osx_64
linux_aarch64: linux_64
linux_ppc64le: linux_64
61 changes: 61 additions & 0 deletions recipes/pyiceberg-core/recipe.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
context:
name: pyiceberg-core
python_name: pyiceberg_core
version: "0.7.0"

package:
name: ${{ name|lower }}
version: ${{ version }}

source:
url: https://pypi.org/packages/source/${{ name[0] }}/${{ name }}/${{ python_name }}-${{ version }}.tar.gz
sha256: 8166883ace30a388d2f659634bec87731cad7bc52341c997fcdd4e13780e4345

build:
# only build for the minimal python version
number: 0
skip: not (match(python, python_min ~ ".*") and is_abi3)
python:
version_independent: true
requirements:
build:
- if: build_platform != target_platform
then:
- python
- cross-python_${{ target_platform }}
- maturin >=1.0,<2
- ${{ compiler('c') }}
- ${{ stdlib("c") }}
- ${{ compiler('rust') }}
- cargo-bundle-licenses
host:
- python
- if: is_abi3
then: python-abi3
- maturin >=1.2.2,<2
- pip
run:
- python

tests:
- python:
imports:
- pyiceberg_core
python_version:
- "${{ python_min }}.*"
- "*"

about:
homepage: https://github.com/apache/iceberg-rust/
license: Apache-2.0
license_file:
- LICENSE
- NOTICE
- bindings/python/THIRDPARTY.yml
summary: |
This project is used to build an iceberg-rust powered core for pyiceberg, and intended for use only by pyiceberg.
repository: https://github.com/apache/iceberg-rust/

extra:
recipe-maintainers:
- sumanth-manchala