Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 37 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -304,3 +304,40 @@ jobs:
# with an `export =` in it. The package job above is what checks
# the types, through the resolution a user actually gets.
- run: npm run test:deno

# The shared corpus, which is the same cases the engine runs against
# itself and every other client runs against theirs. A job of its own
# because it needs a second checkout, and on one platform because what
# it asks about is this client's value mapping rather than anything the
# operating system decides.
corpus:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: actions/setup-node@v7
with:
node-version: 24
- uses: Swatinem/rust-cache@v2
# The cases are versioned with the engine, so the revision comes
# out of the pin this client already builds against rather than
# being written down a second time and drifting away from it.
- id: pin
run: |
rev=$(sed -n 's/^zudb = .*rev = "\([0-9a-f]*\)".*/\1/p' Cargo.toml)
test -n "$rev"
echo "rev=$rev" >> "$GITHUB_OUTPUT"
- uses: actions/checkout@v7
with:
repository: tamnd/zu
ref: ${{ steps.pin.outputs.rev }}
path: engine
- run: npm ci
- run: npm run build:debug
# The runner first, because its summary is the line a person reads
# when this job goes red, and the suite second, because it is the
# one that knows which cases this client is allowed to leave
# unanswered.
- run: node conformance/cli.mjs engine/conformance/cases
- run: node --test "test/conformance*.test.mjs"
env:
ZU_CASES: engine/conformance/cases
74 changes: 50 additions & 24 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 4 additions & 4 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
name = "zudb-node"
version = "0.0.1"
edition = "2024"
rust-version = "1.97"
rust-version = "1.98"
license = "Apache-2.0"
repository = "https://github.com/tamnd/zu-node"
authors = ["Tam Nguyen <tamnd87@gmail.com>"]
Expand All @@ -18,14 +18,14 @@ crate-type = ["cdylib"]
# with (ADR 0002), so a revision is the honest way to say which one.
# A local checkout is used instead with a `paths` override in
# `.cargo/config.toml`, which is untracked on purpose.
zudb = { package = "zu", git = "https://github.com/tamnd/zu", rev = "0698a4eccd31670f0a875b6d097d7753440a51b3" }
zu-common = { git = "https://github.com/tamnd/zu", rev = "0698a4eccd31670f0a875b6d097d7753440a51b3" }
zudb = { package = "zu", git = "https://github.com/tamnd/zu", rev = "526ac583359f6112bca11bdae3fb43cc6fd76b2e" }
zu-common = { git = "https://github.com/tamnd/zu", rev = "526ac583359f6112bca11bdae3fb43cc6fd76b2e" }
# The one translation from a result into Arrow, which lives in the engine
# tree so that every client agrees about what a column becomes. `ipc` is
# the only feature this client turns on: the C Data Interface hands over
# a pointer and nothing in a JavaScript runtime can read one, so the way
# out here is the bytes of an IPC stream.
zu-arrow = { git = "https://github.com/tamnd/zu", rev = "0698a4eccd31670f0a875b6d097d7753440a51b3", features = ["ipc"] }
zu-arrow = { git = "https://github.com/tamnd/zu", rev = "526ac583359f6112bca11bdae3fb43cc6fd76b2e", features = ["ipc"] }
# N-API by way of napi-rs (ADR 0002). `napi9` is the version of N-API
# this addon declares it needs, which is what makes one binary work
# across Node 24, Node 26, Electron and Bun without a rebuild: the
Expand Down
Loading
Loading