Compatibility Matrix¶
OpenWAM is pre-1.0 Linux research software. Compatibility claims are split between API compatibility and exact numerical characterization.
Maintained Matrix¶
| Surface | Maintained contract |
|---|---|
| Operating system | Linux |
| Python | 3.11 and 3.12 |
| CPU semantic tests | both Python versions, dependencies from uv.lock |
| GPU characterization | documented CUDA host stack and immutable golden artifacts |
| Simulator integrations | fake-adapter CI; real environments on documented external stacks |
| Python SDK | open_wam.sdk.config, .data, .policy, .simulator, .results |
Installed distributions include a PEP 561 py.typed marker. Static type
information is therefore available to downstream packages without a separate
stub distribution; the stable import boundary remains the role-specific SDK.
pyproject.toml dependency ranges describe install compatibility. Exact
training gradients and rollout outputs are characterized only with the locked
dependency graph and the hardware/software stack recorded by the
characterization report. Use uv sync --frozen when reproducing those claims.
Changing PyTorch, Diffusers, Transformers, CUDA, attention backends, or GPU
models requires re-characterization even when installation remains supported.
The supported Diffusers range is intentionally capped below 0.38. That
release changed WAN RMS normalization precision and does not reproduce the
characterized bf16 checkpoint outputs. OpenWAM's lock currently selects
0.37.1; raising the cap is a numerical migration and requires the real-model
GPU characterization gate, not only an import or unit test.
Required Gates¶
The required CPU gate includes unmarked tests; marker selection cannot silently exclude the core suite:
uv sync --frozen --group dev --extra full
CUDA_VISIBLE_DEVICES="" uv run pytest --strict-markers -q \
-m "not (gpu or sim or data or slow)"
Model-facing changes additionally run the immutable GPU fixture-replay, training-step, and inference-step gates described in Testing. Real simulator and private-data tests are resource gates and are never implied by the CPU suite.
Compatibility Policy¶
Typed config fields, checkpoint compatibility, result schemas, and SDK exports
are fail-closed. The low-level checkpoint loader is strict by default. Standard
evaluation accepts a checkpoint superset: every current runtime tensor must be
present with the exact shape, while checkpoint-only tensors from a removed
optional component are reported and ignored. This is distinct from
--allow-partial-checkpoint, which may leave current runtime tensors missing
and is only an explicit migration diagnostic. New finite config choices use
enums, while extension identifiers and source names remain open strings.
Use the role-specific open_wam.sdk modules for extensions. Implementation
helpers outside that boundary are not stable APIs. Deprecations are documented
before removal.