Skip to content

Commit da1a0a9

Browse files
committed
Merge remote-tracking branch 'origin/develop' into claude/add-transpose-metadata-8iZD0
Signed-off-by: Joe Isaacs <joe.isaacs@live.co.uk> # Conflicts: # encodings/fastlanes/Cargo.toml # encodings/sparse/public-api.lock # encodings/sparse/src/lib.rs # vortex-array/public-api.lock # vortex-file/src/lib.rs
2 parents bf04dd1 + e22c9dc commit da1a0a9

396 files changed

Lines changed: 22497 additions & 49157 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.

.agents/skills/pr-review/SKILL.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -60,16 +60,16 @@ network permissions.
6060

6161
## Review Areas
6262

63-
| Area | Focus |
64-
| --- | --- |
65-
| Correctness | Length and dtype invariants, nullability, validity masks, offset math, canonicalization, boundary conditions, empty arrays, scalar vs array behavior |
66-
| Rust soundness | `unsafe` blocks, aliasing, lifetimes, alignment, FFI boundaries, panic safety, ownership of buffers and arrays |
67-
| Compression and IO | Encoding metadata, statistics, layout evolution, file compatibility, scan projection/filter behavior, async IO edge cases |
68-
| Performance | Unnecessary copies, lost zero-copy behavior, avoidable allocations, poor cache locality, quadratic loops, excessive dynamic dispatch in hot paths |
69-
| Error handling | Correct `vortex_err!` and `vortex_bail!` usage, useful messages, no accidental panics on user data |
70-
| API compatibility | Public API docs, public-api lock updates, feature flags, crate boundaries, Python/Java binding impacts |
71-
| Tests | Regression coverage, edge cases, parameterized cases with `rstest`, use of `assert_arrays_eq!`, docs doctests when docs change |
72-
| Verification scope | Avoid requesting or running expensive workspace checks when the PR only changes docs, agent files, symlinks, or metadata |
63+
| Area | Focus |
64+
| ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
65+
| Correctness | Length and dtype invariants, nullability, validity masks, offset math, canonicalization, boundary conditions, empty arrays, scalar vs array behavior |
66+
| Rust soundness | `unsafe` blocks, aliasing, lifetimes, alignment, FFI boundaries, panic safety, ownership of buffers and arrays |
67+
| Compression and IO | Encoding metadata, statistics, layout evolution, file compatibility, scan projection/filter behavior, async IO edge cases |
68+
| Performance | Unnecessary copies, lost zero-copy behavior, avoidable allocations, poor cache locality, quadratic loops, excessive dynamic dispatch in hot paths |
69+
| Error handling | Correct `vortex_err!` and `vortex_bail!` usage, useful messages, no accidental panics on user data |
70+
| API compatibility | Public API docs, feature flags, crate boundaries, Python/Java binding impacts |
71+
| Tests | Regression coverage, edge cases, parameterized cases with `rstest`, use of `assert_arrays_eq!`, docs doctests when docs change |
72+
| Verification scope | Avoid requesting or running expensive workspace checks when the PR only changes docs, agent files, symlinks, or metadata |
7373

7474
## Output
7575

.github/AGENTS.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ Nightly is required for:
44
- `cargo fmt` (nightly formatting options)
55
- `-Z` flags: sanitizers (`-Zsanitizer=address`), miri (`-Zmiri-*`), publish (`-Zpublish-timeout`)
66
- `cargo-fuzz` (requires nightly)
7-
- `public-api` xtask (nightly rustdoc JSON)
87

98
Everything else (build, clippy, tests, docs, benchmarks, packaging) should use stable.
109

.github/pull_request_template.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,7 @@ Consider whether the change affects users in one of the following ways:
3939
3. Should some documentation be updated to reflect this change?
4040
4141
If a public API is changed in a breaking manner, make sure to add the
42-
appropriate label. You can run `./scripts/public-api.sh` locally to see if there
43-
are any public API changes (and this also runs in our CI).
42+
appropriate label.
4443
-->
4544

4645
## Testing

.github/workflows/bench-pr.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ jobs:
4949

5050
- name: Install DuckDB
5151
run: |
52-
wget -qO- https://github.com/duckdb/duckdb/releases/download/v1.5.2/duckdb_cli-linux-amd64.zip | funzip > duckdb
52+
wget -qO- https://github.com/duckdb/duckdb/releases/download/v1.5.3/duckdb_cli-linux-amd64.zip | funzip > duckdb
5353
chmod +x duckdb
5454
echo "$PWD" >> $GITHUB_PATH
5555

.github/workflows/bench.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ jobs:
6363

6464
- name: Install DuckDB
6565
run: |
66-
wget -qO- https://github.com/duckdb/duckdb/releases/download/v1.5.2/duckdb_cli-linux-amd64.zip | funzip > duckdb
66+
wget -qO- https://github.com/duckdb/duckdb/releases/download/v1.5.3/duckdb_cli-linux-amd64.zip | funzip > duckdb
6767
chmod +x duckdb
6868
echo "$PWD" >> $GITHUB_PATH
6969
@@ -107,7 +107,6 @@ jobs:
107107
108108
- name: Ingest results to v3 server
109109
if: vars.V3_INGEST_URL != ''
110-
continue-on-error: true
111110
shell: bash
112111
env:
113112
INGEST_BEARER_TOKEN: ${{ secrets.INGEST_BEARER_TOKEN }}

.github/workflows/ci.yml

Lines changed: 17 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ jobs:
162162
target: wasm32-unknown-unknown
163163
env:
164164
rustflags: "RUSTFLAGS='-A warnings --cfg getrandom_backend=\"unsupported\"'"
165-
args: "--target wasm32-unknown-unknown --exclude vortex --exclude vortex-cuda --exclude vortex-cub --exclude vortex-nvcomp --exclude vortex-datafusion --exclude vortex-duckdb --exclude vortex-tui --exclude vortex-zstd --exclude vortex-test-e2e-cuda --exclude vortex-sqllogictest"
165+
args: "--target wasm32-unknown-unknown --exclude vortex --exclude vortex-cuda --exclude vortex-cub --exclude vortex-nvcomp --exclude vortex-datafusion --exclude vortex-duckdb --exclude vortex-tui --exclude vortex-zstd --exclude vortex-test-e2e-cuda --exclude vortex-sqllogictest --exclude vortex-parquet-variant"
166166
steps:
167167
- uses: runs-on/action@v2
168168
if: github.repository == 'vortex-data/vortex'
@@ -255,7 +255,7 @@ jobs:
255255
await github.rest.checks.update({
256256
...context.repo,
257257
check_run_id: Number(url.split('/').pop()),
258-
output: { title: `${failed.join(', ')} failing`, summary: '' },
258+
output: { title: `${failed.join(', ')} - failing`, summary: '' },
259259
});
260260
}
261261
core.setFailed(`Lint failed: ${failed.join(', ')}`);
@@ -270,6 +270,7 @@ jobs:
270270
run: |
271271
git ls-files vortex-cuda vortex-cxx vortex-duckdb vortex-ffi \
272272
| grep -E '\.(cpp|hpp|cu|cuh|h)$' \
273+
| grep -v 'arrow/reference/arrow_c_device\.h$' \
273274
| grep -v 'kernels/src/bit_unpack_.*\.cu$' \
274275
| grep -v 'kernels/src/bit_unpack_.*_lanes\.cuh$' \
275276
| xargs clang-format --dry-run --Werror --style=file
@@ -293,40 +294,6 @@ jobs:
293294
run: |
294295
cargo hack --no-dev-deps --ignore-private clippy --profile ci --no-default-features -- -D warnings
295296
296-
public-api:
297-
name: "Public API lock files"
298-
timeout-minutes: 30
299-
runs-on: >-
300-
${{ github.repository == 'vortex-data/vortex'
301-
&& format('runs-on={0}/runner=amd64-xsmall/image=ubuntu24-full-x64-pre-v2/tag=public-api', github.run_id)
302-
|| 'ubuntu-latest' }}
303-
steps:
304-
- uses: runs-on/action@v2
305-
if: github.repository == 'vortex-data/vortex'
306-
with:
307-
sccache: s3
308-
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
309-
- uses: ./.github/actions/setup-prebuild
310-
- name: Install nightly for public-api
311-
run: rustup toolchain install $NIGHTLY_TOOLCHAIN
312-
- name: Regenerate public API lock files
313-
run: cargo +$NIGHTLY_TOOLCHAIN run --profile ci -p xtask -- public-api
314-
- name: Verify lock files are up to date
315-
run: |
316-
if ! git diff --quiet '**/public-api.lock'; then
317-
git diff -U0 '**/public-api.lock'
318-
echo ""
319-
echo ""
320-
echo "Changed files:"
321-
git diff --name-only '**/public-api.lock'
322-
echo ""
323-
echo ""
324-
echo "Public API lock files are out of date."
325-
echo "Run './scripts/public-api.sh' locally to"
326-
echo "regenerate them, then commit the changes."
327-
exit 1
328-
fi
329-
330297
rust-test-other:
331298
name: "Rust tests (${{ matrix.os }})"
332299
timeout-minutes: 30
@@ -369,6 +336,19 @@ jobs:
369336
if: matrix.os != 'windows-x64'
370337
run: |
371338
cargo nextest run --cargo-profile ci --locked --workspace --all-features --no-fail-fast --exclude vortex-bench --exclude xtask --exclude vortex-sqllogictest
339+
- name: vortex-bench-server admin snapshot tests (Linux only - network-dependent)
340+
# The /api/admin/snapshot tests INSTALL+LOAD the vortex DuckDB
341+
# core extension from extensions.duckdb.org on first call. They
342+
# are #[ignore]'d by default so `cargo test` works in offline
343+
# environments (sandboxed CI, local dev without network). This
344+
# step runs them explicitly on the Linux runners, which DO have
345+
# outbound network, so the entire backup contract is covered
346+
# in CI before merge. macOS/arm64 also exercises them - same
347+
# extension, same network. Windows skipped (bench-server is
348+
# excluded from Windows test matrix above).
349+
if: matrix.os == 'linux-x64' || matrix.os == 'linux-arm64' || matrix.os == 'macos-arm64'
350+
run: |
351+
cargo nextest run --cargo-profile ci --locked -p vortex-bench-server --test admin --run-ignored only
372352
- uses: ./.github/actions/check-rebuild
373353
if: matrix.os != 'windows-x64'
374354
with:
@@ -412,7 +392,7 @@ jobs:
412392
continue-on-error: ${{ matrix.checks == 'advisories' }}
413393
steps:
414394
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
415-
- uses: EmbarkStudios/cargo-deny-action@6c8f9facfa5047ec02d8485b6bf52b587b7777d1 # v2
395+
- uses: EmbarkStudios/cargo-deny-action@a531616d8ce3b9177443e48a1159bc945a099823 # v2
416396
with:
417397
command: check ${{ matrix.checks }}
418398

.github/workflows/claude-review.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,7 @@ jobs:
242242

243243
- name: Run Claude Code in review-only mode
244244
id: claude
245-
uses: anthropics/claude-code-action@51ea8ea73a139f2a74ff649e3092c25a904aed7e # v1.0.123
245+
uses: anthropics/claude-code-action@787c5a0ce96a9a6cfb050ea0c8f4c05f2447c251 # v1.0.133
246246
with:
247247
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
248248
# This workflow deliberately uses the built-in token because it only needs

.github/workflows/claude-write.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ jobs:
197197

198198
- name: Run Claude Code
199199
id: claude
200-
uses: anthropics/claude-code-action@51ea8ea73a139f2a74ff649e3092c25a904aed7e # v1.0.123
200+
uses: anthropics/claude-code-action@787c5a0ce96a9a6cfb050ea0c8f4c05f2447c251 # v1.0.133
201201
with:
202202
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
203203
github_token: ${{ steps.app-token.outputs.token }}

.github/workflows/cuda.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ jobs:
6969
with:
7070
repo-token: ${{ secrets.GITHUB_TOKEN }}
7171
- name: Install nextest
72-
uses: taiki-e/install-action@7be9fd86bd1707236395105d6e9329dd1511a7e1 # v2
72+
uses: taiki-e/install-action@8f531eaecd1898bc3da7d104ad91bee98d1b97bd # v2
7373
with:
7474
tool: nextest
7575
- name: Rust Tests

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,7 @@ jobs:
236236
CRASH_FILE: ${{ steps.extract.outputs.crash_file }}
237237
CRASH_FILE_PATH: ${{ steps.download.outputs.crash_file_path }}
238238
ARTIFACT_URL: ${{ steps.extract.outputs.artifact_url }}
239-
uses: anthropics/claude-code-action@51ea8ea73a139f2a74ff649e3092c25a904aed7e # v1
239+
uses: anthropics/claude-code-action@787c5a0ce96a9a6cfb050ea0c8f4c05f2447c251 # v1
240240
with:
241241
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
242242
github_token: ${{ secrets.GITHUB_TOKEN }}

0 commit comments

Comments
 (0)