Skip to content

Commit f87ffd5

Browse files
committed
Merge remote-tracking branch 'origin/develop' into ji/slots-for-arrays
Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk> # Conflicts: # encodings/decimal-byte-parts/src/decimal_byte_parts/compute/is_constant.rs # vortex-array/src/arrays/chunked/compute/aggregate.rs # vortex-array/src/arrays/chunked/compute/is_sorted.rs # vortex-array/src/arrays/chunked/compute/sum.rs
2 parents 1c9e120 + 8efe1dc commit f87ffd5

415 files changed

Lines changed: 17326 additions & 8571 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
name: "Build and verify rebuild is a no-op"
2+
description: "Run a cargo command, then re-run it to verify all artifacts are cached"
3+
inputs:
4+
command:
5+
description: "The cargo build command to run and verify (--message-format json is appended on the verification run)"
6+
required: true
7+
runs:
8+
using: "composite"
9+
steps:
10+
- name: "Build"
11+
shell: bash
12+
run: ${{ inputs.command }}
13+
- name: "Verify rebuild is a no-op"
14+
shell: bash
15+
run: |
16+
stale=$(${{ inputs.command }} \
17+
--message-format json 2>/dev/null \
18+
| jq -r 'select(.reason == "compiler-artifact" and .fresh == false) | .target.name')
19+
if [ -n "$stale" ]; then
20+
echo "ERROR: Rebuild recompiled crates that should have been cached:"
21+
echo "$stale"
22+
exit 1
23+
fi
Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,49 @@
11
name: "Setup Prebuild"
2-
description: "Minimal setup for runners with pre-built Rust toolchain, nextest, and sccache"
2+
description: "Prebuild AMIs — uses pre-installed tools, falls back to full setup-rust for forks"
3+
4+
inputs:
5+
repo-token:
6+
description: "GitHub token for accessing the repository (typically secrets.GITHUB_TOKEN)"
7+
required: false
8+
default: "${{ github.token }}"
9+
toolchain:
10+
description: "optional override for the toolchain version (e.g. nightly)"
11+
required: false
12+
components:
13+
description: "optional override for the components to install for the step (e.g. clippy, rustfmt, miri)"
14+
default: "clippy, rustfmt"
15+
required: false
16+
targets:
17+
description: "optional targets override (e.g. wasm32-unknown-unknown)"
18+
required: false
19+
enable-sccache:
20+
description: "Should sccache be enabled, true by default."
21+
required: false
22+
default: "true"
323

424
runs:
525
using: "composite"
626
steps:
27+
# Prebuild path: tools already installed, just configure sccache
728
- name: Configure sccache timeout
29+
if: github.repository == 'vortex-data/vortex' && inputs.enable-sccache == 'true'
830
shell: bash
931
run: |
1032
mkdir -p ~/.config/sccache
1133
echo 'server_startup_timeout_ms = 15000' > ~/.config/sccache/config
1234
1335
- name: Pre-start sccache server
36+
if: github.repository == 'vortex-data/vortex' && inputs.enable-sccache == 'true'
1437
shell: bash
1538
run: sccache --start-server &
39+
40+
# Fallback path: full setup for forks
41+
- name: Full Rust setup
42+
if: github.repository != 'vortex-data/vortex'
43+
uses: ./.github/actions/setup-rust
44+
with:
45+
repo-token: ${{ inputs.repo-token }}
46+
toolchain: ${{ inputs.toolchain }}
47+
components: ${{ inputs.components }}
48+
targets: ${{ inputs.targets }}
49+
enable-sccache: ${{ inputs.enable-sccache }}

.github/actions/setup-rust/action.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ runs:
8585
uses: ./.github/actions/setup-protoc
8686

8787
- name: Install Ninja (for DuckDB build system)
88-
uses: seanmiddleditch/gha-setup-ninja@master
88+
uses: seanmiddleditch/gha-setup-ninja@v6
8989

9090
- name: Install Sweep
9191
shell: bash

.github/scripts/fuzz_report/templates/new_issue.md

Lines changed: 29 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -40,25 +40,33 @@ cargo +nightly fuzz run -D --sanitizer=none {{FUZZ_TARGET}} ./fuzz/artifacts/{{F
4040
```
4141

4242
<details>
43-
<summary>First-time setup: download and extract the crash artifact</summary>
43+
<summary>Reproduction Steps</summary>
4444

45-
1. Download the crash artifact:
46-
- **Direct download**: {{ARTIFACT_URL}}
47-
- Extract the zip file (`unzip`)
48-
- The path should look like `/path/to/{{FUZZ_TARGET}}/{{CRASH_FILE}}`
49-
- You can create a `./fuzz/artifacts` directory that will be git-ignored in the `vortex` repo
50-
- Full path would be `./fuzz/artifacts/{{FUZZ_TARGET}}/{{CRASH_FILE}}`
45+
1. Download the crash artifact: {{ARTIFACT_URL}}
5146

5247
2. Assuming you download the zipfile to `~/Downloads`, and your working directory is the repository root:
5348

5449
```bash
50+
# Create the artifacts directory if you haven't already.
5551
mkdir -p ./fuzz/artifacts
52+
53+
# Move the zipfile.
5654
mv ~/Downloads/{{FUZZ_TARGET}}-crash-artifacts.zip ./fuzz/artifacts/
55+
56+
# Unzip the zipfile.
5757
unzip ./fuzz/artifacts/{{FUZZ_TARGET}}-crash-artifacts.zip -d ./fuzz/artifacts/
58+
59+
# You can remove the zipfile now if you want to.
5860
rm ./fuzz/artifacts/{{FUZZ_TARGET}}-crash-artifacts.zip
5961
```
6062

61-
3. Get a backtrace:
63+
3. Reproduce the crash:
64+
65+
```bash
66+
cargo +nightly fuzz run -D --sanitizer=none {{FUZZ_TARGET}} ./fuzz/artifacts/{{FUZZ_TARGET}}/{{CRASH_FILE}} -- -rss_limit_mb=0
67+
```
68+
69+
If you want a backtrace:
6270

6371
```bash
6472
RUST_BACKTRACE=1 cargo +nightly fuzz run -D --sanitizer=none {{FUZZ_TARGET}} ./fuzz/artifacts/{{FUZZ_TARGET}}/{{CRASH_FILE}} -- -rss_limit_mb=0
@@ -70,6 +78,19 @@ RUST_BACKTRACE=full cargo +nightly fuzz run -D --sanitizer=none {{FUZZ_TARGET}}
7078

7179
</details>
7280

81+
<details>
82+
<summary>Single command to get a backtrace</summary>
83+
84+
```bash
85+
mkdir -p ./fuzz/artifacts
86+
mv ~/Downloads/{{FUZZ_TARGET}}-crash-artifacts.zip ./fuzz/artifacts/
87+
unzip ./fuzz/artifacts/{{FUZZ_TARGET}}-crash-artifacts.zip -d ./fuzz/artifacts/
88+
rm ./fuzz/artifacts/{{FUZZ_TARGET}}-crash-artifacts.zip
89+
RUST_BACKTRACE=1 cargo +nightly fuzz run -D --sanitizer=none {{FUZZ_TARGET}} ./fuzz/artifacts/{{FUZZ_TARGET}}/{{CRASH_FILE}} -- -rss_limit_mb=0
90+
```
91+
92+
</details>
93+
7394
<!-- seed_hash:{{SEED_HASH}} stack_hash:{{STACK_TRACE_HASH}} message_hash:{{MESSAGE_HASH}} -->
7495

7596
---

.github/workflows/bench-pr.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ jobs:
9797
9898
- name: Setup AWS CLI
9999
if: github.event.pull_request.head.repo.fork == false
100-
uses: aws-actions/configure-aws-credentials@v5
100+
uses: aws-actions/configure-aws-credentials@v6
101101
with:
102102
role-to-assume: arn:aws:iam::245040174862:role/GitHubBenchmarkRole
103103
aws-region: us-east-1

.github/workflows/bench.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ jobs:
1818
steps:
1919
- uses: actions/checkout@v6
2020
- name: Setup AWS CLI
21-
uses: aws-actions/configure-aws-credentials@v5
21+
uses: aws-actions/configure-aws-credentials@v6
2222
with:
2323
role-to-assume: arn:aws:iam::245040174862:role/GitHubBenchmarkRole
2424
aws-region: us-east-1
@@ -92,7 +92,7 @@ jobs:
9292
bash scripts/bench-taskset.sh target/release_debug/${{ matrix.benchmark.id }} --formats ${{ matrix.benchmark.formats }} -d gh-json -o results.json
9393
9494
- name: Setup AWS CLI
95-
uses: aws-actions/configure-aws-credentials@v5
95+
uses: aws-actions/configure-aws-credentials@v6
9696
with:
9797
role-to-assume: arn:aws:iam::245040174862:role/GitHubBenchmarkRole
9898
aws-region: us-east-1

0 commit comments

Comments
 (0)