Skip to content

Commit a7672e7

Browse files
authored
Merge branch 'apache:master' into master
2 parents 27f836b + fc4044f commit a7672e7

File tree

283 files changed

+46846
-20009
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

283 files changed

+46846
-20009
lines changed

.asf.yaml

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@
1515
# specific language governing permissions and limitations
1616
# under the License.
1717

18+
# Documentation can be found here:
19+
# https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=127405038
20+
1821
notifications:
1922
2023
@@ -28,4 +31,11 @@ github:
2831
merge: false
2932
rebase: false
3033
features:
31-
issues: true
34+
issues: true
35+
protected_branches:
36+
master:
37+
required_status_checks:
38+
# require branches to be up-to-date before merging
39+
strict: true
40+
# don't require any jobs to pass
41+
contexts: []
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
# Licensed to the Apache Software Foundation (ASF) under one
2+
# or more contributor license agreements. See the NOTICE file
3+
# distributed with this work for additional information
4+
# regarding copyright ownership. The ASF licenses this file
5+
# to you under the Apache License, Version 2.0 (the
6+
# "License"); you may not use this file except in compliance
7+
# with the License. You may obtain a copy of the License at
8+
#
9+
# http://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# Unless required by applicable law or agreed to in writing,
12+
# software distributed under the License is distributed on an
13+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14+
# KIND, either express or implied. See the License for the
15+
# specific language governing permissions and limitations
16+
# under the License.
17+
18+
name: Prepare Rust Builder
19+
description: 'Prepare Rust Build Environment'
20+
inputs:
21+
rust-version:
22+
description: 'version of rust to install (e.g. stable)'
23+
required: true
24+
default: 'stable'
25+
runs:
26+
using: "composite"
27+
steps:
28+
- name: Cache Cargo
29+
uses: actions/cache@v3
30+
with:
31+
# these represent dependencies downloaded by cargo
32+
# and thus do not depend on the OS, arch nor rust version.
33+
#
34+
# source https://github.com/actions/cache/blob/main/examples.md#rust---cargo
35+
path: |
36+
/usr/local/cargo/bin/
37+
/usr/local/cargo/registry/index/
38+
/usr/local/cargo/registry/cache/
39+
/usr/local/cargo/git/db/
40+
key: cargo-cache3-${{ hashFiles('**/Cargo.toml') }}
41+
restore-keys: cargo-cache3-
42+
- name: Generate lockfile
43+
shell: bash
44+
run: cargo fetch
45+
- name: Cache Rust dependencies
46+
uses: actions/cache@v3
47+
with:
48+
# these represent compiled steps of both dependencies and arrow
49+
# and thus are specific for a particular OS, arch and rust version.
50+
path: /github/home/target
51+
key: ${{ runner.os }}-${{ runner.arch }}-target-cache3-${{ inputs.rust-version }}-${{ hashFiles('**/Cargo.lock') }}
52+
restore-keys: ${{ runner.os }}-${{ runner.arch }}-target-cache3-${{ inputs.rust-version }}-
53+
- name: Install Build Dependencies
54+
shell: bash
55+
run: |
56+
apt-get update
57+
apt-get install -y protobuf-compiler
58+
- name: Setup Rust toolchain
59+
shell: bash
60+
run: |
61+
echo "Installing ${{ inputs.rust-version }}"
62+
rustup toolchain install ${{ inputs.rust-version }}
63+
rustup default ${{ inputs.rust-version }}
64+
echo "CARGO_TARGET_DIR=/github/home/target" >> $GITHUB_ENV

.github/dependabot.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
version: 2
2+
updates:
3+
- package-ecosystem: cargo
4+
directory: "/"
5+
schedule:
6+
interval: daily
7+
open-pull-requests-limit: 10
8+
target-branch: master
9+
labels: [auto-dependencies]

.github/workflows/integration.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ jobs:
3939
path: rust
4040
fetch-depth: 0
4141
- name: Setup Python
42-
uses: actions/setup-python@v2
42+
uses: actions/setup-python@v3
4343
with:
4444
python-version: 3.8
4545
- name: Setup Archery
@@ -64,17 +64,17 @@ jobs:
6464
rustup default ${{ matrix.rust }}
6565
rustup component add rustfmt clippy
6666
- name: Cache Cargo
67-
uses: actions/cache@v2
67+
uses: actions/cache@v3
6868
with:
6969
path: /home/runner/.cargo
7070
key: cargo-maturin-cache-
7171
- name: Cache Rust dependencies
72-
uses: actions/cache@v2
72+
uses: actions/cache@v3
7373
with:
7474
path: /home/runner/target
7575
# this key is not equal because maturin uses different compilation flags.
7676
key: ${{ runner.os }}-${{ matrix.arch }}-target-maturin-cache-${{ matrix.rust }}-
77-
- uses: actions/setup-python@v2
77+
- uses: actions/setup-python@v3
7878
with:
7979
python-version: '3.7'
8080
- name: Upgrade pip and setuptools

.github/workflows/miri.sh

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
#!/bin/bash
2+
#
3+
# Script
4+
#
5+
# Must be run with nightly rust for example
6+
# rustup default nightly
7+
8+
9+
# stacked borrows checking uses too much memory to run successfully in github actions
10+
# re-enable if the CI is migrated to something more powerful (https://github.com/apache/arrow-rs/issues/1833)
11+
# see also https://github.com/rust-lang/miri/issues/1367
12+
export MIRIFLAGS="-Zmiri-disable-isolation -Zmiri-disable-stacked-borrows"
13+
cargo miri setup
14+
cargo clean
15+
16+
echo "Starting Arrow MIRI run..."
17+
cargo miri test -p arrow -- --skip csv --skip ipc --skip json

.github/workflows/miri.yaml

Lines changed: 6 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -15,46 +15,29 @@
1515
# specific language governing permissions and limitations
1616
# under the License.
1717

18-
name: Rust
18+
name: MIRI
1919

2020
on:
2121
# always trigger
2222
push:
2323
pull_request:
2424

2525
jobs:
26-
2726
miri-checks:
2827
name: MIRI
2928
runs-on: ubuntu-latest
30-
strategy:
31-
matrix:
32-
arch: [amd64]
33-
rust: [nightly-2021-07-04]
3429
steps:
3530
- uses: actions/checkout@v2
3631
with:
3732
submodules: true
38-
- uses: actions/cache@v2
39-
with:
40-
path: |
41-
~/.cargo/registry
42-
~/.cargo/git
43-
target
44-
key: ${{ runner.os }}-cargo-miri-${{ hashFiles('**/Cargo.lock') }}
4533
- name: Setup Rust toolchain
4634
run: |
47-
rustup toolchain install ${{ matrix.rust }}
48-
rustup default ${{ matrix.rust }}
49-
rustup component add rustfmt clippy miri
35+
rustup toolchain install nightly --component miri
36+
rustup override set nightly
37+
cargo miri setup
5038
- name: Run Miri Checks
5139
env:
5240
RUST_BACKTRACE: full
53-
RUST_LOG: 'trace'
41+
RUST_LOG: "trace"
5442
run: |
55-
export MIRIFLAGS="-Zmiri-disable-isolation"
56-
cargo miri setup
57-
cargo clean
58-
# Currently only the arrow crate is tested with miri
59-
# IO related tests and some unsupported tests are skipped
60-
cargo miri test -p arrow -- --skip csv --skip ipc --skip json
43+
bash .github/workflows/miri.sh

0 commit comments

Comments
 (0)