This is an automated email from the ASF dual-hosted git repository.

agrove pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/datafusion-ballista.git


The following commit(s) were added to refs/heads/main by this push:
     new 81cfa632 updated maturin version and ccargo build to build yml (#1136)
81cfa632 is described below

commit 81cfa632f94ef794cc9f35c81676cf9a010c1dbe
Author: Trevor <[email protected]>
AuthorDate: Wed Nov 27 13:16:22 2024 -0800

    updated maturin version and ccargo build to build yml (#1136)
    
    * updated maturin version and ccargo build to build yml
    
    * adding pyproject updates
    
    * updated maturin version and ccargo build to build yml
    
    * updated maturin version and ccargo build to build yml
    
    * updated maturin version and ccargo build to build yml
    
    * updated maturin version and ccargo build to build yml
    
    * updated maturin version and ccargo build to build yml
    
    * updated maturin version and ccargo build to build yml
    
    * updated maturin version and ccargo build to build yml
    
    * updated maturin version and ccargo build to build yml
    
    * updated maturin version and ccargo build to build yml
    
    * updated maturin version and ccargo build to build yml
    
    * updated maturin version and ccargo build to build yml
    
    * updated maturin version and ccargo build to build yml
    
    * updated maturin version and ccargo build to build yml
    
    * updated maturin version and ccargo build to build yml
    
    * updated maturin version and ccargo build to build yml
    
    * updated maturin version and ccargo build to build yml
    
    * updated maturin version and ccargo build to build yml
    
    * updated maturin version and ccargo build to build yml
    
    * updated maturin version and ccargo build to build yml
---
 .github/workflows/build.yml | 312 ++++++++++++++++++++++++++++++++++++++++++++
 python/pyproject.toml       |   6 +-
 2 files changed, 315 insertions(+), 3 deletions(-)

diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
new file mode 100644
index 00000000..ce92d5a5
--- /dev/null
+++ b/.github/workflows/build.yml
@@ -0,0 +1,312 @@
+# 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.
+
+name: Python Release Build
+on:
+  pull_request:
+    branches: ["main"]
+  push:
+    tags: ["*-rc*"]
+    branches: ["branch-*"]
+
+jobs:
+  build:
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v4
+      - name: Install Python
+        uses: actions/setup-python@v5
+        with:
+          python-version: "3.11"
+      - name: Install dependencies
+        run: |
+          python -m pip install --upgrade pip
+          pip install ruff
+      # Update output format to enable automatic inline annotations.
+#      - name: Run Ruff
+#        run: |
+#          ruff check --output-format=github python/
+#          ruff format --check python/
+
+  generate-license:
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v4
+      - uses: actions-rs/toolchain@v1
+        with:
+          profile: minimal
+          toolchain: stable
+          override: true
+      - name: Generate license file
+        run: python ./dev/create_license.py
+      - uses: actions/upload-artifact@v4
+        with:
+          name: python-wheel-license
+          path: LICENSE.txt
+
+  build-python-mac-win:
+    needs: [generate-license]
+    name: Mac/Win
+    runs-on: ${{ matrix.os }}
+    strategy:
+      fail-fast: false
+      matrix:
+        python-version: ["3.10"]
+        os: [macos-latest, windows-latest]
+    steps:
+      - uses: actions/checkout@v4
+
+      - uses: actions/setup-python@v5
+        with:
+          python-version: ${{ matrix.python-version }}
+
+      - uses: actions-rs/toolchain@v1
+        with:
+          toolchain: stable
+
+      - name: Upgrade pip
+        run: python -m pip install --upgrade pip
+
+      - name: Install maturin
+        run: pip install maturin==1.5.1
+
+      - run: rm LICENSE.txt
+      - name: Download LICENSE.txt
+        uses: actions/download-artifact@v4
+        with:
+          name: python-wheel-license
+          path: .
+
+      - name: Install Protoc
+        uses: arduino/setup-protoc@v3
+        with:
+          version: "27.4"
+          repo-token: ${{ secrets.GITHUB_TOKEN }}
+
+      - name: Cargo build
+        run: cd python && cargo build 
+
+      - name: Build Python package
+        run: cd python && maturin build --release --strip
+
+      - name: List Windows wheels
+        if: matrix.os == 'windows-latest'
+        run: dir python\target\wheels\
+        # since the runner is dynamic shellcheck (from actionlint) can't infer 
this is powershell
+        # so we specify it explicitly
+        shell: powershell
+
+      - name: List Mac wheels
+        if: matrix.os != 'windows-latest'
+        run: cd python/target/wheels/
+
+      - name: Archive wheels
+        uses: actions/upload-artifact@v4
+        with:
+          name: dist-${{ matrix.os  }}
+          path: python/target/wheels/*
+
+  build-macos-x86_64:
+    needs: [generate-license]
+    name: Mac x86_64
+    runs-on: macos-13
+    strategy:
+      fail-fast: false
+      matrix:
+        python-version: ["3.10"]
+    steps:
+      - uses: actions/checkout@v4
+
+      - uses: actions/setup-python@v5
+        with:
+          python-version: ${{ matrix.python-version }}
+
+      - uses: actions-rs/toolchain@v1
+        with:
+          toolchain: stable
+
+      - name: Upgrade pip
+        run: python -m pip install --upgrade pip
+
+      - name: Install maturin
+        run: pip install maturin==1.5.1
+
+      - run: rm LICENSE.txt
+      - name: Download LICENSE.txt
+        uses: actions/download-artifact@v4
+        with:
+          name: python-wheel-license
+          path: .
+
+      - name: Install Protoc
+        uses: arduino/setup-protoc@v3
+        with:
+          version: "27.4"
+          repo-token: ${{ secrets.GITHUB_TOKEN }}
+      - name: Cargo build
+        run: cd python && cargo build
+      - name: Build Python package
+        run: cd python && maturin build --release --strip
+      - name: List Mac wheels
+        run: cd python/target/wheels/
+
+      - name: Archive wheels
+        uses: actions/upload-artifact@v4
+        with:
+          name: dist-macos-aarch64
+          path: python/target/wheels/*
+
+  build-manylinux-x86_64:
+    needs: [generate-license]
+    name: Manylinux x86_64
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v4
+      - run: rm LICENSE.txt
+      
+      - name: Download LICENSE.txt
+        uses: actions/download-artifact@v4
+        with:
+          name: python-wheel-license
+          path: .
+
+      - run: cat LICENSE.txt
+      - name: Install Protoc
+        uses: arduino/setup-protoc@v3
+        with:
+          version: "27.4"
+          repo-token: ${{ secrets.GITHUB_TOKEN }}
+
+      - name: Upgrade pip
+        run: python -m pip install --upgrade pip
+
+      - name: Install maturin
+        run: pip install maturin==1.5.1
+      - name: Cargo Build
+        run: cd python && cargo build
+      
+      - name: Build Python package
+        run: cd python && maturin build --release --strip
+      - name: Archive wheels
+        uses: actions/upload-artifact@v4
+        with:
+          name: dist-manylinux-x86_64
+          path: python/target/wheels/*
+
+  build-manylinux-aarch64:
+    needs: [generate-license]
+    name: Manylinux arm64
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v4
+      - run: rm LICENSE.txt
+      - name: Download LICENSE.txt
+        uses: actions/download-artifact@v4
+        with:
+          name: python-wheel-license
+          path: .
+
+      - run: cat LICENSE.txt
+       
+      - name: Install Protoc
+        uses: arduino/setup-protoc@v3
+        with:
+          version: "27.4"
+          repo-token: ${{ secrets.GITHUB_TOKEN }}
+      - name: Upgrade pip
+        run: python -m pip install --upgrade pip
+
+      - name: Install maturin
+        run: pip install maturin==1.5.1
+      - name: Cargo Build
+        run: cd python && cargo build
+      
+      - name: Build Python package
+        run: cd python && maturin build --release --strip
+      - name: Archive wheels
+        uses: actions/upload-artifact@v4
+        with:
+          name: dist-manylinux-aarch64
+          path: python/target/wheels/*
+
+  build-sdist:
+    needs: [generate-license]
+    name: Source distribution
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v4
+      - run: rm LICENSE.txt
+      - name: Download LICENSE.txt
+        uses: actions/download-artifact@v4
+        with:
+          name: python-wheel-license
+          path: .
+          
+      - run: cat LICENSE.txt
+   
+      - name: Install Protoc
+        uses: arduino/setup-protoc@v3
+        with:
+          version: "27.4"
+          repo-token: ${{ secrets.GITHUB_TOKEN }}
+      - name: Upgrade pip
+        run: python -m pip install --upgrade pip
+
+      - name: Install maturin
+        run: pip install maturin==1.5.1
+      - name: Cargo Build
+        run: cd python && cargo build
+      - name: Build Python package
+        run: cd python && maturin build --release --sdist --out dist --strip
+      
+      - name: Assert sdist build does not generate wheels
+        run: |
+            if [ "$(ls -A target/wheels)" ]; then
+              echo "Error: Sdist build generated wheels"
+              exit 1
+            else
+              echo "Directory is clean"
+            fi
+        shell: bash
+  
+  merge-build-artifacts:
+    runs-on: ubuntu-latest
+    needs:
+      - build-python-mac-win
+      - build-macos-x86_64
+      - build-manylinux-x86_64
+      - build-manylinux-aarch64
+      - build-sdist
+    steps:
+      - name: Merge Build Artifacts
+        uses: actions/upload-artifact/merge@v4
+        with:
+          name: dist
+          pattern: dist-*
+  
+  # NOTE: PyPI publish needs to be done manually for now after release passed 
the vote
+  # release:
+  #   name: Publish in PyPI
+  #   needs: [build-manylinux, build-python-mac-win]
+  #   runs-on: ubuntu-latest
+  #   steps:
+  #     - uses: actions/download-artifact@v4
+  #     - name: Publish to PyPI
+  #       uses: pypa/gh-action-pypi-publish@master
+  #       with:
+  #         user: __token__
+  #         password: ${{ secrets.pypi_password }}
diff --git a/python/pyproject.toml b/python/pyproject.toml
index 2d06b225..cce88fd3 100644
--- a/python/pyproject.toml
+++ b/python/pyproject.toml
@@ -16,7 +16,7 @@
 # under the License.
 
 [build-system]
-requires = ["maturin>=0.15,<0.16"]
+requires = ["maturin>=1.5.1,<1.6.0"]
 build-backend = "maturin"
 
 [project]
@@ -24,7 +24,7 @@ name = "ballista"
 description = "Python client for Apache Arrow Ballista Distributed SQL Query 
Engine"
 readme = "README.md"
 license = {file = "LICENSE.txt"}
-requires-python = ">=3.6"
+requires-python = ">=3.7"
 keywords = ["ballista", "sql", "rust", "distributed"]
 classifier = [
     "Development Status :: 2 - Pre-Alpha",
@@ -61,4 +61,4 @@ include = [
 ]
 exclude = [".github/**", "ci/**", ".asf.yaml"]
 # Require Cargo.lock is up to date
-locked = true
\ No newline at end of file
+locked = true


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to