You are viewing a plain text version of this content. The canonical link for it is here.
Posted to github@arrow.apache.org by GitBox <gi...@apache.org> on 2020/12/02 20:39:37 UTC

[GitHub] [arrow] jorgecarleitao opened a new pull request #8821: ARROW-10792: [Rust] [CI] Modularize builds for faster build and smaller caches

jorgecarleitao opened a new pull request #8821:
URL: https://github.com/apache/arrow/pull/8821


   This PR refactors the CI with the purpose of making it faster, easier to extend, and more robust. The main consequences of this PR are:
   
   1. build time of non-integration jobs reduced by half (11m vs 20m)
   2. coverage is now part of all builds
   3. significantly reduced the risk of cache misses, and the size of the caches
   4. macos now have caching in place, like other builds
   5. significantly easier to extend to other architectures, os, etc.
   
   The overall design of this PR is that most steps of the CI process should be independent of all others as much as possible, so that
   
   * they can run in parallel
   * it is clearer where the failure is
   * it is easier to extend the build to other variations (arch, os, flags, etc.)
   
   Intrinsically, the CI pipeline is just a DAG where certain jobs benefit from shared compute and thus depend on common nodes, while others run independently.
   
   This PR re-writes most of our CI as simple github jobs that share caches whenever makes sense, thereby describing the aforementioned DAG. Consequently, many of the sequential steps are now executed in parallel, causing the items describe above.
   
   There are two tasks depending on rust that are not in the `rust.yaml`:
   
   * lint, that happens via archery
   * integration tests, that happens via archery
   
   The bottleneck of a green pipeline are the integration tests, that currently re-compile a significant number of components (as I already flagged on the mailing list), but at least we get faster failures for compilation (2.5m) and clippy (4.5m).


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] codecov-io edited a comment on pull request #8821: ARROW-10792: [Rust] [CI] Modularize builds for faster build and smaller caches

Posted by GitBox <gi...@apache.org>.
codecov-io edited a comment on pull request #8821:
URL: https://github.com/apache/arrow/pull/8821#issuecomment-737491170


   # [Codecov](https://codecov.io/gh/apache/arrow/pull/8821?src=pr&el=h1) Report
   > Merging [#8821](https://codecov.io/gh/apache/arrow/pull/8821?src=pr&el=desc) (fe124f3) into [master](https://codecov.io/gh/apache/arrow/commit/322cd01fff055c4d4a03839fe5ac435948e75b09?el=desc) (322cd01) will **decrease** coverage by `31.72%`.
   > The diff coverage is `58.22%`.
   
   [![Impacted file tree graph](https://codecov.io/gh/apache/arrow/pull/8821/graphs/tree.svg?width=650&height=150&src=pr&token=LpTCFbqVT1)](https://codecov.io/gh/apache/arrow/pull/8821?src=pr&el=tree)
   
   ```diff
   @@             Coverage Diff             @@
   ##           master    #8821       +/-   ##
   ===========================================
   - Coverage   84.54%   52.82%   -31.73%     
   ===========================================
     Files         185      165       -20     
     Lines       46176    29837    -16339     
   ===========================================
   - Hits        39041    15761    -23280     
   - Misses       7135    14076     +6941     
   ```
   
   
   | [Impacted Files](https://codecov.io/gh/apache/arrow/pull/8821?src=pr&el=tree) | Coverage Δ | |
   |---|---|---|
   | [rust/arrow/src/array/transform/boolean.rs](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree#diff-cnVzdC9hcnJvdy9zcmMvYXJyYXkvdHJhbnNmb3JtL2Jvb2xlYW4ucnM=) | `76.92% <0.00%> (-23.08%)` | :arrow_down: |
   | [rust/arrow/src/array/transform/list.rs](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree#diff-cnVzdC9hcnJvdy9zcmMvYXJyYXkvdHJhbnNmb3JtL2xpc3QucnM=) | `36.36% <0.00%> (-8.09%)` | :arrow_down: |
   | [rust/arrow/src/compute/kernels/comparison.rs](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree#diff-cnVzdC9hcnJvdy9zcmMvY29tcHV0ZS9rZXJuZWxzL2NvbXBhcmlzb24ucnM=) | `96.27% <ø> (ø)` | |
   | [rust/arrow/src/compute/kernels/filter.rs](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree#diff-cnVzdC9hcnJvdy9zcmMvY29tcHV0ZS9rZXJuZWxzL2ZpbHRlci5ycw==) | `58.72% <ø> (-2.55%)` | :arrow_down: |
   | [rust/arrow/src/compute/kernels/limit.rs](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree#diff-cnVzdC9hcnJvdy9zcmMvY29tcHV0ZS9rZXJuZWxzL2xpbWl0LnJz) | `100.00% <ø> (ø)` | |
   | [rust/arrow/src/record\_batch.rs](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree#diff-cnVzdC9hcnJvdy9zcmMvcmVjb3JkX2JhdGNoLnJz) | `84.04% <ø> (-6.31%)` | :arrow_down: |
   | [rust/datafusion/src/logical\_plan/builder.rs](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree#diff-cnVzdC9kYXRhZnVzaW9uL3NyYy9sb2dpY2FsX3BsYW4vYnVpbGRlci5ycw==) | `0.00% <0.00%> (-85.10%)` | :arrow_down: |
   | [rust/datafusion/src/logical\_plan/plan.rs](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree#diff-cnVzdC9kYXRhZnVzaW9uL3NyYy9sb2dpY2FsX3BsYW4vcGxhbi5ycw==) | `0.00% <ø> (-83.69%)` | :arrow_down: |
   | [...tafusion/src/physical\_plan/distinct\_expressions.rs](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree#diff-cnVzdC9kYXRhZnVzaW9uL3NyYy9waHlzaWNhbF9wbGFuL2Rpc3RpbmN0X2V4cHJlc3Npb25zLnJz) | `0.00% <0.00%> (-90.91%)` | :arrow_down: |
   | [rust/datafusion/src/physical\_plan/functions.rs](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree#diff-cnVzdC9kYXRhZnVzaW9uL3NyYy9waHlzaWNhbF9wbGFuL2Z1bmN0aW9ucy5ycw==) | `0.00% <ø> (-82.13%)` | :arrow_down: |
   | ... and [156 more](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree-more) | |
   
   ------
   
   [Continue to review full report at Codecov](https://codecov.io/gh/apache/arrow/pull/8821?src=pr&el=continue).
   > **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)
   > `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
   > Powered by [Codecov](https://codecov.io/gh/apache/arrow/pull/8821?src=pr&el=footer). Last update [17805f3...8803c13](https://codecov.io/gh/apache/arrow/pull/8821?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] kszucs commented on a change in pull request #8821: ARROW-10792: [Rust] [CI] Modularize builds for faster build and smaller caches

Posted by GitBox <gi...@apache.org>.
kszucs commented on a change in pull request #8821:
URL: https://github.com/apache/arrow/pull/8821#discussion_r536302049



##########
File path: .github/workflows/rust.yml
##########
@@ -21,145 +21,286 @@ on:
   push:
     paths:
       - '.github/workflows/rust.yml'
-      - 'ci/docker/*rust*'
-      - 'ci/scripts/rust_*.sh'
-      - 'ci/scripts/util_*.sh'
       - 'rust/**'
       - 'format/Flight.proto'
   pull_request:
     paths:
       - '.github/workflows/rust.yml'
-      - 'ci/docker/*rust*'
-      - 'ci/scripts/rust_*.sh'
-      - 'ci/scripts/util_*.sh'
       - 'rust/**'
       - 'format/Flight.proto'
 
-env:
-  DOCKER_BUILDKIT: 0
-  COMPOSE_DOCKER_CLI_BUILD: 1
-  ARCHERY_DOCKER_USER: ${{ secrets.DOCKERHUB_USER }}
-  ARCHERY_DOCKER_PASSWORD: ${{ secrets.DOCKERHUB_TOKEN }}
-
 jobs:
 
-  debian:
-    name: AMD64 Debian 10 Rust ${{ matrix.rust }}
+  # build the library, a compilation step used by multiple steps below
+  linux-build-lib:
+    name: Linux ${{ matrix.arch }} Rust ${{ matrix.rust }} build libraries

Review comment:
       I see, lowercase is fine then.




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] jorgecarleitao commented on a change in pull request #8821: ARROW-10792: [Rust] [CI] Modularize builds for faster build and smaller caches

Posted by GitBox <gi...@apache.org>.
jorgecarleitao commented on a change in pull request #8821:
URL: https://github.com/apache/arrow/pull/8821#discussion_r536518433



##########
File path: docker-compose.yml
##########
@@ -903,35 +902,6 @@ services:
       /bin/bash -c "
         /arrow/ci/scripts/r_sanitize.sh /arrow"
 
-  ################################ Rust #######################################
-
-  debian-rust:

Review comment:
       I have added a section on the README on how to compile, which includes both pure `cargo` and `docker` variants.




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] jorgecarleitao commented on a change in pull request #8821: ARROW-10792: [Rust] [CI] Modularize builds for faster build and smaller caches

Posted by GitBox <gi...@apache.org>.
jorgecarleitao commented on a change in pull request #8821:
URL: https://github.com/apache/arrow/pull/8821#discussion_r536358928



##########
File path: .github/workflows/rust.yml
##########
@@ -21,145 +21,286 @@ on:
   push:
     paths:
       - '.github/workflows/rust.yml'
-      - 'ci/docker/*rust*'
-      - 'ci/scripts/rust_*.sh'
-      - 'ci/scripts/util_*.sh'
       - 'rust/**'
       - 'format/Flight.proto'
   pull_request:
     paths:
       - '.github/workflows/rust.yml'
-      - 'ci/docker/*rust*'
-      - 'ci/scripts/rust_*.sh'
-      - 'ci/scripts/util_*.sh'
       - 'rust/**'
       - 'format/Flight.proto'
 
-env:
-  DOCKER_BUILDKIT: 0
-  COMPOSE_DOCKER_CLI_BUILD: 1
-  ARCHERY_DOCKER_USER: ${{ secrets.DOCKERHUB_USER }}
-  ARCHERY_DOCKER_PASSWORD: ${{ secrets.DOCKERHUB_TOKEN }}
-
 jobs:
 
-  debian:
-    name: AMD64 Debian 10 Rust ${{ matrix.rust }}
+  # build the library, a compilation step used by multiple steps below
+  linux-build-lib:
+    name: Linux ${{ matrix.arch }} Rust ${{ matrix.rust }} build libraries
     runs-on: ubuntu-latest
-    if: ${{ !contains(github.event.pull_request.title, 'WIP') }}
     strategy:
-      fail-fast: false
       matrix:
+        arch: [amd64]
         rust: [nightly-2020-11-24]
-    env:
-      RUST: ${{ matrix.rust }}
+    container:
+      image: ${{ matrix.arch }}/rust
     steps:
-      - name: Checkout Arrow
-        uses: actions/checkout@v2
+      - uses: actions/checkout@v2
+      - name: Cache Cargo
+        uses: actions/cache@v2
         with:
-          fetch-depth: 0
-      - name: Fetch Submodules and Tags
-        shell: bash
-        run: ci/scripts/util_checkout.sh
-      - name: Free Up Disk Space
-        shell: bash
-        run: ci/scripts/util_cleanup.sh
-      - name: Cache Docker Volumes
-        uses: actions/cache@v1
-        with:
-          path: .docker
-          key: debian-10-rust-${{ hashFiles('rust/**/**.rs', 'rust/**/Cargo.toml') }}
-          restore-keys: debian-10-rust-
-      - name: Setup Python
-        uses: actions/setup-python@v1
-        with:
-          python-version: 3.8
-      - name: Setup Archery
-        run: pip install -e dev/archery[docker]
-      - name: Execute Docker Build
+          # 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@v2
+        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 }}-
+      - uses: actions-rs/toolchain@v1
+        with:
+          toolchain: ${{ matrix.rust }}
+          default: true
+          components: rustfmt
+      - name: Build
         run: |
-          sudo sysctl -w kernel.core_pattern="core.%e.%p"
-          ulimit -c unlimited
-          archery docker run debian-rust
-      - name: Fix Cache Permissions
-        run: sudo chmod -R o+r .docker
-      - name: Docker Push
-        if: success() && github.event_name == 'push' && github.repository == 'apache/arrow'
-        continue-on-error: true
-        shell: bash
-        run: archery docker push debian-rust
+          export CARGO_HOME="/github/home/.cargo"
+          export CARGO_TARGET_DIR="/github/home/target"
+          cd rust
+          cargo build
 
-  windows:
-    name: AMD64 Windows 2019 Rust ${{ matrix.rust }}
-    runs-on: windows-latest
-    if: ${{ !contains(github.event.pull_request.title, 'WIP') }}
+  # test the crate
+  linux-test:
+    name: Linux ${{ matrix.arch }} Rust ${{ matrix.rust }} test workspace
+    needs: [linux-build-lib]
+    runs-on: ubuntu-latest
     strategy:
-      fail-fast: false
       matrix:
+        arch: [amd64]
         rust: [nightly-2020-11-24]
+    container:
+      image: ${{ matrix.arch }}/rust
+      env:
+        ARROW_TEST_DATA: /__w/arrow/arrow/testing/data

Review comment:
       It is the absolute path to where the container action places the checkout code on. I tried using relative paths but I was unable to make it work.




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] kszucs commented on a change in pull request #8821: ARROW-10792: [Rust] [CI] Modularize builds for faster build and smaller caches

Posted by GitBox <gi...@apache.org>.
kszucs commented on a change in pull request #8821:
URL: https://github.com/apache/arrow/pull/8821#discussion_r536304032



##########
File path: .github/workflows/rust.yml
##########
@@ -21,145 +21,286 @@ on:
   push:
     paths:
       - '.github/workflows/rust.yml'
-      - 'ci/docker/*rust*'
-      - 'ci/scripts/rust_*.sh'
-      - 'ci/scripts/util_*.sh'
       - 'rust/**'
       - 'format/Flight.proto'
   pull_request:
     paths:
       - '.github/workflows/rust.yml'
-      - 'ci/docker/*rust*'
-      - 'ci/scripts/rust_*.sh'
-      - 'ci/scripts/util_*.sh'
       - 'rust/**'
       - 'format/Flight.proto'
 
-env:
-  DOCKER_BUILDKIT: 0
-  COMPOSE_DOCKER_CLI_BUILD: 1
-  ARCHERY_DOCKER_USER: ${{ secrets.DOCKERHUB_USER }}
-  ARCHERY_DOCKER_PASSWORD: ${{ secrets.DOCKERHUB_TOKEN }}
-
 jobs:
 
-  debian:
-    name: AMD64 Debian 10 Rust ${{ matrix.rust }}
+  # build the library, a compilation step used by multiple steps below
+  linux-build-lib:
+    name: Linux ${{ matrix.arch }} Rust ${{ matrix.rust }} build libraries

Review comment:
       On the other hand we won't be able to execute non-amd64 build on github actions since we would need hosted agents with different arch, so you can also hardcode 'AMD64'.




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] jorgecarleitao commented on a change in pull request #8821: ARROW-10792: [Rust] [CI] Modularize builds for faster build and smaller caches

Posted by GitBox <gi...@apache.org>.
jorgecarleitao commented on a change in pull request #8821:
URL: https://github.com/apache/arrow/pull/8821#discussion_r536378073



##########
File path: docker-compose.yml
##########
@@ -903,35 +902,6 @@ services:
       /bin/bash -c "
         /arrow/ci/scripts/r_sanitize.sh /arrow"
 
-  ################################ Rust #######################################
-
-  debian-rust:

Review comment:
       The arguments I used to remove it:
   
   * this compose and associated dockerfile are no longer tested under the CI, and their primary purpose was to be used in the CI
   * the dockerfile is not needed, as the default rust image is sufficient
   * the compose contains non-trivial aspects, such as:
      * volume mounting with `delegate`
      * using the no-longer needed `rust_test.sh`
      * non-default `CARGO_*` env variables
   * `docker-compose run debian-rust` is IMO less transparent to a user about what is happening, and the person needs to go to a +1k LOC file to understand.
   
   In opposition, this whole project can now be built using
   
   ```bash
   docker run --rm -v $(pwd)/rust:/rust -it rust /bin/bash -c "cd /rust && cargo build"
   ```
   
   which IMO is really simple to understand and reproduce. Wouldn't this command on the README be sufficient for contributors?
   
   In the end, I evaluated that having these around would be more confusing than just having the user to follow standard rust practices of building a rust project (including using the official docker image), and therefore there was no need for the maintenance burden of having these around.




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] github-actions[bot] commented on pull request #8821: ARROW-10792: [Rust] [CI] Modularize builds for faster build and smaller caches

Posted by GitBox <gi...@apache.org>.
github-actions[bot] commented on pull request #8821:
URL: https://github.com/apache/arrow/pull/8821#issuecomment-737490236


   https://issues.apache.org/jira/browse/ARROW-10792


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] jorgecarleitao commented on pull request #8821: ARROW-10792: [Rust] [CI] Modularize builds for faster build and smaller caches

Posted by GitBox <gi...@apache.org>.
jorgecarleitao commented on pull request #8821:
URL: https://github.com/apache/arrow/pull/8821#issuecomment-737487996


   @nevi-me , a follow-up of the issue that we were discussing in another PR. IMO this design would enable us to much more easily add new architectures to the CI (we just need to add them to the matrix and would run in parallel).
   
   cc @kszucs 


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] codecov-io edited a comment on pull request #8821: ARROW-10792: [Rust] [CI] Modularize builds for faster build and smaller caches

Posted by GitBox <gi...@apache.org>.
codecov-io edited a comment on pull request #8821:
URL: https://github.com/apache/arrow/pull/8821#issuecomment-737491170


   # [Codecov](https://codecov.io/gh/apache/arrow/pull/8821?src=pr&el=h1) Report
   > Merging [#8821](https://codecov.io/gh/apache/arrow/pull/8821?src=pr&el=desc) (aa78f32) into [master](https://codecov.io/gh/apache/arrow/commit/322cd01fff055c4d4a03839fe5ac435948e75b09?el=desc) (322cd01) will **decrease** coverage by `31.73%`.
   > The diff coverage is `57.37%`.
   
   [![Impacted file tree graph](https://codecov.io/gh/apache/arrow/pull/8821/graphs/tree.svg?width=650&height=150&src=pr&token=LpTCFbqVT1)](https://codecov.io/gh/apache/arrow/pull/8821?src=pr&el=tree)
   
   ```diff
   @@             Coverage Diff             @@
   ##           master    #8821       +/-   ##
   ===========================================
   - Coverage   84.54%   52.81%   -31.74%     
   ===========================================
     Files         185      165       -20     
     Lines       46176    29844    -16332     
   ===========================================
   - Hits        39041    15761    -23280     
   - Misses       7135    14083     +6948     
   ```
   
   
   | [Impacted Files](https://codecov.io/gh/apache/arrow/pull/8821?src=pr&el=tree) | Coverage Δ | |
   |---|---|---|
   | [rust/arrow/src/array/transform/boolean.rs](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree#diff-cnVzdC9hcnJvdy9zcmMvYXJyYXkvdHJhbnNmb3JtL2Jvb2xlYW4ucnM=) | `76.92% <0.00%> (-23.08%)` | :arrow_down: |
   | [rust/arrow/src/array/transform/list.rs](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree#diff-cnVzdC9hcnJvdy9zcmMvYXJyYXkvdHJhbnNmb3JtL2xpc3QucnM=) | `36.36% <0.00%> (-8.09%)` | :arrow_down: |
   | [rust/arrow/src/compute/kernels/comparison.rs](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree#diff-cnVzdC9hcnJvdy9zcmMvY29tcHV0ZS9rZXJuZWxzL2NvbXBhcmlzb24ucnM=) | `96.27% <ø> (ø)` | |
   | [rust/arrow/src/compute/kernels/filter.rs](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree#diff-cnVzdC9hcnJvdy9zcmMvY29tcHV0ZS9rZXJuZWxzL2ZpbHRlci5ycw==) | `58.72% <ø> (-2.55%)` | :arrow_down: |
   | [rust/arrow/src/compute/kernels/limit.rs](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree#diff-cnVzdC9hcnJvdy9zcmMvY29tcHV0ZS9rZXJuZWxzL2xpbWl0LnJz) | `100.00% <ø> (ø)` | |
   | [rust/arrow/src/record\_batch.rs](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree#diff-cnVzdC9hcnJvdy9zcmMvcmVjb3JkX2JhdGNoLnJz) | `84.04% <ø> (-6.31%)` | :arrow_down: |
   | [rust/datafusion/src/logical\_plan/builder.rs](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree#diff-cnVzdC9kYXRhZnVzaW9uL3NyYy9sb2dpY2FsX3BsYW4vYnVpbGRlci5ycw==) | `0.00% <0.00%> (-85.10%)` | :arrow_down: |
   | [rust/datafusion/src/logical\_plan/plan.rs](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree#diff-cnVzdC9kYXRhZnVzaW9uL3NyYy9sb2dpY2FsX3BsYW4vcGxhbi5ycw==) | `0.00% <ø> (-83.69%)` | :arrow_down: |
   | [...tafusion/src/physical\_plan/distinct\_expressions.rs](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree#diff-cnVzdC9kYXRhZnVzaW9uL3NyYy9waHlzaWNhbF9wbGFuL2Rpc3RpbmN0X2V4cHJlc3Npb25zLnJz) | `0.00% <0.00%> (-90.91%)` | :arrow_down: |
   | [rust/datafusion/src/physical\_plan/functions.rs](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree#diff-cnVzdC9kYXRhZnVzaW9uL3NyYy9waHlzaWNhbF9wbGFuL2Z1bmN0aW9ucy5ycw==) | `0.00% <ø> (-82.13%)` | :arrow_down: |
   | ... and [156 more](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree-more) | |
   
   ------
   
   [Continue to review full report at Codecov](https://codecov.io/gh/apache/arrow/pull/8821?src=pr&el=continue).
   > **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)
   > `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
   > Powered by [Codecov](https://codecov.io/gh/apache/arrow/pull/8821?src=pr&el=footer). Last update [17805f3...aa78f32](https://codecov.io/gh/apache/arrow/pull/8821?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] jorgecarleitao commented on pull request #8821: ARROW-10792: [Rust] [CI] Modularize builds for faster build and smaller caches

Posted by GitBox <gi...@apache.org>.
jorgecarleitao commented on pull request #8821:
URL: https://github.com/apache/arrow/pull/8821#issuecomment-739325071


   I rebased it against latest master and placed the c interface as part of the tests, instead of the cronjob, which will allow us to verify that part on every pr, as it should be.


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] jorgecarleitao closed pull request #8821: ARROW-10792: [Rust] [CI] Modularize builds for faster build and smaller caches

Posted by GitBox <gi...@apache.org>.
jorgecarleitao closed pull request #8821:
URL: https://github.com/apache/arrow/pull/8821


   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] jorgecarleitao commented on a change in pull request #8821: ARROW-10792: [Rust] [CI] Modularize builds for faster build and smaller caches

Posted by GitBox <gi...@apache.org>.
jorgecarleitao commented on a change in pull request #8821:
URL: https://github.com/apache/arrow/pull/8821#discussion_r536518280



##########
File path: .github/workflows/rust.yml
##########
@@ -21,145 +21,286 @@ on:
   push:
     paths:
       - '.github/workflows/rust.yml'
-      - 'ci/docker/*rust*'
-      - 'ci/scripts/rust_*.sh'
-      - 'ci/scripts/util_*.sh'
       - 'rust/**'
       - 'format/Flight.proto'
   pull_request:
     paths:
       - '.github/workflows/rust.yml'
-      - 'ci/docker/*rust*'
-      - 'ci/scripts/rust_*.sh'
-      - 'ci/scripts/util_*.sh'
       - 'rust/**'
       - 'format/Flight.proto'
 
-env:
-  DOCKER_BUILDKIT: 0
-  COMPOSE_DOCKER_CLI_BUILD: 1
-  ARCHERY_DOCKER_USER: ${{ secrets.DOCKERHUB_USER }}
-  ARCHERY_DOCKER_PASSWORD: ${{ secrets.DOCKERHUB_TOKEN }}
-
 jobs:
 
-  debian:
-    name: AMD64 Debian 10 Rust ${{ matrix.rust }}
+  # build the library, a compilation step used by multiple steps below
+  linux-build-lib:
+    name: Linux ${{ matrix.arch }} Rust ${{ matrix.rust }} build libraries

Review comment:
       That is a good point. Reverted that. :)




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] nevi-me commented on a change in pull request #8821: ARROW-10792: [Rust] [CI] Modularize builds for faster build and smaller caches

Posted by GitBox <gi...@apache.org>.
nevi-me commented on a change in pull request #8821:
URL: https://github.com/apache/arrow/pull/8821#discussion_r534656496



##########
File path: .github/workflows/rust.yml
##########
@@ -22,144 +22,300 @@ on:
     paths:
       - '.github/workflows/rust.yml'
       - 'ci/docker/*rust*'
-      - 'ci/scripts/rust_*.sh'
-      - 'ci/scripts/util_*.sh'
       - 'rust/**'
       - 'format/Flight.proto'
   pull_request:
     paths:
       - '.github/workflows/rust.yml'
       - 'ci/docker/*rust*'
-      - 'ci/scripts/rust_*.sh'
-      - 'ci/scripts/util_*.sh'
       - 'rust/**'
       - 'format/Flight.proto'
 
-env:
-  DOCKER_BUILDKIT: 0
-  COMPOSE_DOCKER_CLI_BUILD: 1
-  ARCHERY_DOCKER_USER: ${{ secrets.DOCKERHUB_USER }}
-  ARCHERY_DOCKER_PASSWORD: ${{ secrets.DOCKERHUB_TOKEN }}
-
 jobs:
 
-  debian:
-    name: AMD64 Debian 10 Rust ${{ matrix.rust }}
+  # build the docker image with rust and necessary dependencies
+  linux-build-image:
+    name: Linux ${{ matrix.arch }} Rust ${{ matrix.rust }} build image
     runs-on: ubuntu-latest
-    if: ${{ !contains(github.event.pull_request.title, 'WIP') }}
     strategy:
-      fail-fast: false
       matrix:
-        rust: [nightly-2020-11-24]
+        arch: [amd64]
+        rust: [stable, nightly-2020-11-24]
     env:
-      RUST: ${{ matrix.rust }}
+      REGISTRY: docker.pkg.github.com
+      IMAGE_NAME: docker.pkg.github.com/${{ github.repository }}/${{ matrix.arch }}-linux-rust-${{ matrix.rust }}
     steps:
-      - name: Checkout Arrow
-        uses: actions/checkout@v2
-        with:
-          fetch-depth: 0
-      - name: Fetch Submodules and Tags
+      # based on https://github.com/dtinth/github-actions-docker-layer-caching-poc/blob/master/.github/workflows/dockerimage.yml
+      - uses: actions/checkout@v2
+      - name: Build build image
         shell: bash
-        run: ci/scripts/util_checkout.sh
-      - name: Free Up Disk Space
-        shell: bash
-        run: ci/scripts/util_cleanup.sh
-      - name: Cache Docker Volumes
-        uses: actions/cache@v1
-        with:
-          path: .docker
-          key: debian-10-rust-${{ hashFiles('rust/**/**.rs', 'rust/**/Cargo.toml') }}
-          restore-keys: debian-10-rust-
-      - name: Setup Python
-        uses: actions/setup-python@v1
-        with:
-          python-version: 3.8
-      - name: Setup Archery
-        run: pip install -e dev/archery[docker]
-      - name: Execute Docker Build
         run: |
-          sudo sysctl -w kernel.core_pattern="core.%e.%p"
-          ulimit -c unlimited
-          archery docker run debian-rust
-      - name: Fix Cache Permissions
-        run: sudo chmod -R o+r .docker
-      - name: Docker Push
-        if: success() && github.event_name == 'push' && github.repository == 'apache/arrow'
-        continue-on-error: true
-        shell: bash
-        run: archery docker push debian-rust
+          echo ${{ secrets.GITHUB_TOKEN }} | docker login $REGISTRY -u $GITHUB_ACTOR --password-stdin
+          docker pull $IMAGE_NAME || true
+          docker build -f ci/docker/debian-10-rust.dockerfile . -t $IMAGE_NAME --cache-from $IMAGE_NAME
+          docker push $IMAGE_NAME || true
 
-  windows:
-    name: AMD64 Windows 2019 Rust ${{ matrix.rust }}
-    runs-on: windows-latest
-    if: ${{ !contains(github.event.pull_request.title, 'WIP') }}
+  # build the library, a compilation step used by multiple steps below
+  linux-build-lib:
+    name: Linux ${{ matrix.arch }} Rust ${{ matrix.rust }} build libraries
+    needs: [linux-build-image]
+    runs-on: ubuntu-latest
     strategy:
-      fail-fast: false
       matrix:
+        arch: [amd64]
         rust: [nightly-2020-11-24]
+    container:
+      image: docker.pkg.github.com/${{ github.repository }}/${{ matrix.arch }}-linux-rust-${{ matrix.rust }}
+      credentials:
+        username: ${{ github.actor }}
+        password: ${{ github.token }}
+      env:
+        # so that cache takes it
+        CARGO_HOME: /github/home/.cargo
+        CARGO_TARGET_DIR: /github/home/target/
     steps:
-      - name: Install Rust
-        uses: actions-rs/toolchain@v1
-        with:
-            toolchain: ${{ matrix.rust }}
-            override: true
-            components: rustfmt
-      - name: Install Flatbuffers
-        shell: bash
-        run: choco install flatc
-      - name: Checkout Arrow
-        uses: actions/checkout@v2
+      - uses: actions/checkout@v2
+      - name: Cache Cargo
+        uses: actions/cache@v2
         with:
-          fetch-depth: 0
-      - name: Fetch Submodules and Tags
-        shell: bash
-        run: ci/scripts/util_checkout.sh
-      - name: Cache Build Artifacts
-        uses: actions/cache@v1
+          # 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-${{ hashFiles('**/Cargo.lock') }}
+          restore-keys: cargo-cache-
+      - name: Cache Rust dependencies
+        uses: actions/cache@v2
         with:
-          path: rust/target
-          key: windows-rust-v1-${{ hashFiles('rust/**/**.rs', 'rust/**/Cargo.toml') }}
-          restore-keys: windows-rust-v1-
+          # 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 }}-${{ hashFiles('**/Cargo.lock') }}
+          restore-keys: ${{ runner.os }}-${{ matrix.arch }}-target-cache-${{ matrix.rust }}-
       - name: Build
-        shell: bash
-        run: ci/scripts/rust_build.sh $(pwd) $(pwd)/build
-      - name: Test
-        shell: bash
-        run: ci/scripts/rust_test.sh $(pwd) $(pwd)/build
+        run: cd rust && cargo build
 
-  macos:
-    name: AMD64 MacOS 10.15 Rust ${{ matrix.rust }}
-    runs-on: macos-latest
-    if: ${{ !contains(github.event.pull_request.title, 'WIP') }}
+  # test the crate
+  linux-test:
+    name: Linux ${{ matrix.arch }} Rust ${{ matrix.rust }} test workspace
+    needs: [linux-build-lib]
+    runs-on: ubuntu-latest
     strategy:
-      fail-fast: false
       matrix:
+        arch: [amd64]
         rust: [nightly-2020-11-24]
+    container:
+      image: docker.pkg.github.com/${{ github.repository }}/${{ matrix.arch }}-linux-rust-${{ matrix.rust }}
+      credentials:
+        username: ${{ github.actor }}
+        password: ${{ github.token }}
+      env:
+        CARGO_HOME: /github/home/.cargo
+        CARGO_TARGET_DIR: /github/home/target
+
+        ARROW_TEST_DATA: /__w/arrow/arrow/testing/data
+        PARQUET_TEST_DATA: /__w/arrow/arrow/cpp/submodules/parquet-testing/data
+    steps:
+      - uses: actions/checkout@v2
+        with:
+          submodules: true
+      - name: Cache Cargo
+        uses: actions/cache@v2
+        with:
+          path: /github/home/.cargo
+          # these keys equal the ones on `linux-build-lib` for re-use
+          key: cargo-cache-${{ hashFiles('**/Cargo.lock') }}
+          restore-keys: cargo-cache-
+      - name: Cache Rust dependencies
+        uses: actions/cache@v2
+        with:
+          path: /github/home/target
+          # these keys equal the ones on `linux-build-lib` for re-use
+          key: ${{ runner.os }}-${{ matrix.arch }}-target-cache-${{ matrix.rust }}-${{ hashFiles('**/Cargo.lock') }}
+          restore-keys: ${{ runner.os }}-${{ matrix.arch }}-target-cache-${{ matrix.rust }}-
+      - name: Run tests
+        run: |
+          cd rust
+          cargo test
+          # test datafusion examples
+          cd datafusion
+          cargo run --example csv_sql
+          cargo run --example parquet_sql
+
+  # test the --features "simd" of the arrow crate
+  linux-test-simd:
+    name: Linux ${{ matrix.arch }} Rust ${{ matrix.rust }} test arrow simd
+    needs: [linux-build-lib]
+    runs-on: ubuntu-latest
+    strategy:
+      matrix:
+        arch: [amd64]
+        rust: [nightly-2020-11-24]
+    container:
+      image: docker.pkg.github.com/${{ github.repository }}/${{ matrix.arch }}-linux-rust-${{ matrix.rust }}
+      credentials:
+        username: ${{ github.actor }}
+        password: ${{ github.token }}
+      env:
+        CARGO_HOME: /github/home/.cargo
+        CARGO_TARGET_DIR: /github/home/target
+
+        ARROW_TEST_DATA: /__w/arrow/arrow/testing/data
+    steps:
+      - uses: actions/checkout@v2
+        with:
+          submodules: true
+      - name: Cache Cargo
+        uses: actions/cache@v2
+        with:
+          path: /github/home/.cargo
+          # these keys equal the ones on `linux-build-lib` for re-use
+          key: cargo-cache-${{ hashFiles('**/Cargo.lock') }}
+          restore-keys: cargo-cache-
+      - name: Cache Rust dependencies
+        uses: actions/cache@v2
+        with:
+          path: /github/home/target
+          # these keys equal the ones on `linux-build-lib` for re-use
+          key: ${{ runner.os }}-${{ matrix.arch }}-target-cache-${{ matrix.rust }}-${{ hashFiles('**/Cargo.lock') }}
+          restore-keys: ${{ runner.os }}-${{ matrix.arch }}-target-cache-${{ matrix.rust }}-
+      - name: Run tests
+        run: |
+          cd rust/arrow
+          cargo test --features "simd"
+
+  # test the arrow crate with stable rust
+  linux-test-stable:
+    name: Linux ${{ matrix.arch }} Rust ${{ matrix.rust }} test arrow
+    needs: [linux-build-image]
+    runs-on: ubuntu-latest
+    strategy:
+      matrix:
+        arch: [amd64]
+        rust: [stable]
+    container:
+      image: docker.pkg.github.com/${{ github.repository }}/${{ matrix.arch }}-linux-rust-${{ matrix.rust }}
+      credentials:
+        username: ${{ github.actor }}
+        password: ${{ github.token }}
+      env:
+        CARGO_HOME: /github/home/.cargo
+        CARGO_TARGET_DIR: /github/home/target
+
+        ARROW_TEST_DATA: /__w/arrow/arrow/testing/data
     steps:
-      - name: Install Rust
-        uses: actions-rs/toolchain@v1
+      - uses: actions/checkout@v2
+        with:
+          submodules: true
+      - name: Cache Cargo
+        uses: actions/cache@v2
+        with:
+          path: /github/home/.cargo
+          # these keys equal the ones on `linux-build-lib` for re-use
+          key: cargo-cache-${{ hashFiles('**/Cargo.lock') }}
+          restore-keys: cargo-cache-
+      - name: Cache Rust dependencies
+        uses: actions/cache@v2
+        with:
+          path: /github/home/target
+          # these keys equal the ones on `linux-build-lib` for re-use
+          key: ${{ runner.os }}-${{ matrix.arch }}-target-cache-${{ matrix.rust }}-${{ hashFiles('**/Cargo.lock') }}
+          restore-keys: ${{ runner.os }}-${{ matrix.arch }}-target-cache-${{ matrix.rust }}-
+      - name: Run tests
+        run: |
+          cd rust/arrow

Review comment:
       @GregBowyer we'd be able to add parquet to stable tests here, so we can leave out adding it to CI in your PR




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] kszucs edited a comment on pull request #8821: ARROW-10792: [Rust] [CI] Modularize builds for faster build and smaller caches

Posted by GitBox <gi...@apache.org>.
kszucs edited a comment on pull request #8821:
URL: https://github.com/apache/arrow/pull/8821#issuecomment-738629896


   Thanks Jorge for working on this! 
   
   In general it looks good to me, but this PR makes harder to reproduce the exact same environment locally. Considering that cargo makes the building process straightforward and if it indeed speeds up the build execution by a factor of 2 I can accept that tradeoff. 


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] alamb commented on pull request #8821: ARROW-10792: [Rust] [CI] Modularize builds for faster build and smaller caches

Posted by GitBox <gi...@apache.org>.
alamb commented on pull request #8821:
URL: https://github.com/apache/arrow/pull/8821#issuecomment-740627085


   @jorgecarleitao  -- sounds good (with you writing the note)
   
   The windows C++ test is still failing in a strange way -- I can't seem to find `AMD64 Windows 2019 C++` running on any other (recent) PRs. So it looks to me like it may not run regularly anymore?
   
   ![Screen Shot 2020-12-08 at 8 43 33 AM](https://user-images.githubusercontent.com/490673/101491199-75f36c00-3931-11eb-8d47-2f2f1fcae919.png)
   
   
   https://github.com/apache/arrow/pull/8831/files#r537152984


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] jorgecarleitao commented on pull request #8821: ARROW-10792: [Rust] [CI] Modularize builds for faster build and smaller caches

Posted by GitBox <gi...@apache.org>.
jorgecarleitao commented on pull request #8821:
URL: https://github.com/apache/arrow/pull/8821#issuecomment-739683711


   cc @alamb and @andygrove , as this will have a (hopefully positive) impact on all our builds.


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] alamb commented on pull request #8821: ARROW-10792: [Rust] [CI] Modularize builds for faster build and smaller caches

Posted by GitBox <gi...@apache.org>.
alamb commented on pull request #8821:
URL: https://github.com/apache/arrow/pull/8821#issuecomment-740602719


   I retriggered the C++ CI tests on github in hopes it passes on a subsequent run.
   
   @jorgecarleitao I propose we merge this PR in and then send a note to the dev@arrow mailing list with a heads up ("major refactor of rust CI configuration, please let us know if you see issues")  -- I am happy to do so if you would prefer


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] kszucs commented on a change in pull request #8821: ARROW-10792: [Rust] [CI] Modularize builds for faster build and smaller caches

Posted by GitBox <gi...@apache.org>.
kszucs commented on a change in pull request #8821:
URL: https://github.com/apache/arrow/pull/8821#discussion_r535900056



##########
File path: .github/workflows/rust.yml
##########
@@ -21,145 +21,286 @@ on:
   push:
     paths:
       - '.github/workflows/rust.yml'
-      - 'ci/docker/*rust*'
-      - 'ci/scripts/rust_*.sh'
-      - 'ci/scripts/util_*.sh'
       - 'rust/**'
       - 'format/Flight.proto'
   pull_request:
     paths:
       - '.github/workflows/rust.yml'
-      - 'ci/docker/*rust*'
-      - 'ci/scripts/rust_*.sh'
-      - 'ci/scripts/util_*.sh'
       - 'rust/**'
       - 'format/Flight.proto'
 
-env:
-  DOCKER_BUILDKIT: 0
-  COMPOSE_DOCKER_CLI_BUILD: 1
-  ARCHERY_DOCKER_USER: ${{ secrets.DOCKERHUB_USER }}
-  ARCHERY_DOCKER_PASSWORD: ${{ secrets.DOCKERHUB_TOKEN }}
-
 jobs:
 
-  debian:
-    name: AMD64 Debian 10 Rust ${{ matrix.rust }}
+  # build the library, a compilation step used by multiple steps below
+  linux-build-lib:
+    name: Linux ${{ matrix.arch }} Rust ${{ matrix.rust }} build libraries

Review comment:
       I'd prefer the previous title to better align with the rest of the builds, e.g.:
   `AMD64 Debian 10 Rust ${{ matrix.rust }} build libraries`




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] alamb commented on pull request #8821: ARROW-10792: [Rust] [CI] Modularize builds for faster build and smaller caches

Posted by GitBox <gi...@apache.org>.
alamb commented on pull request #8821:
URL: https://github.com/apache/arrow/pull/8821#issuecomment-740176227


   I will try and read this more carefully later this evening  -- it sounds pretty awesome


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] codecov-io edited a comment on pull request #8821: ARROW-10792: [Rust] [CI] Modularize builds for faster build and smaller caches

Posted by GitBox <gi...@apache.org>.
codecov-io edited a comment on pull request #8821:
URL: https://github.com/apache/arrow/pull/8821#issuecomment-737491170


   # [Codecov](https://codecov.io/gh/apache/arrow/pull/8821?src=pr&el=h1) Report
   > Merging [#8821](https://codecov.io/gh/apache/arrow/pull/8821?src=pr&el=desc) (c151b60) into [master](https://codecov.io/gh/apache/arrow/commit/322cd01fff055c4d4a03839fe5ac435948e75b09?el=desc) (322cd01) will **decrease** coverage by `7.08%`.
   > The diff coverage is `63.74%`.
   
   [![Impacted file tree graph](https://codecov.io/gh/apache/arrow/pull/8821/graphs/tree.svg?width=650&height=150&src=pr&token=LpTCFbqVT1)](https://codecov.io/gh/apache/arrow/pull/8821?src=pr&el=tree)
   
   ```diff
   @@            Coverage Diff             @@
   ##           master    #8821      +/-   ##
   ==========================================
   - Coverage   84.54%   77.45%   -7.09%     
   ==========================================
     Files         185      166      -19     
     Lines       46176    39218    -6958     
   ==========================================
   - Hits        39041    30378    -8663     
   - Misses       7135     8840    +1705     
   ```
   
   
   | [Impacted Files](https://codecov.io/gh/apache/arrow/pull/8821?src=pr&el=tree) | Coverage Δ | |
   |---|---|---|
   | [rust/arrow/src/array/transform/boolean.rs](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree#diff-cnVzdC9hcnJvdy9zcmMvYXJyYXkvdHJhbnNmb3JtL2Jvb2xlYW4ucnM=) | `76.92% <0.00%> (-23.08%)` | :arrow_down: |
   | [rust/arrow/src/array/transform/list.rs](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree#diff-cnVzdC9hcnJvdy9zcmMvYXJyYXkvdHJhbnNmb3JtL2xpc3QucnM=) | `36.36% <0.00%> (-8.09%)` | :arrow_down: |
   | [rust/arrow/src/compute/kernels/comparison.rs](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree#diff-cnVzdC9hcnJvdy9zcmMvY29tcHV0ZS9rZXJuZWxzL2NvbXBhcmlzb24ucnM=) | `96.27% <ø> (ø)` | |
   | [rust/arrow/src/compute/kernels/filter.rs](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree#diff-cnVzdC9hcnJvdy9zcmMvY29tcHV0ZS9rZXJuZWxzL2ZpbHRlci5ycw==) | `58.72% <ø> (-2.55%)` | :arrow_down: |
   | [rust/arrow/src/compute/kernels/limit.rs](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree#diff-cnVzdC9hcnJvdy9zcmMvY29tcHV0ZS9rZXJuZWxzL2xpbWl0LnJz) | `100.00% <ø> (ø)` | |
   | [rust/arrow/src/record\_batch.rs](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree#diff-cnVzdC9hcnJvdy9zcmMvcmVjb3JkX2JhdGNoLnJz) | `88.29% <ø> (-2.06%)` | :arrow_down: |
   | [rust/datafusion/src/logical\_plan/builder.rs](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree#diff-cnVzdC9kYXRhZnVzaW9uL3NyYy9sb2dpY2FsX3BsYW4vYnVpbGRlci5ycw==) | `0.00% <0.00%> (-85.10%)` | :arrow_down: |
   | [rust/datafusion/src/logical\_plan/plan.rs](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree#diff-cnVzdC9kYXRhZnVzaW9uL3NyYy9sb2dpY2FsX3BsYW4vcGxhbi5ycw==) | `0.00% <ø> (-83.69%)` | :arrow_down: |
   | [...tafusion/src/physical\_plan/distinct\_expressions.rs](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree#diff-cnVzdC9kYXRhZnVzaW9uL3NyYy9waHlzaWNhbF9wbGFuL2Rpc3RpbmN0X2V4cHJlc3Npb25zLnJz) | `0.00% <0.00%> (-90.91%)` | :arrow_down: |
   | [rust/datafusion/src/physical\_plan/functions.rs](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree#diff-cnVzdC9kYXRhZnVzaW9uL3NyYy9waHlzaWNhbF9wbGFuL2Z1bmN0aW9ucy5ycw==) | `0.00% <ø> (-82.13%)` | :arrow_down: |
   | ... and [112 more](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree-more) | |
   
   ------
   
   [Continue to review full report at Codecov](https://codecov.io/gh/apache/arrow/pull/8821?src=pr&el=continue).
   > **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)
   > `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
   > Powered by [Codecov](https://codecov.io/gh/apache/arrow/pull/8821?src=pr&el=footer). Last update [17805f3...c151b60](https://codecov.io/gh/apache/arrow/pull/8821?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] jorgecarleitao commented on pull request #8821: ARROW-10792: [Rust] [CI] Modularize builds for faster build and smaller caches

Posted by GitBox <gi...@apache.org>.
jorgecarleitao commented on pull request #8821:
URL: https://github.com/apache/arrow/pull/8821#issuecomment-740634083


   @alamb , these are unrelated and I (unfortunately) see them often whenever I need to change dockerfiles and other CI files. I have been ignoring them, as I expect / hope that people from the respective implementations to be handling them already.
   
   I have been also trying to reduce the number of builds that we trigger when we change rust-specific code, e.g. https://github.com/apache/arrow/pull/8824


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] alamb closed pull request #8821: ARROW-10792: [Rust] [CI] Modularize builds for faster build and smaller caches

Posted by GitBox <gi...@apache.org>.
alamb closed pull request #8821:
URL: https://github.com/apache/arrow/pull/8821


   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] kszucs commented on a change in pull request #8821: ARROW-10792: [Rust] [CI] Modularize builds for faster build and smaller caches

Posted by GitBox <gi...@apache.org>.
kszucs commented on a change in pull request #8821:
URL: https://github.com/apache/arrow/pull/8821#discussion_r535900733



##########
File path: .github/workflows/rust.yml
##########
@@ -21,145 +21,286 @@ on:
   push:
     paths:
       - '.github/workflows/rust.yml'
-      - 'ci/docker/*rust*'
-      - 'ci/scripts/rust_*.sh'
-      - 'ci/scripts/util_*.sh'
       - 'rust/**'
       - 'format/Flight.proto'
   pull_request:
     paths:
       - '.github/workflows/rust.yml'
-      - 'ci/docker/*rust*'
-      - 'ci/scripts/rust_*.sh'
-      - 'ci/scripts/util_*.sh'
       - 'rust/**'
       - 'format/Flight.proto'
 
-env:
-  DOCKER_BUILDKIT: 0
-  COMPOSE_DOCKER_CLI_BUILD: 1
-  ARCHERY_DOCKER_USER: ${{ secrets.DOCKERHUB_USER }}
-  ARCHERY_DOCKER_PASSWORD: ${{ secrets.DOCKERHUB_TOKEN }}
-
 jobs:
 
-  debian:
-    name: AMD64 Debian 10 Rust ${{ matrix.rust }}
+  # build the library, a compilation step used by multiple steps below
+  linux-build-lib:
+    name: Linux ${{ matrix.arch }} Rust ${{ matrix.rust }} build libraries
     runs-on: ubuntu-latest
-    if: ${{ !contains(github.event.pull_request.title, 'WIP') }}
     strategy:
-      fail-fast: false
       matrix:
+        arch: [amd64]
         rust: [nightly-2020-11-24]
-    env:
-      RUST: ${{ matrix.rust }}
+    container:
+      image: ${{ matrix.arch }}/rust
     steps:
-      - name: Checkout Arrow
-        uses: actions/checkout@v2
+      - uses: actions/checkout@v2
+      - name: Cache Cargo
+        uses: actions/cache@v2
         with:
-          fetch-depth: 0
-      - name: Fetch Submodules and Tags
-        shell: bash
-        run: ci/scripts/util_checkout.sh
-      - name: Free Up Disk Space
-        shell: bash
-        run: ci/scripts/util_cleanup.sh
-      - name: Cache Docker Volumes
-        uses: actions/cache@v1
-        with:
-          path: .docker
-          key: debian-10-rust-${{ hashFiles('rust/**/**.rs', 'rust/**/Cargo.toml') }}
-          restore-keys: debian-10-rust-
-      - name: Setup Python
-        uses: actions/setup-python@v1
-        with:
-          python-version: 3.8
-      - name: Setup Archery
-        run: pip install -e dev/archery[docker]
-      - name: Execute Docker Build
+          # 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@v2
+        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 }}-
+      - uses: actions-rs/toolchain@v1
+        with:
+          toolchain: ${{ matrix.rust }}
+          default: true
+          components: rustfmt
+      - name: Build
         run: |
-          sudo sysctl -w kernel.core_pattern="core.%e.%p"
-          ulimit -c unlimited
-          archery docker run debian-rust
-      - name: Fix Cache Permissions
-        run: sudo chmod -R o+r .docker
-      - name: Docker Push
-        if: success() && github.event_name == 'push' && github.repository == 'apache/arrow'
-        continue-on-error: true
-        shell: bash
-        run: archery docker push debian-rust
+          export CARGO_HOME="/github/home/.cargo"
+          export CARGO_TARGET_DIR="/github/home/target"
+          cd rust
+          cargo build
 
-  windows:
-    name: AMD64 Windows 2019 Rust ${{ matrix.rust }}
-    runs-on: windows-latest
-    if: ${{ !contains(github.event.pull_request.title, 'WIP') }}
+  # test the crate
+  linux-test:
+    name: Linux ${{ matrix.arch }} Rust ${{ matrix.rust }} test workspace
+    needs: [linux-build-lib]
+    runs-on: ubuntu-latest
     strategy:
-      fail-fast: false
       matrix:
+        arch: [amd64]
         rust: [nightly-2020-11-24]
+    container:
+      image: ${{ matrix.arch }}/rust
+      env:
+        ARROW_TEST_DATA: /__w/arrow/arrow/testing/data

Review comment:
       What is the `__w` prefix?




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] kszucs commented on a change in pull request #8821: ARROW-10792: [Rust] [CI] Modularize builds for faster build and smaller caches

Posted by GitBox <gi...@apache.org>.
kszucs commented on a change in pull request #8821:
URL: https://github.com/apache/arrow/pull/8821#discussion_r536430639



##########
File path: docker-compose.yml
##########
@@ -903,35 +902,6 @@ services:
       /bin/bash -c "
         /arrow/ci/scripts/r_sanitize.sh /arrow"
 
-  ################################ Rust #######################################
-
-  debian-rust:

Review comment:
       Okay, sounds good to me - lucky us that we have cargo around. 
   
   Please document how to reproduce the builds locally with docker.




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] kszucs commented on a change in pull request #8821: ARROW-10792: [Rust] [CI] Modularize builds for faster build and smaller caches

Posted by GitBox <gi...@apache.org>.
kszucs commented on a change in pull request #8821:
URL: https://github.com/apache/arrow/pull/8821#discussion_r535902088



##########
File path: docker-compose.yml
##########
@@ -903,35 +902,6 @@ services:
       /bin/bash -c "
         /arrow/ci/scripts/r_sanitize.sh /arrow"
 
-  ################################ Rust #######################################
-
-  debian-rust:

Review comment:
       Even if we plan to use plain GHA jobs without docker-compose it'd be nice to keep it around to let contributors execute rust builds without installing the toolchain locally.




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] kszucs commented on pull request #8821: ARROW-10792: [Rust] [CI] Modularize builds for faster build and smaller caches

Posted by GitBox <gi...@apache.org>.
kszucs commented on pull request #8821:
URL: https://github.com/apache/arrow/pull/8821#issuecomment-738629896


   Thanks Jorge for working on this! 
   
   In general it looks good to me, but this PR makes local reproducibility harder. Considering that cargo makes the building process straightforward and if it indeed speeds up the build execution by a factor of 2 I can accept that tradeoff. 


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] alamb commented on pull request #8821: ARROW-10792: [Rust] [CI] Modularize builds for faster build and smaller caches

Posted by GitBox <gi...@apache.org>.
alamb commented on pull request #8821:
URL: https://github.com/apache/arrow/pull/8821#issuecomment-740635592


   Ok, 🚀  it is then!
   
   cc @nevi-me @andygrove @kszucs 


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] jorgecarleitao commented on pull request #8821: ARROW-10792: [Rust] [CI] Modularize builds for faster build and smaller caches

Posted by GitBox <gi...@apache.org>.
jorgecarleitao commented on pull request #8821:
URL: https://github.com/apache/arrow/pull/8821#issuecomment-740619423


   Let's do that. I can write the note, as I can also describe the changes in more depth, as IMO they are relevant to other parts of the project also.


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] jorgecarleitao commented on a change in pull request #8821: ARROW-10792: [Rust] [CI] Modularize builds for faster build and smaller caches

Posted by GitBox <gi...@apache.org>.
jorgecarleitao commented on a change in pull request #8821:
URL: https://github.com/apache/arrow/pull/8821#discussion_r536296786



##########
File path: .github/workflows/rust.yml
##########
@@ -21,145 +21,286 @@ on:
   push:
     paths:
       - '.github/workflows/rust.yml'
-      - 'ci/docker/*rust*'
-      - 'ci/scripts/rust_*.sh'
-      - 'ci/scripts/util_*.sh'
       - 'rust/**'
       - 'format/Flight.proto'
   pull_request:
     paths:
       - '.github/workflows/rust.yml'
-      - 'ci/docker/*rust*'
-      - 'ci/scripts/rust_*.sh'
-      - 'ci/scripts/util_*.sh'
       - 'rust/**'
       - 'format/Flight.proto'
 
-env:
-  DOCKER_BUILDKIT: 0
-  COMPOSE_DOCKER_CLI_BUILD: 1
-  ARCHERY_DOCKER_USER: ${{ secrets.DOCKERHUB_USER }}
-  ARCHERY_DOCKER_PASSWORD: ${{ secrets.DOCKERHUB_TOKEN }}
-
 jobs:
 
-  debian:
-    name: AMD64 Debian 10 Rust ${{ matrix.rust }}
+  # build the library, a compilation step used by multiple steps below
+  linux-build-lib:
+    name: Linux ${{ matrix.arch }} Rust ${{ matrix.rust }} build libraries

Review comment:
       Agreed. The issue with hard-coding AMD64 is that it does not depend on `${{ matrix.arch }}`. Would it be ok to be amd64, since that is the name of the image?




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] kszucs commented on a change in pull request #8821: ARROW-10792: [Rust] [CI] Modularize builds for faster build and smaller caches

Posted by GitBox <gi...@apache.org>.
kszucs commented on a change in pull request #8821:
URL: https://github.com/apache/arrow/pull/8821#discussion_r536304032



##########
File path: .github/workflows/rust.yml
##########
@@ -21,145 +21,286 @@ on:
   push:
     paths:
       - '.github/workflows/rust.yml'
-      - 'ci/docker/*rust*'
-      - 'ci/scripts/rust_*.sh'
-      - 'ci/scripts/util_*.sh'
       - 'rust/**'
       - 'format/Flight.proto'
   pull_request:
     paths:
       - '.github/workflows/rust.yml'
-      - 'ci/docker/*rust*'
-      - 'ci/scripts/rust_*.sh'
-      - 'ci/scripts/util_*.sh'
       - 'rust/**'
       - 'format/Flight.proto'
 
-env:
-  DOCKER_BUILDKIT: 0
-  COMPOSE_DOCKER_CLI_BUILD: 1
-  ARCHERY_DOCKER_USER: ${{ secrets.DOCKERHUB_USER }}
-  ARCHERY_DOCKER_PASSWORD: ${{ secrets.DOCKERHUB_TOKEN }}
-
 jobs:
 
-  debian:
-    name: AMD64 Debian 10 Rust ${{ matrix.rust }}
+  # build the library, a compilation step used by multiple steps below
+  linux-build-lib:
+    name: Linux ${{ matrix.arch }} Rust ${{ matrix.rust }} build libraries

Review comment:
       On the other hand we won't be able to execute non-amd64 build on github actions since we would need hosted agents with different arch (but there aren't any), so you can also hardcode 'AMD64'.




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] codecov-io commented on pull request #8821: ARROW-10792: [Rust] [CI] Modularize builds for faster build and smaller caches

Posted by GitBox <gi...@apache.org>.
codecov-io commented on pull request #8821:
URL: https://github.com/apache/arrow/pull/8821#issuecomment-737491170


   # [Codecov](https://codecov.io/gh/apache/arrow/pull/8821?src=pr&el=h1) Report
   > Merging [#8821](https://codecov.io/gh/apache/arrow/pull/8821?src=pr&el=desc) (590b58a) into [master](https://codecov.io/gh/apache/arrow/commit/322cd01fff055c4d4a03839fe5ac435948e75b09?el=desc) (322cd01) will **decrease** coverage by `31.77%`.
   > The diff coverage is `59.74%`.
   
   [![Impacted file tree graph](https://codecov.io/gh/apache/arrow/pull/8821/graphs/tree.svg?width=650&height=150&src=pr&token=LpTCFbqVT1)](https://codecov.io/gh/apache/arrow/pull/8821?src=pr&el=tree)
   
   ```diff
   @@             Coverage Diff             @@
   ##           master    #8821       +/-   ##
   ===========================================
   - Coverage   84.54%   52.77%   -31.78%     
   ===========================================
     Files         185      165       -20     
     Lines       46176    29813    -16363     
   ===========================================
   - Hits        39041    15734    -23307     
   - Misses       7135    14079     +6944     
   ```
   
   
   | [Impacted Files](https://codecov.io/gh/apache/arrow/pull/8821?src=pr&el=tree) | Coverage Δ | |
   |---|---|---|
   | [rust/arrow/src/array/transform/boolean.rs](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree#diff-cnVzdC9hcnJvdy9zcmMvYXJyYXkvdHJhbnNmb3JtL2Jvb2xlYW4ucnM=) | `76.92% <0.00%> (-23.08%)` | :arrow_down: |
   | [rust/arrow/src/array/transform/list.rs](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree#diff-cnVzdC9hcnJvdy9zcmMvYXJyYXkvdHJhbnNmb3JtL2xpc3QucnM=) | `36.36% <0.00%> (-8.09%)` | :arrow_down: |
   | [rust/arrow/src/compute/kernels/comparison.rs](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree#diff-cnVzdC9hcnJvdy9zcmMvY29tcHV0ZS9rZXJuZWxzL2NvbXBhcmlzb24ucnM=) | `96.27% <ø> (ø)` | |
   | [rust/arrow/src/compute/kernels/filter.rs](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree#diff-cnVzdC9hcnJvdy9zcmMvY29tcHV0ZS9rZXJuZWxzL2ZpbHRlci5ycw==) | `58.72% <ø> (-2.55%)` | :arrow_down: |
   | [rust/arrow/src/compute/kernels/limit.rs](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree#diff-cnVzdC9hcnJvdy9zcmMvY29tcHV0ZS9rZXJuZWxzL2xpbWl0LnJz) | `100.00% <ø> (ø)` | |
   | [rust/arrow/src/record\_batch.rs](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree#diff-cnVzdC9hcnJvdy9zcmMvcmVjb3JkX2JhdGNoLnJz) | `84.04% <ø> (-6.31%)` | :arrow_down: |
   | [rust/datafusion/src/logical\_plan/builder.rs](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree#diff-cnVzdC9kYXRhZnVzaW9uL3NyYy9sb2dpY2FsX3BsYW4vYnVpbGRlci5ycw==) | `0.00% <0.00%> (-85.10%)` | :arrow_down: |
   | [rust/datafusion/src/logical\_plan/plan.rs](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree#diff-cnVzdC9kYXRhZnVzaW9uL3NyYy9sb2dpY2FsX3BsYW4vcGxhbi5ycw==) | `0.00% <ø> (-83.69%)` | :arrow_down: |
   | [...tafusion/src/physical\_plan/distinct\_expressions.rs](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree#diff-cnVzdC9kYXRhZnVzaW9uL3NyYy9waHlzaWNhbF9wbGFuL2Rpc3RpbmN0X2V4cHJlc3Npb25zLnJz) | `0.00% <0.00%> (-90.91%)` | :arrow_down: |
   | [rust/datafusion/src/physical\_plan/functions.rs](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree#diff-cnVzdC9kYXRhZnVzaW9uL3NyYy9waHlzaWNhbF9wbGFuL2Z1bmN0aW9ucy5ycw==) | `0.00% <ø> (-82.13%)` | :arrow_down: |
   | ... and [152 more](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree-more) | |
   
   ------
   
   [Continue to review full report at Codecov](https://codecov.io/gh/apache/arrow/pull/8821?src=pr&el=continue).
   > **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)
   > `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
   > Powered by [Codecov](https://codecov.io/gh/apache/arrow/pull/8821?src=pr&el=footer). Last update [17805f3...590b58a](https://codecov.io/gh/apache/arrow/pull/8821?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] codecov-io edited a comment on pull request #8821: ARROW-10792: [Rust] [CI] Modularize builds for faster build and smaller caches

Posted by GitBox <gi...@apache.org>.
codecov-io edited a comment on pull request #8821:
URL: https://github.com/apache/arrow/pull/8821#issuecomment-737491170


   # [Codecov](https://codecov.io/gh/apache/arrow/pull/8821?src=pr&el=h1) Report
   > Merging [#8821](https://codecov.io/gh/apache/arrow/pull/8821?src=pr&el=desc) (8b5cb6f) into [master](https://codecov.io/gh/apache/arrow/commit/322cd01fff055c4d4a03839fe5ac435948e75b09?el=desc) (322cd01) will **decrease** coverage by `31.75%`.
   > The diff coverage is `59.60%`.
   
   [![Impacted file tree graph](https://codecov.io/gh/apache/arrow/pull/8821/graphs/tree.svg?width=650&height=150&src=pr&token=LpTCFbqVT1)](https://codecov.io/gh/apache/arrow/pull/8821?src=pr&el=tree)
   
   ```diff
   @@             Coverage Diff             @@
   ##           master    #8821       +/-   ##
   ===========================================
   - Coverage   84.54%   52.79%   -31.76%     
   ===========================================
     Files         185      165       -20     
     Lines       46176    29829    -16347     
   ===========================================
   - Hits        39041    15748    -23293     
   - Misses       7135    14081     +6946     
   ```
   
   
   | [Impacted Files](https://codecov.io/gh/apache/arrow/pull/8821?src=pr&el=tree) | Coverage Δ | |
   |---|---|---|
   | [rust/arrow/src/array/transform/boolean.rs](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree#diff-cnVzdC9hcnJvdy9zcmMvYXJyYXkvdHJhbnNmb3JtL2Jvb2xlYW4ucnM=) | `76.92% <0.00%> (-23.08%)` | :arrow_down: |
   | [rust/arrow/src/array/transform/list.rs](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree#diff-cnVzdC9hcnJvdy9zcmMvYXJyYXkvdHJhbnNmb3JtL2xpc3QucnM=) | `36.36% <0.00%> (-8.09%)` | :arrow_down: |
   | [rust/arrow/src/compute/kernels/comparison.rs](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree#diff-cnVzdC9hcnJvdy9zcmMvY29tcHV0ZS9rZXJuZWxzL2NvbXBhcmlzb24ucnM=) | `96.27% <ø> (ø)` | |
   | [rust/arrow/src/compute/kernels/filter.rs](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree#diff-cnVzdC9hcnJvdy9zcmMvY29tcHV0ZS9rZXJuZWxzL2ZpbHRlci5ycw==) | `58.72% <ø> (-2.55%)` | :arrow_down: |
   | [rust/arrow/src/compute/kernels/limit.rs](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree#diff-cnVzdC9hcnJvdy9zcmMvY29tcHV0ZS9rZXJuZWxzL2xpbWl0LnJz) | `100.00% <ø> (ø)` | |
   | [rust/arrow/src/record\_batch.rs](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree#diff-cnVzdC9hcnJvdy9zcmMvcmVjb3JkX2JhdGNoLnJz) | `84.04% <ø> (-6.31%)` | :arrow_down: |
   | [rust/datafusion/src/logical\_plan/builder.rs](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree#diff-cnVzdC9kYXRhZnVzaW9uL3NyYy9sb2dpY2FsX3BsYW4vYnVpbGRlci5ycw==) | `0.00% <0.00%> (-85.10%)` | :arrow_down: |
   | [rust/datafusion/src/logical\_plan/plan.rs](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree#diff-cnVzdC9kYXRhZnVzaW9uL3NyYy9sb2dpY2FsX3BsYW4vcGxhbi5ycw==) | `0.00% <ø> (-83.69%)` | :arrow_down: |
   | [...tafusion/src/physical\_plan/distinct\_expressions.rs](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree#diff-cnVzdC9kYXRhZnVzaW9uL3NyYy9waHlzaWNhbF9wbGFuL2Rpc3RpbmN0X2V4cHJlc3Npb25zLnJz) | `0.00% <0.00%> (-90.91%)` | :arrow_down: |
   | [rust/datafusion/src/physical\_plan/functions.rs](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree#diff-cnVzdC9kYXRhZnVzaW9uL3NyYy9waHlzaWNhbF9wbGFuL2Z1bmN0aW9ucy5ycw==) | `0.00% <ø> (-82.13%)` | :arrow_down: |
   | ... and [152 more](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree-more) | |
   
   ------
   
   [Continue to review full report at Codecov](https://codecov.io/gh/apache/arrow/pull/8821?src=pr&el=continue).
   > **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)
   > `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
   > Powered by [Codecov](https://codecov.io/gh/apache/arrow/pull/8821?src=pr&el=footer). Last update [17805f3...8b5cb6f](https://codecov.io/gh/apache/arrow/pull/8821?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] codecov-io edited a comment on pull request #8821: ARROW-10792: [Rust] [CI] Modularize builds for faster build and smaller caches

Posted by GitBox <gi...@apache.org>.
codecov-io edited a comment on pull request #8821:
URL: https://github.com/apache/arrow/pull/8821#issuecomment-737491170


   # [Codecov](https://codecov.io/gh/apache/arrow/pull/8821?src=pr&el=h1) Report
   > Merging [#8821](https://codecov.io/gh/apache/arrow/pull/8821?src=pr&el=desc) (774e704) into [master](https://codecov.io/gh/apache/arrow/commit/1d2b4a55770fa4dbe24959b3b40c745964c3184e?el=desc) (1d2b4a5) will **decrease** coverage by `7.08%`.
   > The diff coverage is `n/a`.
   
   [![Impacted file tree graph](https://codecov.io/gh/apache/arrow/pull/8821/graphs/tree.svg?width=650&height=150&src=pr&token=LpTCFbqVT1)](https://codecov.io/gh/apache/arrow/pull/8821?src=pr&el=tree)
   
   ```diff
   @@            Coverage Diff             @@
   ##           master    #8821      +/-   ##
   ==========================================
   - Coverage   84.48%   77.39%   -7.09%     
   ==========================================
     Files         190      170      -20     
     Lines       46854    39528    -7326     
   ==========================================
   - Hits        39584    30593    -8991     
   - Misses       7270     8935    +1665     
   ```
   
   
   | [Impacted Files](https://codecov.io/gh/apache/arrow/pull/8821?src=pr&el=tree) | Coverage Δ | |
   |---|---|---|
   | [rust/datafusion/src/test/variable.rs](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree#diff-cnVzdC9kYXRhZnVzaW9uL3NyYy90ZXN0L3ZhcmlhYmxlLnJz) | `0.00% <0.00%> (-100.00%)` | :arrow_down: |
   | [rust/datafusion/src/optimizer/filter\_push\_down.rs](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree#diff-cnVzdC9kYXRhZnVzaW9uL3NyYy9vcHRpbWl6ZXIvZmlsdGVyX3B1c2hfZG93bi5ycw==) | `0.00% <0.00%> (-99.33%)` | :arrow_down: |
   | [rust/datafusion/src/datasource/parquet.rs](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree#diff-cnVzdC9kYXRhZnVzaW9uL3NyYy9kYXRhc291cmNlL3BhcnF1ZXQucnM=) | `0.00% <0.00%> (-97.00%)` | :arrow_down: |
   | [rust/datafusion/src/physical\_plan/hash\_join.rs](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree#diff-cnVzdC9kYXRhZnVzaW9uL3NyYy9waHlzaWNhbF9wbGFuL2hhc2hfam9pbi5ycw==) | `0.00% <0.00%> (-96.12%)` | :arrow_down: |
   | [...tafusion/src/physical\_plan/datetime\_expressions.rs](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree#diff-cnVzdC9kYXRhZnVzaW9uL3NyYy9waHlzaWNhbF9wbGFuL2RhdGV0aW1lX2V4cHJlc3Npb25zLnJz) | `0.00% <0.00%> (-95.09%)` | :arrow_down: |
   | [rust/datafusion/src/logical\_plan/display.rs](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree#diff-cnVzdC9kYXRhZnVzaW9uL3NyYy9sb2dpY2FsX3BsYW4vZGlzcGxheS5ycw==) | `0.00% <0.00%> (-94.81%)` | :arrow_down: |
   | [...tafusion/src/physical\_plan/distinct\_expressions.rs](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree#diff-cnVzdC9kYXRhZnVzaW9uL3NyYy9waHlzaWNhbF9wbGFuL2Rpc3RpbmN0X2V4cHJlc3Npb25zLnJz) | `0.00% <0.00%> (-91.31%)` | :arrow_down: |
   | [rust/datafusion/src/execution/dataframe\_impl.rs](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree#diff-cnVzdC9kYXRhZnVzaW9uL3NyYy9leGVjdXRpb24vZGF0YWZyYW1lX2ltcGwucnM=) | `0.00% <0.00%> (-91.25%)` | :arrow_down: |
   | [rust/datafusion/src/physical\_plan/aggregates.rs](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree#diff-cnVzdC9kYXRhZnVzaW9uL3NyYy9waHlzaWNhbF9wbGFuL2FnZ3JlZ2F0ZXMucnM=) | `0.00% <0.00%> (-91.14%)` | :arrow_down: |
   | [rust/datafusion/src/physical\_plan/sort.rs](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree#diff-cnVzdC9kYXRhZnVzaW9uL3NyYy9waHlzaWNhbF9wbGFuL3NvcnQucnM=) | `0.00% <0.00%> (-91.13%)` | :arrow_down: |
   | ... and [78 more](https://codecov.io/gh/apache/arrow/pull/8821/diff?src=pr&el=tree-more) | |
   
   ------
   
   [Continue to review full report at Codecov](https://codecov.io/gh/apache/arrow/pull/8821?src=pr&el=continue).
   > **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)
   > `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
   > Powered by [Codecov](https://codecov.io/gh/apache/arrow/pull/8821?src=pr&el=footer). Last update [1d2b4a5...774e704](https://codecov.io/gh/apache/arrow/pull/8821?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org