This is an automated email from the ASF dual-hosted git repository. milenkovicm 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 d1295f7d improve rust workflows without cache (#1275) d1295f7d is described below commit d1295f7d1ab5c40a433ab17a344494f39b18f0af Author: Huy1Ng <huy.nguyen7994+git...@gmail.com> AuthorDate: Sun Jul 27 12:18:07 2025 +0700 improve rust workflows without cache (#1275) * clean up CI * streamline workflow concurrency --- .github/actions/setup-builder/action.yaml | 4 +- .../action.yaml | 24 +- .github/actions/setup-rust-runtime/action.yaml | 42 ++++ .../action.yaml | 23 +- .github/workflows/build.yml | 5 + .github/workflows/cancel.yml | 46 ---- .github/workflows/dev.yml | 4 + .github/workflows/dev_pr.yml | 4 + .github/workflows/docker.yml | 4 + .github/workflows/rust.yml | 276 ++++++--------------- Cargo.toml | 11 + 11 files changed, 173 insertions(+), 270 deletions(-) diff --git a/.github/actions/setup-builder/action.yaml b/.github/actions/setup-builder/action.yaml index 13a3008b..eb9c52c3 100644 --- a/.github/actions/setup-builder/action.yaml +++ b/.github/actions/setup-builder/action.yaml @@ -25,7 +25,7 @@ inputs: runs: using: "composite" steps: - - name: Install Build Dependencies + - name: Install protobuf compiler shell: bash run: | apt-get update @@ -37,3 +37,5 @@ runs: rustup toolchain install ${{ inputs.rust-version }} rustup default ${{ inputs.rust-version }} rustup component add rustfmt + - name: Configure rust runtime env + uses: ./.github/actions/setup-rust-runtime diff --git a/.github/actions/setup-builder/action.yaml b/.github/actions/setup-macos-builder/action.yaml similarity index 61% copy from .github/actions/setup-builder/action.yaml copy to .github/actions/setup-macos-builder/action.yaml index 13a3008b..fffdab16 100644 --- a/.github/actions/setup-builder/action.yaml +++ b/.github/actions/setup-macos-builder/action.yaml @@ -15,8 +15,8 @@ # specific language governing permissions and limitations # under the License. -name: Prepare Rust Builder -description: 'Prepare Rust Build Environment' +name: Prepare Rust Builder for MacOS +description: 'Prepare Rust Build Environment for MacOS' inputs: rust-version: description: 'version of rust to install (e.g. stable)' @@ -25,15 +25,23 @@ inputs: runs: using: "composite" steps: - - name: Install Build Dependencies + - name: Install protobuf compiler shell: bash run: | - apt-get update - apt-get install -y protobuf-compiler + mkdir -p $HOME/d/protoc + cd $HOME/d/protoc + export PROTO_ZIP="protoc-29.1-osx-x86_64.zip" + curl -LO https://github.com/protocolbuffers/protobuf/releases/download/v29.1/$PROTO_ZIP + unzip $PROTO_ZIP + echo "$HOME/d/protoc/bin" >> $GITHUB_PATH + export PATH=$PATH:$HOME/d/protoc/bin + protoc --version - name: Setup Rust toolchain shell: bash run: | - echo "Installing ${{ inputs.rust-version }}" - rustup toolchain install ${{ inputs.rust-version }} - rustup default ${{ inputs.rust-version }} + rustup update stable + rustup toolchain install stable + rustup default stable rustup component add rustfmt + - name: Configure rust runtime env + uses: ./.github/actions/setup-rust-runtime diff --git a/.github/actions/setup-rust-runtime/action.yaml b/.github/actions/setup-rust-runtime/action.yaml new file mode 100644 index 00000000..b6fb2c89 --- /dev/null +++ b/.github/actions/setup-rust-runtime/action.yaml @@ -0,0 +1,42 @@ +# 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: Setup Rust Runtime +description: 'Setup Rust Runtime Environment' +runs: + using: "composite" + steps: + # https://github.com/apache/datafusion/issues/15535 + # disabled because neither version nor git hash works with apache github policy + #- name: Run sccache-cache + # uses: mozilla-actions/sccache-action@65101d47ea8028ed0c98a1cdea8dd9182e9b5133 # v0.0.8 + - name: Configure runtime env + shell: bash + # do not produce debug symbols to keep memory usage down + # hardcoding other profile params to avoid profile override values + # More on Cargo profiles https://doc.rust-lang.org/cargo/reference/profiles.html?profile-settings#profile-settings + # + # Set debuginfo=line-tables-only as debuginfo=0 causes immensely slow build + # See for more details: https://github.com/rust-lang/rust/issues/119560 + # + # readd the following to the run below once sccache-cache is re-enabled + # echo "RUSTC_WRAPPER=sccache" >> $GITHUB_ENV + # echo "SCCACHE_GHA_ENABLED=true" >> $GITHUB_ENV + run: | + echo "RUST_BACKTRACE=1" >> $GITHUB_ENV + echo "RUSTFLAGS=-C debuginfo=line-tables-only -C incremental=false" >> $GITHUB_ENV + diff --git a/.github/actions/setup-builder/action.yaml b/.github/actions/setup-windows-builder/action.yaml similarity index 60% copy from .github/actions/setup-builder/action.yaml copy to .github/actions/setup-windows-builder/action.yaml index 13a3008b..a0304168 100644 --- a/.github/actions/setup-builder/action.yaml +++ b/.github/actions/setup-windows-builder/action.yaml @@ -15,8 +15,8 @@ # specific language governing permissions and limitations # under the License. -name: Prepare Rust Builder -description: 'Prepare Rust Build Environment' +name: Prepare Rust Builder for Windows +description: 'Prepare Rust Build Environment for Windows' inputs: rust-version: description: 'version of rust to install (e.g. stable)' @@ -25,15 +25,22 @@ inputs: runs: using: "composite" steps: - - name: Install Build Dependencies + - name: Install protobuf compiler shell: bash run: | - apt-get update - apt-get install -y protobuf-compiler + mkdir -p $HOME/d/protoc + cd $HOME/d/protoc + export PROTO_ZIP="protoc-29.1-win64.zip" + curl -LO https://github.com/protocolbuffers/protobuf/releases/download/v29.1/$PROTO_ZIP + unzip $PROTO_ZIP + export PATH=$PATH:$HOME/d/protoc/bin + protoc.exe --version - name: Setup Rust toolchain shell: bash run: | - echo "Installing ${{ inputs.rust-version }}" - rustup toolchain install ${{ inputs.rust-version }} - rustup default ${{ inputs.rust-version }} + # Avoid self update to avoid CI failures: https://github.com/apache/datafusion/issues/9653 + rustup toolchain install stable --no-self-update + rustup default stable rustup component add rustfmt + - name: Configure rust runtime env + uses: ./.github/actions/setup-rust-runtime diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 1ebffa3e..b2ab8836 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -16,6 +16,11 @@ # under the License. name: Python Release Build + +concurrency: + group: ${{ github.repository }}-${{ github.head_ref || github.sha }}-${{ github.workflow }} + cancel-in-progress: true + on: pull_request: branches: ["main"] diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index e1c6ed98..00000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,46 +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. - -name: Cancel stale runs - -on: - workflow_run: - # The name of another workflow (whichever one) that always runs on PRs - workflows: ['Dev'] - types: ['requested'] - -jobs: - cancel-stale-workflow-runs: - name: "Cancel stale workflow runs" - runs-on: ubuntu-latest - steps: - # Unfortunately, we need to define a separate cancellation step for - # each workflow where we want to cancel stale runs. - - uses: potiuk/cancel-workflow-runs@master - name: "Cancel stale Dev runs" - with: - cancelMode: allDuplicates - token: ${{ secrets.GITHUB_TOKEN }} - workflowFileName: dev.yml - skipEventTypes: '["push", "schedule"]' - - uses: potiuk/cancel-workflow-runs@master - name: "Cancel stale Rust runs" - with: - cancelMode: allDuplicates - token: ${{ secrets.GITHUB_TOKEN }} - workflowFileName: rust.yml - skipEventTypes: '["push", "schedule"]' diff --git a/.github/workflows/dev.yml b/.github/workflows/dev.yml index 84950373..97ce8e9b 100644 --- a/.github/workflows/dev.yml +++ b/.github/workflows/dev.yml @@ -18,6 +18,10 @@ name: Dev on: [push, pull_request] +concurrency: + group: ${{ github.repository }}-${{ github.head_ref || github.sha }}-${{ github.workflow }} + cancel-in-progress: true + jobs: rat: name: Release Audit Tool (RAT) diff --git a/.github/workflows/dev_pr.yml b/.github/workflows/dev_pr.yml index b8ee4ed9..87368111 100644 --- a/.github/workflows/dev_pr.yml +++ b/.github/workflows/dev_pr.yml @@ -17,6 +17,10 @@ name: Labeler +concurrency: + group: ${{ github.repository }}-${{ github.head_ref || github.sha }}-${{ github.workflow }} + cancel-in-progress: true + on: pull_request_target: types: diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 3a0825fd..4c8d81ad 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -18,6 +18,10 @@ name: Docker on: [pull_request, push] +concurrency: + group: ${{ github.repository }}-${{ github.head_ref || github.sha }}-${{ github.workflow }} + cancel-in-progress: true + jobs: build_docker: name: Run Build Docker Script diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index c056f5e9..abe9d3f4 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -17,166 +17,100 @@ name: Rust +concurrency: + group: ${{ github.repository }}-${{ github.head_ref || github.sha }}-${{ github.workflow }} + cancel-in-progress: true + on: - # always trigger push: + paths-ignore: + - "docs/**" + - "**.md" + - ".github/ISSUE_TEMPLATE/**" + - ".github/pull_request_template.md" pull_request: + paths-ignore: + - "docs/**" + - "**.md" + - ".github/ISSUE_TEMPLATE/**" + - ".github/pull_request_template.md" + # manual trigger + # https://docs.github.com/en/actions/managing-workflow-runs/manually-running-a-workflow + workflow_dispatch: jobs: - # build the library, a compilation step used by multiple steps below + # Check crate compiles and base cargo check passes linux-build-lib: - name: Build Libraries on AMD64 Rust ${{ matrix.rust }} + name: linux build test runs-on: ubuntu-latest - strategy: - matrix: - arch: [amd64] - rust: [stable] container: - image: ${{ matrix.arch }}/rust - env: - # Disable full debug symbol generation to speed up CI build and keep memory down - # "1" means line tables only, which is useful for panic tracebacks. - RUSTFLAGS: "-C debuginfo=1" + image: amd64/rust steps: - uses: actions/checkout@v4 - - name: Cache Cargo - uses: actions/cache@v4 - with: - # these represent dependencies downloaded by cargo - # and thus do not depend on the OS, arch nor rust version. - path: /github/home/.cargo - key: cargo-cache- - - name: Cache Rust dependencies - uses: actions/cache@v4 with: - # these represent compiled steps of both dependencies and arrow - # and thus are specific for a particular OS, arch and rust version. - path: /github/home/target - key: ${{ runner.os }}-${{ matrix.arch }}-target-cache-${{ matrix.rust }}- + submodules: true - name: Setup Rust toolchain uses: ./.github/actions/setup-builder - with: - rust-version: ${{ matrix.rust }} - - name: Build workspace in release mode + - name: Prepare cargo build run: | - cargo build --release - ls -l /github/home/target/release - env: - CARGO_HOME: "/github/home/.cargo" - CARGO_TARGET_DIR: "/github/home/target" - - name: Save artifacts - uses: actions/upload-artifact@v4 - with: - name: rust-artifacts - path: | - /github/home/target/release/ballista-scheduler - /github/home/target/release/ballista-executor + # Adding `--locked` here to assert that the `Cargo.lock` file is up to + # date with the manifest. When this fails, please make sure to commit + # the changes to `Cargo.lock` after building with the updated manifest. + cargo check --profile ci --workspace --all-targets --locked - # test the crate linux-test: - name: Test Workspace on AMD64 Rust ${{ matrix.rust }} - needs: [linux-build-lib] + name: test linux crates runs-on: ubuntu-latest - strategy: - matrix: - arch: [amd64] - rust: [stable] container: - image: ${{ matrix.arch }}/rust - env: - # Disable full debug symbol generation to speed up CI build and keep memory down - # "1" means line tables only, which is useful for panic tracebacks. - RUSTFLAGS: "-C debuginfo=1" + image: amd64/rust steps: - uses: actions/checkout@v4 with: submodules: true - - name: Install protobuf compiler - shell: bash - run: | - apt-get -qq update && apt-get -y -qq install protobuf-compiler - protoc --version - - name: Cache Cargo - uses: actions/cache@v4 - with: - path: /github/home/.cargo - # this key equals the ones on `linux-build-lib` for re-use - key: cargo-cache- - - name: Cache Rust dependencies - uses: actions/cache@v4 - with: - path: /github/home/target - # this key equals the ones on `linux-build-lib` for re-use - key: ${{ runner.os }}-${{ matrix.arch }}-target-cache-${{ matrix.rust }} - name: Setup Rust toolchain uses: ./.github/actions/setup-builder - with: - rust-version: ${{ matrix.rust }} - name: Run tests run: | export PATH=$PATH:$HOME/d/protoc/bin export ARROW_TEST_DATA=$(pwd)/testing/data export PARQUET_TEST_DATA=$(pwd)/parquet-testing/data - cargo test --features=testcontainers + cargo test --profile ci --features=testcontainers env: CARGO_HOME: "/github/home/.cargo" CARGO_TARGET_DIR: "/github/home/target" + + linux-build-workspace: + name: check linux workspace + runs-on: ubuntu-latest + container: + image: amd64/rust + steps: + - uses: actions/checkout@v4 + with: + submodules: true + - name: Setup Rust toolchain + uses: ./.github/actions/setup-builder - name: Try to compile when `--no-default-features` is selected run: | export PATH=$PATH:$HOME/d/protoc/bin export ARROW_TEST_DATA=$(pwd)/testing/data export PARQUET_TEST_DATA=$(pwd)/parquet-testing/data - cargo build -p ballista-scheduler -p ballista-executor -p ballista-core -p ballista --no-default-features + cargo check --profile ci -p ballista-scheduler -p ballista-executor -p ballista-core -p ballista --no-default-features --locked env: CARGO_HOME: "/github/home/.cargo" CARGO_TARGET_DIR: "/github/home/target" - # run ballista tests ballista-test: - name: Test Ballista on AMD64 Rust ${{ matrix.rust }} - needs: [linux-build-lib] + name: test linux balista runs-on: ubuntu-latest - strategy: - matrix: - arch: [amd64] - rust: [stable] container: - image: ${{ matrix.arch }}/rust - env: - # Disable full debug symbol generation to speed up CI build and keep memory down - # "1" means line tables only, which is useful for panic tracebacks. - RUSTFLAGS: "-C debuginfo=1" + image: amd64/rust steps: - uses: actions/checkout@v4 with: submodules: true - - name: Install protobuf compiler - shell: bash - run: | - mkdir -p $HOME/d/protoc - cd $HOME/d/protoc - export PROTO_ZIP="protoc-21.4-linux-x86_64.zip" - curl -LO https://github.com/protocolbuffers/protobuf/releases/download/v21.4/$PROTO_ZIP - unzip $PROTO_ZIP - export PATH=$PATH:$HOME/d/protoc/bin - protoc --version - - name: Cache Cargo - uses: actions/cache@v4 - with: - path: /github/home/.cargo - # this key equals the ones on `linux-build-lib` for re-use - key: cargo-cache- - - name: Cache Rust dependencies - uses: actions/cache@v4 - with: - path: /github/home/target - # this key equals the ones on `linux-build-lib` for re-use - key: ${{ runner.os }}-${{ matrix.arch }}-target-cache-${{ matrix.rust }} - name: Setup Rust toolchain uses: ./.github/actions/setup-builder - with: - rust-version: ${{ matrix.rust }} - # Ballista is currently not part of the main workspace so requires a separate test step - name: Run Ballista tests run: | export PATH=$PATH:$HOME/d/protoc/bin @@ -184,108 +118,62 @@ jobs: export PARQUET_TEST_DATA=$(pwd)/parquet-testing/data cd ballista # Ensure also compiles in standalone mode - cargo test --no-default-features --features standalone + cargo test --profile ci --no-default-features --features standalone --locked env: CARGO_HOME: "/github/home/.cargo" CARGO_TARGET_DIR: "/github/home/target" - windows-and-macos: - name: Test on ${{ matrix.os }} Rust ${{ matrix.rust }} - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [windows-latest, macos-latest] - rust: [stable] + windows-test: + name: windows test + runs-on: windows-latest steps: - uses: actions/checkout@v4 with: submodules: true - - name: Install protobuf macos compiler - shell: bash - run: | - mkdir -p $HOME/d/protoc - cd $HOME/d/protoc - export PROTO_ZIP="protoc-21.4-osx-x86_64.zip" - curl -LO https://github.com/protocolbuffers/protobuf/releases/download/v21.4/$PROTO_ZIP - unzip $PROTO_ZIP - echo "$HOME/d/protoc/bin" >> $GITHUB_PATH - export PATH=$PATH:$HOME/d/protoc/bin - protoc --version - if: ${{matrix.os == 'macos-latest'}} - - name: Install protobuf windows compiler + - name: Setup Rust toolchain + uses: ./.github/actions/setup-windows-builder + - name: Run tests shell: bash run: | - mkdir -p $HOME/d/protoc - cd $HOME/d/protoc - export PROTO_ZIP="protoc-21.4-win64.zip" - curl -LO https://github.com/protocolbuffers/protobuf/releases/download/v21.4/$PROTO_ZIP - unzip $PROTO_ZIP export PATH=$PATH:$HOME/d/protoc/bin - protoc.exe --version - if: ${{matrix.os == 'windows-latest'}} - # TODO: this won't cache anything, which is expensive. Setup this action - # with a OS-dependent path. + export ARROW_TEST_DATA=$(pwd)/testing/data + export PARQUET_TEST_DATA=$(pwd)/parquet-testing/data + export TMP=$(pwd)/.temp + mkdir -p "$TMP" + cargo test --profile ci --locked + + macos-test: + name: macos test + runs-on: macos-latest + steps: + - uses: actions/checkout@v4 + with: + submodules: true - name: Setup Rust toolchain - run: | - rustup toolchain install ${{ matrix.rust }} - rustup default ${{ matrix.rust }} - rustup component add rustfmt + uses: ./.github/actions/setup-macos-builder - name: Run tests shell: bash run: | export PATH=$PATH:$HOME/d/protoc/bin export ARROW_TEST_DATA=$(pwd)/testing/data export PARQUET_TEST_DATA=$(pwd)/parquet-testing/data - export TMP=$(pwd)/.temp - mkdir -p "$TMP" - cargo test - env: - # do not produce debug symbols to keep memory usage down - RUSTFLAGS: "-C debuginfo=0" + cargo test --profile ci --locked # verify that the benchmark queries return the correct results verify-benchmark-results: name: verify benchmark results (amd64) - needs: [linux-build-lib] runs-on: ubuntu-latest - strategy: - matrix: - arch: [amd64] - rust: [stable] container: - image: ${{ matrix.arch }}/rust - env: - # Disable full debug symbol generation to speed up CI build and keep memory down - # "1" means line tables only, which is useful for panic tracebacks. - RUSTFLAGS: "-C debuginfo=1" + image: amd64/rust steps: - uses: actions/checkout@v4 with: submodules: true - - name: Install protobuf compiler - shell: bash - run: | - apt-get -qq update && apt-get -y -qq install protobuf-compiler - protoc --version - - name: Cache Cargo - uses: actions/cache@v4 - with: - path: /github/home/.cargo - # this key equals the ones on `linux-build-lib` for re-use - key: cargo-cache- - - name: Cache Rust dependencies - uses: actions/cache@v4 - with: - path: /github/home/target - # this key equals the ones on `linux-build-lib` for re-use - key: ${{ runner.os }}-${{ matrix.arch }}-target-cache-${{ matrix.rust }} - name: Setup Rust toolchain uses: ./.github/actions/setup-builder - with: - rust-version: ${{ matrix.rust }} - name: Verify that benchmark queries return expected results run: | - cargo test --package ballista-benchmarks --profile release-nonlto --features=ci -- --test-threads=1 + cargo test --package ballista-benchmarks --profile release-nonlto --features=ci --locked -- --test-threads=1 lint: name: Lint @@ -307,7 +195,6 @@ jobs: clippy: name: Clippy - needs: [linux-build-lib] runs-on: ubuntu-latest strategy: matrix: @@ -323,18 +210,6 @@ jobs: - uses: actions/checkout@v4 with: submodules: true - - name: Cache Cargo - uses: actions/cache@v4 - with: - path: /github/home/.cargo - # this key equals the ones on `linux-build-lib` for re-use - key: cargo-cache- - - name: Cache Rust dependencies - uses: actions/cache@v4 - with: - path: /github/home/target - # this key equals the ones on `linux-build-lib` for re-use - key: ${{ runner.os }}-${{ matrix.arch }}-target-cache-${{ matrix.rust }} - name: Setup Rust toolchain uses: ./.github/actions/setup-builder with: @@ -350,7 +225,6 @@ jobs: cargo-toml-formatting-checks: name: Check Cargo.toml formatting - needs: [linux-build-lib] runs-on: ubuntu-latest strategy: matrix: @@ -366,18 +240,6 @@ jobs: - uses: actions/checkout@v4 with: submodules: true - - name: Cache Cargo - uses: actions/cache@v4 - with: - path: /github/home/.cargo - # this key equals the ones on `linux-build-lib` for re-use - key: cargo-cache- - - name: Cache Rust dependencies - uses: actions/cache@v4 - with: - path: /github/home/target - # this key equals the ones on `linux-build-lib` for re-use - key: ${{ runner.os }}-${{ matrix.arch }}-target-cache-${{ matrix.rust }} - name: Setup Rust toolchain uses: ./.github/actions/setup-builder with: @@ -441,4 +303,4 @@ jobs: # CARGO_TARGET_DIR: "/home/runner/target" # - name: Report coverage # continue-on-error: true -# run: bash <(curl -s https://codecov.io/bash) +# run: bash <(curl -s https://codecov.io/bash) \ No newline at end of file diff --git a/Cargo.toml b/Cargo.toml index 858c949a..af2ac673 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -77,3 +77,14 @@ opt-level = 3 overflow-checks = false panic = 'unwind' rpath = false + +[profile.ci] +inherits = "dev" +incremental = false + +# ci turns off debug info, etc. for dependencies to allow for smaller binaries making caching more effective +[profile.ci.package."*"] +debug = false +debug-assertions = false +strip = "debuginfo" +incremental = false \ No newline at end of file --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@datafusion.apache.org For additional commands, e-mail: commits-h...@datafusion.apache.org