subdiv-kernels 0.1.0

Standalone subdivision kernel crate for Rust and wasm32 workflows
Documentation
name: CI

# Anti-rot gate. The limit-normal OpenSubdiv-oracle tests silently rotted once
# (the `opensubdiv-petite` dep drifted its API and bumped vendored OpenSubdiv
# 3.5 -> 3.6.1) because nothing ran them. The `oracle` job below compiles AND
# runs those tests on every push/PR, which catches both compile drift and
# runtime divergence.

on:
  push:
    branches: [master]
  pull_request:

# Cancel superseded runs on the same ref.
concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

env:
  CARGO_TERM_COLOR: always

jobs:
  # Cheap, fast feedback: formatting, library-level lint, and README freshness.
  # Compiles only the subdiv-kernels lib (no `opensubdiv-petite`, no C++ build).
  lint:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@stable
        with:
          components: rustfmt, clippy
      - uses: Swatinem/rust-cache@v2
      - uses: taiki-e/install-action@v2
        with:
          tool: cargo-rdme
      # Informational only: the tree carries pre-existing rustfmt version-drift
      # diffs (doc/import rewrapping). Surface them without blocking PRs until a
      # one-shot tree-wide reformat under a pinned toolchain lands; flip to a
      # hard gate then.
      - name: rustfmt (informational)
        run: cargo fmt --all --check
        continue-on-error: true
      - name: clippy (lib)
        run: cargo clippy --lib
      # Fail if the README has drifted from the lib.rs crate docs. Warnings
      # (unresolved re-export intra-doc links) are expected and don't fail.
      - name: README in sync with lib.rs
        run: cargo rdme --check --no-fail-on-warnings

  # Full suite including the OpenSubdiv-oracle gates. `opensubdiv-petite` is a
  # crates.io dependency that vendors OpenSubdiv and builds it via cmake + a C++
  # compiler, so those are installed here.
  oracle:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@stable
      - uses: Swatinem/rust-cache@v2
      - name: Install C++ build tooling for vendored OpenSubdiv
        run: sudo apt-get update && sudo apt-get install -y cmake clang
      - name: Test (default features, includes OSD oracle)
        run: cargo test --no-fail-fast