Release Gates & Regression Tests — v2.0
Date: May 20, 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 submodule
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
Issue Regression
Per-issue regression tests (see list below)
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
File
Status
tests/regression_tests.rs
✅ Active — main issue regression suite
tests/release_gate_integration.rs
✅ Active — validates gate system itself
tests/template_compilation_regression_test.rs
✅ Active — template file inclusion
tests/compilation_regression_test.rs
✅ Active — compilation sanity
tests/apple_silicon_detection_test.rs
✅ Active — GPU detection (Issue #87)
tests/integration_tests.rs
✅ Active — API surface integration
tests/cli_integration_tests.rs
✅ Active — CLI surface
tests/gpu_backend_tests.rs
✅ Active — GPU backend selection
Gate 5.5 Issue Regression Tests (in regression_tests.rs)
Test
Issue
test_issue_111_gpu_metrics_endpoint
#111 — GPU metrics endpoint
test_issue_112_safetensors_engine_selection
#112 — SafeTensors engine selection
test_issue_113_openai_api_frontend_compatibility
#113 — OAI /v1/models endpoint
test_issue_113_ollama_api_tags_response_structure
#113 — Ollama /api/tags endpoint
test_issue_114_mlx_distribution_features
#114 — MLX distribution feature flags
test_issue_191_multi_part_content_array_deserialization
#191 — Multi-part content array (422 fix)
test_qwen_model_template_detection
#13 — Qwen ChatML template
test_custom_model_directory_environment_variables
#12 — Custom model directories
# 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 — Issue regression tests
cargo test --test regression_tests --no-default-features --features huggingface
# Gate validation system tests
cargo test --test release_gate_integration
# Full regression pass
cargo test --no-default-features --features huggingface
Feature
Purpose
crates.io safe
huggingface
Model downloading, tokenizer — default
✅ Yes
airframe
Airframe GPU engine via submodule path dep
❌ 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).
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