Skip to content

U4 (D-RU-4): co-addressed join operator over one JoinDomain #52

U4 (D-RU-4): co-addressed join operator over one JoinDomain

U4 (D-RU-4): co-addressed join operator over one JoinDomain #52

name: Crepe plan probe
# `crates/crepe-plan-probe` is excluded from the workspace (own [workspace],
# git deps on the crepe and MORK forks, lance 13 / lancedb 0.40), so no
# workspace job builds it. It runs from its own directory so the cargo config
# above it and its own `.cargo/config.toml` apply. It path-deps relalg,
# mask-risc, r2il, mork-pathmap-probe and lance-graph-contract (the ordered lane and
# facet keys of arm B), so changes there run it too.
on:
pull_request:
paths:
- 'crates/crepe-plan-probe/**'
- 'crates/lance-graph-relalg/**'
- 'crates/lance-graph-r2il/**'
- 'crates/lance-graph-contract/**'
- 'crates/lance-graph-mask-risc/**'
- 'crates/mork-pathmap-probe/**'
- '.github/workflows/crepe-plan-probe.yml'
- 'rust-toolchain.toml'
push:
branches: [main]
paths:
- 'crates/crepe-plan-probe/**'
- 'crates/lance-graph-relalg/**'
- 'crates/lance-graph-r2il/**'
- 'crates/lance-graph-contract/**'
- 'crates/lance-graph-mask-risc/**'
- 'crates/mork-pathmap-probe/**'
- '.github/workflows/crepe-plan-probe.yml'
- 'rust-toolchain.toml'
workflow_dispatch:
permissions:
contents: read
jobs:
probe:
runs-on: ubuntu-latest
timeout-minutes: 60
defaults:
run:
working-directory: crates/crepe-plan-probe
env:
CARGO_PROFILE_DEV_DEBUG: "0"
CARGO_INCREMENTAL: "0"
steps:
- uses: actions/checkout@v4
- name: Setup rust toolchain (pinned by rust-toolchain.toml)
run: rustup show
# lance's build compiles .proto files: `protoc` alone is not enough, the
# well-known includes (libprotobuf-dev) are needed too.
- name: Install protoc and the protobuf includes (for lance)
run: sudo apt-get update && sudo apt-get install -y protobuf-compiler libprotobuf-dev
- run: cargo fmt --check
- run: cargo clippy --all-targets -- -D warnings
- run: cargo test
# The walk_mask correctness fixtures (tuple sets against ascent and
# crepe). Examples are compiled by `cargo test` but their tests only run
# when named. The benchmark itself (`cargo run --release --example
# walk_mask`) is not run in CI.
- run: cargo test --example walk_mask
# D-RU-6 lab probe: the same program over RMAP tiles, its oracle
# comparisons and refusals. Its benchmark is not run in CI either.
- run: cargo test --example walk_tile
# D-RU-3 (U3): cross-rule CSE; its oracle comparisons and refusals.
# The benchmark (`cargo run --release --example rule_cse`) is not run
# in CI.
- run: cargo test --example rule_cse
# D-RU-4 (U4): the co-addressed join operator against the star path.
# The benchmark (`cargo run --release --example coaddressed`) is not
# run in CI.
- run: cargo test --example coaddressed
# D-RU-6 arm C: the block-sparse product, against arms A and B and the
# oracles, its refusals and the semi-naive bound.
- run: cargo test --example walk_sparse
# D-RU-6 arm A′: walk_mask with the dirty-frontier switches, against A
# and the oracles. The benchmark and the chain sweep are not run in CI.
- run: cargo test --example walk_dirty
# relalg is its own workspace and patches ndarray to a sibling checkout
# (`../../../ndarray` from its directory); no other job runs its tests.
- name: relalg tests and clippy
working-directory: crates/lance-graph-relalg
run: |
git clone --depth 1 https://github.com/AdaWorldAPI/ndarray ../../../ndarray
cargo fmt --check
cargo test
cargo clippy --all-targets -- -D warnings
# D-RU-2 benchmark smoke run; an n that is not a multiple of 64
# exercises the plane tail.
BENCH_N=100003 BENCH_REPS=1 cargo run --example program_bench