Add PhiSpiral256 SoA cross-system integration plan #458
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Style Check | |
| on: | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| paths: | |
| - crates/** | |
| - Cargo.toml | |
| - Cargo.lock | |
| - .github/workflows/style.yml | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
| cancel-in-progress: true | |
| env: | |
| CARGO_TERM_COLOR: always | |
| RUSTFLAGS: "-C debuginfo=1 -C target-cpu=x86-64-v3" | |
| jobs: | |
| # Clippy runs FIRST and is mandatory — logical soundness before syntax. | |
| # Discipline: | |
| # - NEVER use `clippy --fix` for unused-import warnings; they signal | |
| # missing wiring, not dead code. Fix the wiring or add `#[allow]` | |
| # with a comment explaining why. | |
| # - Each clippy violation is owned by the author of the code that | |
| # introduced it; resolve manually. | |
| # - Run clippy in batches (per-feature combo), not after every file edit. | |
| clippy: | |
| runs-on: ubuntu-24.04 | |
| timeout-minutes: 25 | |
| defaults: | |
| run: | |
| working-directory: lance-graph | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| path: lance-graph | |
| - name: Checkout AdaWorldAPI/ndarray (sibling dependency) | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: AdaWorldAPI/ndarray | |
| # ndarray master now exports wht_f32, kmeans, squared_l2, | |
| # dequantize_i8_to_f32, quantize_f32_to_i2, dequantize_i2_to_f32 | |
| # publicly (ndarray PR #115, merged 2026-04-30). Pin retired. | |
| path: ndarray | |
| - name: Setup rust toolchain | |
| run: | | |
| rustup toolchain install stable | |
| rustup default stable | |
| rustup component add clippy | |
| - uses: Swatinem/rust-cache@v2 | |
| with: | |
| shared-key: "lance-graph-deps" | |
| workspaces: lance-graph/crates/lance-graph | |
| - name: Install dependencies | |
| run: | | |
| sudo apt update | |
| sudo apt install -y protobuf-compiler | |
| # Clippy is gated tier-by-tier as the codebase incrementally adopts it. | |
| # PRs that touch a new crate own that crate's clippy debt before merging. | |
| # | |
| # Tier A (mandatory, gating): zero-dep contract crate | |
| - name: Clippy contract (zero-dep, mandatory) | |
| run: cargo clippy --manifest-path crates/lance-graph-contract/Cargo.toml --lib --tests -- -D warnings | |
| # Tier B (advisory until incrementally cleaned, non-gating): | |
| # lance-graph core has ~91 pre-existing clippy violations to be paid down | |
| # in subsequent PRs (TD-CLIPPY-LG-1). Don't auto-fix — each violation | |
| # is a wiring/refactor decision owned by the introducing author. | |
| - name: Clippy lance-graph (advisory) | |
| continue-on-error: true | |
| run: cargo clippy --manifest-path crates/lance-graph/Cargo.toml --lib --tests -- -D warnings | |
| format: | |
| runs-on: ubuntu-24.04 | |
| timeout-minutes: 15 | |
| needs: clippy | |
| defaults: | |
| run: | |
| working-directory: lance-graph | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| path: lance-graph | |
| - name: Checkout AdaWorldAPI/ndarray (sibling dependency for cargo metadata) | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: AdaWorldAPI/ndarray | |
| # ndarray master now exports wht_f32, kmeans, squared_l2, | |
| # dequantize_i8_to_f32, quantize_f32_to_i2, dequantize_i2_to_f32 | |
| # publicly (ndarray PR #115, merged 2026-04-30). Pin retired. | |
| path: ndarray | |
| - uses: actions-rust-lang/setup-rust-toolchain@v1 | |
| with: | |
| components: rustfmt | |
| - name: Check formatting | |
| run: cargo fmt --manifest-path crates/lance-graph/Cargo.toml -- --check | |
| # typos / spell-check removed 2026-04-26: too many false positives on | |
| # technical jargon (NARS terms, codec acronyms, German loanwords used in | |
| # the cognitive stack). Spelling discipline is a code-review concern, | |
| # not a CI gate. | |