Skip to content

Commit b00ea3f

Browse files
committed
Merge branch 'develop' into ngates/arrow-executor
2 parents 8f4174a + e16faa6 commit b00ea3f

File tree

399 files changed

+13108
-7582
lines changed

Some content is hidden

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

399 files changed

+13108
-7582
lines changed

.github/release-drafter.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name-template: "🌪 $RESOLVED_VERSION"
1+
name-template: "$RESOLVED_VERSION"
22
tag-template: "$RESOLVED_VERSION"
33
categories:
44
- title: "⚠️ Breaks"
@@ -36,6 +36,9 @@ version-resolver:
3636
- "wire-break"
3737
default: patch
3838

39+
exclude-labels:
40+
- "skip-changelog"
41+
3942
template: |
4043
## Changes
4144

.github/workflows/bench-pr.yml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,17 @@
22

33
name: PR Benchmarks
44

5+
concurrency:
6+
# The group causes runs to queue instead of running in parallel.
7+
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
8+
# Don't cancel benchmarks that are already running, instead just queue them up.
9+
cancel-in-progress: false
10+
511
on:
612
pull_request:
713
types: [labeled, synchronize]
814
branches: ["develop"]
9-
workflow_dispatch: {}
15+
workflow_dispatch: { }
1016

1117
permissions:
1218
actions: write # for removing labels

.github/workflows/ci.yml

Lines changed: 50 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,18 @@
11
name: CI
22

3+
# Concurrency control:
4+
# - PRs: new commits on a feature branch will cancel in-progress (outdated) runs.
5+
# - Push to develop: runs queue sequentially, never cancelled. This allows us to have benchmarks
6+
# run on every commit for our benchmarks website.
7+
# - `workflow_dispatch`: groups by branch and queues if run on develop.
38
concurrency:
49
group: ${{ github.workflow }}-${{ github.ref }}
510
cancel-in-progress: ${{ github.ref != 'refs/heads/develop' }}
6-
711
on:
812
push:
9-
branches: ["develop"]
10-
pull_request: {}
11-
workflow_dispatch: {}
13+
branches: [develop]
14+
pull_request: { }
15+
workflow_dispatch: { }
1216

1317
permissions:
1418
actions: read
@@ -38,8 +42,7 @@ jobs:
3842
# Lint the workflows and yamllint's configuration file.
3943
yamllint \
4044
--strict \
41-
-c yamllint-config.yaml \
42-
yamllint-config.yaml \
45+
-c .yamllint.yaml \
4346
.github/
4447
4548
python-lint:
@@ -311,6 +314,43 @@ jobs:
311314
# https://spiraldb.slack.com/archives/C07BV3GKAJ2/p1732736281946729
312315
cargo hack clippy --no-default-features -- -D warnings
313316
317+
rust-semver:
318+
name: "Rust (semver checks)"
319+
timeout-minutes: 120
320+
if: github.ref != 'refs/heads/develop'
321+
runs-on:
322+
- runs-on=${{ github.run_id }}
323+
- family=m7i+m7i-flex+m7a
324+
- cpu=16
325+
- image=ubuntu24-full-x64
326+
- extras=s3-cache
327+
- tag=rust-semver
328+
steps:
329+
- uses: runs-on/action@v2
330+
with:
331+
sccache: s3
332+
- uses: actions/checkout@v6
333+
with:
334+
fetch-depth: 0
335+
fetch-tags: true
336+
- uses: ./.github/actions/setup-rust
337+
with:
338+
repo-token: ${{ secrets.GITHUB_TOKEN }}
339+
340+
# We have to set the correct Cargo.toml versions so semver checks uses the previous release.
341+
- name: Latest Tag
342+
id: latest-tag
343+
run: |
344+
LATEST_TAG=$(git describe --tags --abbrev=0)
345+
echo "tag=$LATEST_TAG" >> $GITHUB_OUTPUT
346+
- name: Cargo Set Version
347+
run: |
348+
cargo install cargo-edit
349+
cargo set-version --workspace ${{ steps.latest-tag.outputs.tag }}
350+
351+
- name: Check semver
352+
uses: obi1kenobi/cargo-semver-checks-action@v2
353+
314354
rust-coverage:
315355
name: "Rust tests (coverage)"
316356
timeout-minutes: 120
@@ -351,6 +391,8 @@ jobs:
351391
tool: nextest
352392
- name: Rust Tests
353393
if: ${{ matrix.suite == 'tests' }}
394+
env:
395+
RUSTFLAGS: "-Cinstrument-coverage -A warnings --cfg vortex_nightly"
354396
run: |
355397
cargo +nightly nextest run --locked --workspace --all-features --no-fail-fast
356398
- name: Run TPC-H
@@ -397,7 +439,7 @@ jobs:
397439
- tag=rust-test-sanitizer
398440
env:
399441
# Add debug symbols and enable ASAN/LSAN with better output
400-
RUSTFLAGS: "-A warnings -Zsanitizer=address -Zsanitizer=leak --cfg disable_loom -C debuginfo=2 -C opt-level=0 -C strip=none"
442+
RUSTFLAGS: "-A warnings -Zsanitizer=address -Zsanitizer=leak --cfg disable_loom --cfg vortex_nightly -C debuginfo=2 -C opt-level=0 -C strip=none"
401443
ASAN_OPTIONS: "symbolize=1:print_stats=1:check_initialization_order=1:detect_leaks=1:halt_on_error=0:verbosity=1:leak_check_at_exit=1"
402444
LSAN_OPTIONS: "verbosity=1:report_objects=1"
403445
ASAN_SYMBOLIZER_PATH: "/usr/bin/llvm-symbolizer"
@@ -637,7 +679,7 @@ jobs:
637679
timeout-minutes: 120
638680
env:
639681
MIRIFLAGS: -Zmiri-strict-provenance -Zmiri-symbolic-alignment-check -Zmiri-disable-isolation -Zmiri-env-forward=RUST_BACKTRACE
640-
RUSTFLAGS: "-A warnings"
682+
RUSTFLAGS: "-A warnings --cfg vortex_nightly"
641683
RUST_BACKTRACE: full
642684
steps:
643685
- uses: actions/checkout@v6

.github/workflows/claude.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
name: Claude Code
22

3+
concurrency:
4+
# We shouldn't have multiple instances of Claude running on the same PR.
5+
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
6+
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
7+
38
on:
49
issue_comment:
510
types: [created]

.github/workflows/docs.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
11
name: Vortex Docs
22

3+
concurrency:
4+
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
5+
cancel-in-progress: true
6+
37
on:
48
push:
59
branches: [develop]
6-
workflow_dispatch: {}
10+
workflow_dispatch: { }
711

812
permissions:
913
contents: read

.github/workflows/fuzz.yml

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,16 @@
11
name: Fuzz
22

3+
concurrency:
4+
# The group causes runs to queue instead of running in parallel.
5+
group: fuzz
6+
# This ensures each run builds on the previous run's corpus discoveries rather than losing them to
7+
# failed compare-and-swap uploads.
8+
cancel-in-progress: false
9+
310
on:
411
schedule:
512
- cron: "0 */4 * * *" # every 4 hours
6-
workflow_dispatch:
13+
workflow_dispatch: { }
714

815
jobs:
916
io_fuzz:
@@ -49,7 +56,7 @@ jobs:
4956
- name: Run fuzzing target
5057
id: fuzz
5158
run: |
52-
RUST_BACKTRACE=1 cargo +nightly fuzz run --release --debug-assertions file_io -- -max_total_time=7200 2>&1 | tee fuzz_output.log
59+
RUSTFLAGS="--cfg vortex_nightly" RUST_BACKTRACE=1 cargo +nightly fuzz run --release --debug-assertions file_io -- -max_total_time=7200 2>&1 | tee fuzz_output.log
5360
continue-on-error: true
5461
- name: Check for crashes
5562
id: check
@@ -182,7 +189,7 @@ jobs:
182189
- name: Run fuzzing target
183190
id: fuzz
184191
run: |
185-
RUST_BACKTRACE=1 cargo +nightly fuzz run --release --debug-assertions array_ops -- -max_total_time=7200 2>&1 | tee fuzz_output.log
192+
RUSTFLAGS="--cfg vortex_nightly" RUST_BACKTRACE=1 cargo +nightly fuzz run --release --debug-assertions array_ops -- -max_total_time=7200 2>&1 | tee fuzz_output.log
186193
continue-on-error: true
187194
- name: Check for crashes
188195
id: check

.github/workflows/fuzzer-fix-automation.yml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
name: Fuzzer Fix Automation
22

3+
concurrency:
4+
group: fuzzer-fix-${{ inputs.issue_number || github.run_id }}
5+
cancel-in-progress: true
6+
37
on:
48
workflow_dispatch:
59
inputs:
@@ -163,7 +167,7 @@ jobs:
163167
echo "Building fuzzer target: ${{ steps.extract.outputs.target }} (debug mode for faster build)"
164168
165169
# Build the fuzzer target in debug mode (faster than release)
166-
if cargo +nightly fuzz build --dev --sanitizer=none "${{ steps.extract.outputs.target }}" 2>&1 | tee fuzzer_build.log; then
170+
if RUSTFLAGS="--cfg vortex_nightly" cargo +nightly fuzz build --dev --sanitizer=none "${{ steps.extract.outputs.target }}" 2>&1 | tee fuzzer_build.log; then
167171
echo "✅ Fuzzer target built successfully"
168172
echo "build_success=true" >> $GITHUB_OUTPUT
169173
else
@@ -183,7 +187,7 @@ jobs:
183187
echo "Attempting to reproduce crash with fuzzer (debug mode)..."
184188
185189
# Run fuzzer with crash file (debug mode, no sanitizer, full backtrace)
186-
RUST_BACKTRACE=full timeout 30s cargo +nightly fuzz run --dev --sanitizer=none "${{ steps.extract.outputs.target }}" "${{ steps.download.outputs.crash_file_path }}" -- -runs=1 2>&1 | tee crash_reproduction.log
190+
RUSTFLAGS="--cfg vortex_nightly" RUST_BACKTRACE=full timeout 30s cargo +nightly fuzz run --dev --sanitizer=none "${{ steps.extract.outputs.target }}" "${{ steps.download.outputs.crash_file_path }}" -- -runs=1 2>&1 | tee crash_reproduction.log
187191
188192
FUZZ_EXIT_CODE=${PIPESTATUS[0]}
189193

.github/workflows/labels.yml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
11
name: PR Labels
22

3+
concurrency:
4+
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
5+
cancel-in-progress: true
6+
37
on:
48
pull_request:
5-
types: [opened, reopened, synchronize, labeled, unlabeled] # Trigger on these PR activities
9+
# Trigger on these PR activities
10+
types: [opened, reopened, synchronize, labeled, unlabeled]
611

712
jobs:
813
check_changelog_label:
@@ -34,6 +39,7 @@ jobs:
3439
"performance"
3540
"break"
3641
"wire-break"
42+
"skip-changelog"
3743
)
3844
REQUIRED_LABELS_JSON=$(jq -n '$ARGS.positional' --args "${REQUIRED_LABELS[@]}")
3945
echo "Required Labels: $REQUIRED_LABELS_JSON"

.github/workflows/minimize_fuzz_corpus.yml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,13 @@
11
name: Minimize Fuzz Corpus
22

3+
concurrency:
4+
# The group causes runs to queue instead of running in parallel.
5+
group: minimize-corpus
6+
# This prevents one run from overwriting another's minimization work (no compare-and-swap used).
7+
cancel-in-progress: false
8+
39
on:
4-
workflow_dispatch:
10+
workflow_dispatch: { }
511

612
jobs:
713
io_fuzz_minimize:

.github/workflows/nightly-bench.yml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,15 @@
11
name: Nightly Benchmarks
22

3+
concurrency:
4+
# The group causes runs to queue instead of running in parallel.
5+
group: nightly-bench
6+
# This queues manual triggers to run after scheduled benchmarks complete.
7+
cancel-in-progress: false
8+
39
on:
410
schedule:
511
- cron: "0 0 * * *" # daily
6-
workflow_dispatch:
12+
workflow_dispatch: { }
713

814
permissions:
915
id-token: write # enables AWS-GitHub OIDC

0 commit comments

Comments
 (0)