dlt 0.15.0

DLT (direct linear transform) algorithm for camera calibration
Documentation
name: Build

on:
  push:
    branches: ['**']
  pull_request:
    branches: ['**']

permissions:
  contents: read

concurrency:
  group: build-${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

jobs:
  quality:
    name: Formatting and lints
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v7
      - name: Install Rust toolchain
        uses: dtolnay/rust-toolchain@4360b52568e2003a75bf9bc1d59f33a8e3fc893c # stable
        with:
          components: clippy, rustfmt
      - name: Check formatting
        run: cargo fmt --all -- --check
      - name: Run Clippy
        run: cargo clippy --workspace --all-targets --all-features -- -D warnings

  test:
    name: Tests and example
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v7
      - name: Install Rust toolchain
        uses: dtolnay/rust-toolchain@4360b52568e2003a75bf9bc1d59f33a8e3fc893c # stable
      - name: Run tests
        run: cargo test --workspace --all-features
      - name: Run example
        run: cargo run -p dlt-examples

  msrv:
    name: Rust 1.89
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v7
      - name: Install Rust 1.89
        uses: dtolnay/rust-toolchain@4360b52568e2003a75bf9bc1d59f33a8e3fc893c
        with:
          toolchain: '1.89'
      - name: Check workspace
        run: cargo check --workspace --all-targets --all-features

  no-std:
    name: no-std
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v7
      - name: Install Rust toolchain
        uses: dtolnay/rust-toolchain@4360b52568e2003a75bf9bc1d59f33a8e3fc893c # stable
        with:
          targets: thumbv7em-none-eabihf
      - name: Check no-std build
        run: cargo check -p dlt --no-default-features --target thumbv7em-none-eabihf

  package:
    name: Package dry run
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v7
      - name: Install Rust toolchain
        uses: dtolnay/rust-toolchain@4360b52568e2003a75bf9bc1d59f33a8e3fc893c # stable
      - name: Verify crate package
        run: cargo publish --dry-run -p dlt