From b4e00784bd871edf9897ca6e02ea7e48e0f9ef84 Mon Sep 17 00:00:00 2001 From: Charles Blackmon-Luca <20627856+charlesbluca@users.noreply.github.com> Date: Thu, 27 Apr 2023 09:22:26 -0700 Subject: [PATCH 01/13] First pass at getting architectured builds working --- conda/recipes/conda_build_config.yaml | 4 ++++ conda/recipes/meta.yaml | 13 ++++++++----- 2 files changed, 12 insertions(+), 5 deletions(-) create mode 100644 conda/recipes/conda_build_config.yaml diff --git a/conda/recipes/conda_build_config.yaml b/conda/recipes/conda_build_config.yaml new file mode 100644 index 000000000..32b2d29bc --- /dev/null +++ b/conda/recipes/conda_build_config.yaml @@ -0,0 +1,4 @@ +python: + - 3.8 + - 3.9 + - 3.10 \ No newline at end of file diff --git a/conda/recipes/meta.yaml b/conda/recipes/meta.yaml index 48e95eb08..8e5e2cc0f 100644 --- a/conda/recipes/meta.yaml +++ b/conda/recipes/meta.yaml @@ -29,18 +29,21 @@ source: git_url: ../.. build: - noarch: python script: {{ PYTHON }} -m pip install . -vv - number: 0 + number: {{ GIT_DESCRIBE_NUMBER }} + string: py{{ python | replace(".", "") }}_{{ GIT_DESCRIBE_HASH }}_{{ GIT_DESCRIBE_NUMBER }} requirements: - host: - - python >=3.6 + build: + - {{ compiler('rust') }} - maturin >=0.14,<0.15 - libprotobuf =3 + host: - pip + - python + - maturin >=0.14,<0.15 run: - - python >=3.6 + - python - pyarrow >=11.0.0 test: From 3ade17ac7ae542b7c970452e7e1eeee9aee59b38 Mon Sep 17 00:00:00 2001 From: Charles Blackmon-Luca <20627856+charlesbluca@users.noreply.github.com> Date: Thu, 27 Apr 2023 10:15:02 -0700 Subject: [PATCH 02/13] Fix RAT failures --- conda/recipes/conda_build_config.yaml | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/conda/recipes/conda_build_config.yaml b/conda/recipes/conda_build_config.yaml index 32b2d29bc..ec0b6c8dc 100644 --- a/conda/recipes/conda_build_config.yaml +++ b/conda/recipes/conda_build_config.yaml @@ -1,4 +1,21 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. + python: - 3.8 - 3.9 - - 3.10 \ No newline at end of file + - 3.10 From af8175385007b760a255f26f8a43c6ec4c32895e Mon Sep 17 00:00:00 2001 From: Charles Blackmon-Luca <20627856+charlesbluca@users.noreply.github.com> Date: Thu, 27 Apr 2023 11:48:32 -0700 Subject: [PATCH 03/13] Build add builds on windows/macOS --- .github/workflows/conda.yml | 13 +++++++++++-- conda/recipes/conda_build_config.yaml | 2 -- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/.github/workflows/conda.yml b/.github/workflows/conda.yml index 9853230de..74bcc6d44 100644 --- a/.github/workflows/conda.yml +++ b/.github/workflows/conda.yml @@ -13,8 +13,12 @@ defaults: jobs: conda: - name: Build (and optionally upload) the conda nightly - runs-on: ubuntu-latest + name: Build (and optionally upload) the conda nightly (${{ matrix.os }}) + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, windows-latest, macos-latest] steps: - uses: actions/checkout@v3 with: @@ -47,6 +51,11 @@ jobs: conda mambabuild conda/recipes \ --no-anaconda-upload \ --output-folder . + - name: Upload packages + uses: actions/upload-artifact@v3 + with: + name: conda packages built on ${{ matrix.os }} + path: */*.tar.bz2 # - name: Upload conda package # if: | # github.event_name == 'push' diff --git a/conda/recipes/conda_build_config.yaml b/conda/recipes/conda_build_config.yaml index ec0b6c8dc..84a682240 100644 --- a/conda/recipes/conda_build_config.yaml +++ b/conda/recipes/conda_build_config.yaml @@ -16,6 +16,4 @@ # under the License. python: - - 3.8 - - 3.9 - 3.10 From 1a6b8e740f36697eb154af90078c26c55857cc40 Mon Sep 17 00:00:00 2001 From: Charles Blackmon-Luca <20627856+charlesbluca@users.noreply.github.com> Date: Thu, 27 Apr 2023 11:53:14 -0700 Subject: [PATCH 04/13] Refactor artifacts upload --- .github/workflows/conda.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/conda.yml b/.github/workflows/conda.yml index 74bcc6d44..2d8e4a598 100644 --- a/.github/workflows/conda.yml +++ b/.github/workflows/conda.yml @@ -50,12 +50,12 @@ jobs: conda mambabuild conda/recipes \ --no-anaconda-upload \ - --output-folder . + --output-folder artifacts - name: Upload packages uses: actions/upload-artifact@v3 with: - name: conda packages built on ${{ matrix.os }} - path: */*.tar.bz2 + name: conda package data (${{ matrix.os }}) + path: artifacts/* # - name: Upload conda package # if: | # github.event_name == 'push' From a2d39ea106b525684903ff79b83407aa47461ca8 Mon Sep 17 00:00:00 2001 From: Charles Blackmon-Luca <20627856+charlesbluca@users.noreply.github.com> Date: Thu, 27 Apr 2023 13:35:03 -0700 Subject: [PATCH 05/13] Remove windows/macOS builds, include all py versions --- .github/workflows/conda.yml | 10 +++------- conda/recipes/conda_build_config.yaml | 2 ++ 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/.github/workflows/conda.yml b/.github/workflows/conda.yml index 2d8e4a598..d791b631e 100644 --- a/.github/workflows/conda.yml +++ b/.github/workflows/conda.yml @@ -13,12 +13,8 @@ defaults: jobs: conda: - name: Build (and optionally upload) the conda nightly (${{ matrix.os }}) - runs-on: ${{ matrix.os }} - strategy: - fail-fast: false - matrix: - os: [ubuntu-latest, windows-latest, macos-latest] + name: Build (and optionally upload) the conda nightly + runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 with: @@ -54,7 +50,7 @@ jobs: - name: Upload packages uses: actions/upload-artifact@v3 with: - name: conda package data (${{ matrix.os }}) + name: conda packages path: artifacts/* # - name: Upload conda package # if: | diff --git a/conda/recipes/conda_build_config.yaml b/conda/recipes/conda_build_config.yaml index 84a682240..ec0b6c8dc 100644 --- a/conda/recipes/conda_build_config.yaml +++ b/conda/recipes/conda_build_config.yaml @@ -16,4 +16,6 @@ # under the License. python: + - 3.8 + - 3.9 - 3.10 From d9f9e4d930cdf2aaa683cff224b053eaf2705a92 Mon Sep 17 00:00:00 2001 From: Charles Blackmon-Luca <20627856+charlesbluca@users.noreply.github.com> Date: Wed, 3 May 2023 09:05:57 -0700 Subject: [PATCH 06/13] Rename conda package to avoid collision --- conda/recipes/meta.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conda/recipes/meta.yaml b/conda/recipes/meta.yaml index 8e5e2cc0f..7270fcb29 100644 --- a/conda/recipes/meta.yaml +++ b/conda/recipes/meta.yaml @@ -15,7 +15,7 @@ # specific language governing permissions and limitations # under the License. -{% set name = "datafusion" %} +{% set name = "datafusion-python" %} {% set major_minor_patch = environ.get('GIT_DESCRIBE_TAG', '0.0.0.dev').split('.') %} {% set new_patch = major_minor_patch[2] | int + 1 %} {% set version = (major_minor_patch[:2] + [new_patch]) | join('.') + environ.get('VERSION_SUFFIX', '') %} From 21d4d0d2491b694d51407afe13598c8c61326890 Mon Sep 17 00:00:00 2001 From: Charles Blackmon-Luca <20627856+charlesbluca@users.noreply.github.com> Date: Thu, 4 May 2023 07:12:02 -0700 Subject: [PATCH 07/13] Handle licensing --- .github/workflows/conda.yml | 2 ++ conda/recipes/meta.yaml | 15 ++++++++++++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/.github/workflows/conda.yml b/.github/workflows/conda.yml index d791b631e..c4032dbc9 100644 --- a/.github/workflows/conda.yml +++ b/.github/workflows/conda.yml @@ -39,6 +39,8 @@ jobs: toolchain: stable override: true components: clippy, rustfmt + - name: Generate license file + run: python ./dev/create_license.py - name: Build conda package run: | # suffix for nightly package versions diff --git a/conda/recipes/meta.yaml b/conda/recipes/meta.yaml index 7270fcb29..a11920fa4 100644 --- a/conda/recipes/meta.yaml +++ b/conda/recipes/meta.yaml @@ -29,13 +29,16 @@ source: git_url: ../.. build: - script: {{ PYTHON }} -m pip install . -vv + script: + - cargo-bundle-licenses --format yaml --output THIRDPARTY.yml + - {{ PYTHON }} -m pip install . -vv number: {{ GIT_DESCRIBE_NUMBER }} string: py{{ python | replace(".", "") }}_{{ GIT_DESCRIBE_HASH }}_{{ GIT_DESCRIBE_NUMBER }} requirements: build: - {{ compiler('rust') }} + - cargo-bundle-licenses - maturin >=0.14,<0.15 - libprotobuf =3 host: @@ -58,5 +61,11 @@ about: home: https://arrow.apache.org/datafusion license: Apache-2.0 license_family: APACHE - license_file: LICENSE.txt - summary: Apache Arrow DataFusion Python Bindings + license_file: + - LICENSE.txt + - THIRDPARTY.yml + description: | + DataFusion is an extensible query execution framework, written in Rust, + that uses Apache Arrow as its in-memory format. + doc_url: https://arrow.apache.org/datafusion + dev_url: https://github.com/apache/arrow-datafusion From 6d2fb73e2f0dfd4686bebfe0314bd45f637374c2 Mon Sep 17 00:00:00 2001 From: Charles Blackmon-Luca <20627856+charlesbluca@users.noreply.github.com> Date: Fri, 20 Oct 2023 12:49:24 -0700 Subject: [PATCH 08/13] Update recipes to reflect recent changes --- conda/recipes/bld.bat | 7 +++++ conda/recipes/build.sh | 68 +++++++++++++++++++++++++++++++++++++++++ conda/recipes/meta.yaml | 18 +++++------ 3 files changed, 84 insertions(+), 9 deletions(-) create mode 100644 conda/recipes/bld.bat create mode 100644 conda/recipes/build.sh diff --git a/conda/recipes/bld.bat b/conda/recipes/bld.bat new file mode 100644 index 000000000..c9835878e --- /dev/null +++ b/conda/recipes/bld.bat @@ -0,0 +1,7 @@ +maturin build -vv -j %CPU_COUNT% --release --strip --manylinux off --interpreter=%PYTHON% + +FOR /F "delims=" %%i IN ('dir /s /b target\wheels\*.whl') DO set datafusion_wheel=%%i + +%PYTHON% -m pip install --no-deps %datafusion_wheel% -vv + +cargo-bundle-licenses --format yaml --output THIRDPARTY.yml diff --git a/conda/recipes/build.sh b/conda/recipes/build.sh new file mode 100644 index 000000000..056d760a1 --- /dev/null +++ b/conda/recipes/build.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +set -ex + +export RUST_BACKTRACE=full + +# See https://github.com/conda-forge/rust-feedstock/blob/master/recipe/build.sh for cc env explanation +if [ "$c_compiler" = gcc ] ; then + case "$target_platform" in + linux-64) rust_env_arch=X86_64_UNKNOWN_LINUX_GNU ;; + linux-aarch64) rust_env_arch=AARCH64_UNKNOWN_LINUX_GNU ;; + linux-ppc64le) rust_env_arch=POWERPC64LE_UNKNOWN_LINUX_GNU ;; + *) echo "unknown target_platform $target_platform" ; exit 1 ;; + esac + + export CARGO_TARGET_${rust_env_arch}_LINKER=$CC +fi + +declare -a _xtra_maturin_args + +mkdir -p $SRC_DIR/.cargo + +if [ "$target_platform" = "osx-64" ] ; then + cat <> $SRC_DIR/.cargo/config +[target.x86_64-apple-darwin] +linker = "$CC" +rustflags = [ + "-C", "link-arg=-undefined", + "-C", "link-arg=dynamic_lookup", +] + +EOF + + _xtra_maturin_args+=(--target=x86_64-apple-darwin) + +elif [ "$target_platform" = "osx-arm64" ] ; then + cat <> $SRC_DIR/.cargo/config +# Required for intermediate codegen stuff +[target.x86_64-apple-darwin] +linker = "$CC_FOR_BUILD" + +# Required for final binary artifacts for target +[target.aarch64-apple-darwin] +linker = "$CC" +rustflags = [ + "-C", "link-arg=-undefined", + "-C", "link-arg=dynamic_lookup", +] + +EOF + _xtra_maturin_args+=(--target=aarch64-apple-darwin) + + # This variable must be set to the directory containing the target's libpython DSO + export PYO3_CROSS_LIB_DIR=$PREFIX/lib + + # xref: https://github.com/PyO3/pyo3/commit/7beb2720 + export PYO3_PYTHON_VERSION=${PY_VER} + + # xref: https://github.com/conda-forge/python-feedstock/issues/621 + sed -i.bak 's,aarch64,arm64,g' $BUILD_PREFIX/venv/lib/os-patch.py + sed -i.bak 's,aarch64,arm64,g' $BUILD_PREFIX/venv/lib/platform-patch.py +fi + +maturin build -vv -j "${CPU_COUNT}" --release --strip --manylinux off --interpreter="${PYTHON}" "${_xtra_maturin_args[@]}" + +"${PYTHON}" -m pip install $SRC_DIR/target/wheels/datafusion*.whl --no-deps -vv + +cargo-bundle-licenses --format yaml --output THIRDPARTY.yml diff --git a/conda/recipes/meta.yaml b/conda/recipes/meta.yaml index 1a794f566..ed7dd7130 100644 --- a/conda/recipes/meta.yaml +++ b/conda/recipes/meta.yaml @@ -15,7 +15,7 @@ # specific language governing permissions and limitations # under the License. -{% set name = "datafusion-python" %} +{% set name = "datafusion" %} {% set major_minor_patch = environ.get('GIT_DESCRIBE_TAG', '0.0.0.dev').split('.') %} {% set new_patch = major_minor_patch[2] | int + 1 %} {% set version = (major_minor_patch[:2] + [new_patch]) | join('.') + environ.get('VERSION_SUFFIX', '') %} @@ -29,23 +29,23 @@ source: git_url: ../.. build: - script: - - cargo-bundle-licenses --format yaml --output THIRDPARTY.yml - - {{ PYTHON }} -m pip install . -vv number: {{ GIT_DESCRIBE_NUMBER }} string: py{{ python | replace(".", "") }}_{{ GIT_DESCRIBE_HASH }}_{{ GIT_DESCRIBE_NUMBER }} requirements: - host: - - python >=3.7 + build: + - python # [build_platform != target_platform] + - cross-python_{{ target_platform }} # [build_platform != target_platform] + - {{ compiler('rust') }} + - cargo-bundle-licenses - maturin >=0.15,<0.16 - libprotobuf =3 host: - - pip - python - - maturin >=0.14,<0.15 + - maturin >=0.15,<0.16 + - pip run: - - python >=3.7 + - python - pyarrow >=11.0.0 test: From 9112ae843428bbedde8f980029fc4377b0fb912c Mon Sep 17 00:00:00 2001 From: Charles Blackmon-Luca <20627856+charlesbluca@users.noreply.github.com> Date: Fri, 20 Oct 2023 12:55:06 -0700 Subject: [PATCH 09/13] Build for linux-aarch64 --- .github/workflows/conda.yml | 97 ++++++++++++++++++--------- conda/recipes/conda_build_config.yaml | 21 ------ 2 files changed, 67 insertions(+), 51 deletions(-) delete mode 100644 conda/recipes/conda_build_config.yaml diff --git a/.github/workflows/conda.yml b/.github/workflows/conda.yml index c4032dbc9..16dfd7a4e 100644 --- a/.github/workflows/conda.yml +++ b/.github/workflows/conda.yml @@ -1,7 +1,20 @@ name: Build conda nightly -on: [push, pull_request] +on: + push: + branches: + - main + pull_request: + paths: + - Cargo.toml + - Cargo.lock + - pyproject.toml + - conda/recipes/** + - .github/workflows/conda.yml + schedule: + - cron: '0 0 * * 0' -# Cancel any already running instances of this build +# When this workflow is queued, automatically cancel any previous running +# or pending jobs from the same branch concurrency: group: conda-${{ github.head_ref }} cancel-in-progress: true @@ -13,9 +26,44 @@ defaults: jobs: conda: - name: Build (and optionally upload) the conda nightly + name: "Build conda nightlies (python: ${{ matrix.python }}, arch: ${{ matrix.arch }})" runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + python: ["3.8", "3.9", "3.10"] + arch: ["linux-64", "linux-aarch64"] steps: + - name: Manage disk space + if: matrix.arch == 'linux-aarch64' + run: | + sudo mkdir -p /opt/empty_dir || true + for d in \ + /opt/ghc \ + /opt/hostedtoolcache \ + /usr/lib/jvm \ + /usr/local/.ghcup \ + /usr/local/lib/android \ + /usr/local/share/powershell \ + /usr/share/dotnet \ + /usr/share/swift \ + ; do + sudo rsync --stats -a --delete /opt/empty_dir/ $d || true + done + sudo apt-get purge -y -f firefox \ + google-chrome-stable \ + microsoft-edge-stable + sudo apt-get autoremove -y >& /dev/null + sudo apt-get autoclean -y >& /dev/null + sudo docker image prune --all --force + df -h + - name: Create swapfile + if: matrix.arch == 'linux-aarch64' + run: | + sudo fallocate -l 10GiB /swapfile || true + sudo chmod 600 /swapfile || true + sudo mkswap /swapfile || true + sudo swapon /swapfile || true - uses: actions/checkout@v3 with: fetch-depth: 0 @@ -24,45 +72,34 @@ jobs: with: miniforge-variant: Mambaforge use-mamba: true - python-version: "3.10" + python-version: "3.8" channel-priority: strict - name: Install dependencies run: | - mamba install boa conda-verify + mamba install -c conda-forge boa conda-verify which python pip list mamba list - - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: stable - override: true - components: clippy, rustfmt - - name: Generate license file - run: python ./dev/create_license.py - - name: Build conda package + - name: Build conda packages run: | # suffix for nightly package versions export VERSION_SUFFIX=a`date +%y%m%d` conda mambabuild conda/recipes \ + --python ${{ matrix.python }} \ + --variants "{target_platform: [${{ matrix.arch }}]}" \ + --error-overlinking \ + --no-test \ --no-anaconda-upload \ - --output-folder artifacts - - name: Upload packages + --output-folder packages + - name: Test conda packages + if: matrix.arch == 'linux-64' # can only test native platform packages + run: | + conda mambabuild --test packages/${{ matrix.arch }}/*.tar.bz2 + - name: Upload conda packages as artifacts uses: actions/upload-artifact@v3 with: - name: conda packages - path: artifacts/* - # - name: Upload conda package - # if: | - # github.event_name == 'push' - # && github.repository == 'apache/arrow-datafusion-python' - # env: - # ANACONDA_API_TOKEN: ${{ secrets.DASK_CONDA_TOKEN }} - # LABEL: ${{ github.ref == 'refs/heads/datafusion-sql-planner' && 'dev_datafusion' || 'dev' }} - # run: | - # # install anaconda for upload - # mamba install anaconda-client - - # anaconda upload --label $LABEL linux-64/*.tar.bz2 + name: "conda nightlies (python - ${{ matrix.python }}, arch - ${{ matrix.arch }})" + # need to install all conda channel metadata to properly install locally + path: packages/ diff --git a/conda/recipes/conda_build_config.yaml b/conda/recipes/conda_build_config.yaml deleted file mode 100644 index ec0b6c8dc..000000000 --- a/conda/recipes/conda_build_config.yaml +++ /dev/null @@ -1,21 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. - -python: - - 3.8 - - 3.9 - - 3.10 From 397036e56f9449fbe7f337275ffd1b95b1c13161 Mon Sep 17 00:00:00 2001 From: Charles Blackmon-Luca <20627856+charlesbluca@users.noreply.github.com> Date: Fri, 20 Oct 2023 12:57:02 -0700 Subject: [PATCH 10/13] Add licenses to files --- conda/recipes/bld.bat | 19 +++++++++++++++++++ conda/recipes/build.sh | 18 ++++++++++++++++++ 2 files changed, 37 insertions(+) diff --git a/conda/recipes/bld.bat b/conda/recipes/bld.bat index c9835878e..fc3ac88b3 100644 --- a/conda/recipes/bld.bat +++ b/conda/recipes/bld.bat @@ -1,3 +1,22 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + maturin build -vv -j %CPU_COUNT% --release --strip --manylinux off --interpreter=%PYTHON% FOR /F "delims=" %%i IN ('dir /s /b target\wheels\*.whl') DO set datafusion_wheel=%%i diff --git a/conda/recipes/build.sh b/conda/recipes/build.sh index 056d760a1..829dbeca8 100644 --- a/conda/recipes/build.sh +++ b/conda/recipes/build.sh @@ -1,4 +1,22 @@ #!/bin/bash +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# set -ex From e11553261f7d2ff9ebfaba7be058fada930266c5 Mon Sep 17 00:00:00 2001 From: Charles Blackmon-Luca <20627856+charlesbluca@users.noreply.github.com> Date: Fri, 20 Oct 2023 13:24:14 -0700 Subject: [PATCH 11/13] Add zlib to host deps --- conda/recipes/build.sh | 2 -- conda/recipes/meta.yaml | 1 + 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/conda/recipes/build.sh b/conda/recipes/build.sh index 829dbeca8..af640e6ca 100644 --- a/conda/recipes/build.sh +++ b/conda/recipes/build.sh @@ -20,8 +20,6 @@ set -ex -export RUST_BACKTRACE=full - # See https://github.com/conda-forge/rust-feedstock/blob/master/recipe/build.sh for cc env explanation if [ "$c_compiler" = gcc ] ; then case "$target_platform" in diff --git a/conda/recipes/meta.yaml b/conda/recipes/meta.yaml index ed7dd7130..52dac996b 100644 --- a/conda/recipes/meta.yaml +++ b/conda/recipes/meta.yaml @@ -44,6 +44,7 @@ requirements: - python - maturin >=0.15,<0.16 - pip + - zlib run: - python - pyarrow >=11.0.0 From 0d86724136b97d9f5bf46dfb8a5d9f7d5e562cde Mon Sep 17 00:00:00 2001 From: Charles Blackmon-Luca <20627856+charlesbluca@users.noreply.github.com> Date: Fri, 20 Oct 2023 14:08:11 -0700 Subject: [PATCH 12/13] Fixes to build/overlinking errors --- conda/recipes/meta.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/conda/recipes/meta.yaml b/conda/recipes/meta.yaml index 52dac996b..50494ddc8 100644 --- a/conda/recipes/meta.yaml +++ b/conda/recipes/meta.yaml @@ -36,6 +36,8 @@ requirements: build: - python # [build_platform != target_platform] - cross-python_{{ target_platform }} # [build_platform != target_platform] + - zlib # [build_platform != target_platform] + - {{ compiler('c') }} # [linux64] - {{ compiler('rust') }} - cargo-bundle-licenses - maturin >=0.15,<0.16 @@ -45,6 +47,7 @@ requirements: - maturin >=0.15,<0.16 - pip - zlib + - xz # [linux64] run: - python - pyarrow >=11.0.0 From 8d349a78da1914a0786b241830e2cd275b465c62 Mon Sep 17 00:00:00 2001 From: Charles Blackmon-Luca <20627856+charlesbluca@users.noreply.github.com> Date: Fri, 20 Oct 2023 17:40:09 -0700 Subject: [PATCH 13/13] Always include c compiler in build deps --- conda/recipes/meta.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conda/recipes/meta.yaml b/conda/recipes/meta.yaml index 50494ddc8..113e7a441 100644 --- a/conda/recipes/meta.yaml +++ b/conda/recipes/meta.yaml @@ -37,7 +37,7 @@ requirements: - python # [build_platform != target_platform] - cross-python_{{ target_platform }} # [build_platform != target_platform] - zlib # [build_platform != target_platform] - - {{ compiler('c') }} # [linux64] + - {{ compiler('c') }} - {{ compiler('rust') }} - cargo-bundle-licenses - maturin >=0.15,<0.16