Release Gates & Regression Tests — v2.2
Date: June 30, 2026
Branch: main
Engine: Airframe (wgpu/WebGPU — no CUDA, no llama.cpp)
Status: Active
All 7 gates defined in .github/workflows/release.yml under the preflight job.
Every gate must pass or the entire release stops.
Gate
Name
Covers
1/7
Core Build
cargo build --features airframe,huggingface — GPU engine via [patch.crates-io]
2
CUDA Timeout
Removed v2.0 — Airframe uses wgpu; no CUDA dependency
3/7
Template Packaging
Docker templates included in crates.io package (Issue #60 regression)
4/7
Binary Size
Constitutional 20 MB limit on shimmy binary
5/7
Test Suite
cargo test --lib --no-default-features --features huggingface
5.1/7
Airframe Compile Check
cargo check --features airframe — integration builds without errors
5.5/7
Regression Tests
cargo test --test core --test handlers --test compile_checks
6/7
Documentation
cargo doc --no-deps --features huggingface
7/7
crates.io Dry-Run
cargo publish --dry-run --features huggingface validates crates.io package
Regression Test Files (v2.2+)
File
Status
Tests
tests/core.rs
✅ Active — CLI, registry, templates, serde, SSE, discovery
28
tests/handlers.rs
✅ Active — HTTP endpoints (health, models, chat, tags, concurrency)
5
tests/compile_checks.rs
✅ Active — template file inclusion via include_str!
1
The following files were consumed into the consolidated suite above:
File
Absorbed By
tests/regression_tests.rs
tests/core.rs + tests/handlers.rs
tests/release_gate_integration.rs
cargo test --lib (CI already passes)
tests/template_compilation_regression_test.rs
tests/compile_checks.rs
tests/compilation_regression_test.rs
tests/compile_checks.rs + cargo check
tests/apple_silicon_detection_test.rs
— (MLX is a stub)
tests/integration_tests.rs
tests/handlers.rs
tests/cli_integration_tests.rs
tests/core.rs
tests/gpu_backend_tests.rs
— (Airframe handles GPU)
tests/anthropic_api_integration_test.rs
— (Anthropic layer removed)
tests/api_error_handling_test.rs
tests/core.rs + tests/handlers.rs
tests/openai_api_real_tests.rs
tests/core.rs + tests/handlers.rs
tests/safetensors_integration.rs
tests/core.rs
tests/workflow_tests.rs
— (dead_code module)
tests/regression/ (all 7 files)
tests/core.rs
# Gate 5 — Core lib tests
cargo test --lib --no-default-features --features huggingface -- --test-threads=1
# Gate 5.1 — Airframe compile check
cargo check --features airframe
# Gate 5.5 — Regression tests
cargo test --test core --test handlers --test compile_checks --features airframe,huggingface
# Full regression pass
cargo test --features airframe,huggingface
Feature
Purpose
crates.io safe
huggingface
Model downloading, tokenizer — default
✅ Yes
airframe
Airframe GPU engine via [patch.crates-io]
❌ No (path dep)
full
huggingface + airframe convenience alias
❌ No
apple
Apple Silicon convenience alias
platform-only
crates.io publish uses --no-default-features --features huggingface.
GitHub Release binaries use --features airframe,huggingface (built in CI matrix).
What's Gone (v2.0 → v2.2)
Removed
Why
CUDA Gate (Gate 2)
Airframe uses wgpu; zero CUDA dependency
shimmy-llama-cpp-2 dependency
Replaced by Airframe GPU engine
--features llama build path
No llama.cpp in this codebase
MLX-specific release artifacts
Not part of v2.0 shipping target
Binary size inflation from llama.cpp
Airframe is pure Rust; binary stays well under 20 MB
~2900 lines of tests in 19 files
Consolidated to ~660 lines across 3 files
Per-issue-file regression structure
Replaced by architecturally-organized test files