Audience
Verification level
COMPILE-ONLY PASS. The program compiles both selectors in one Run and verifies the exact versions and revision labels. No simulator or asset loader is started.
Files
run.yamlcreates one versionless instance and one exact@1.0.0instance.main.pychecks which release each instance resolved to.../catalog/versioned_prop_v1.yamlandversioned_prop_v2.yamlare two immutable releases of the same component identity.../catalog/index.yamlpublishes both and declaresstable: 2.0.0.
Read the Registry and manifests
Both Manifest files use the same identity:
id: object://fastsim/component-demo-versioned-prop
Their version and semantics.revision_label differ. The Registry index maps every
release to one exact Manifest digest and separately names the stable target. “Stable”
is an explicit Registry pointer; FastSim does not infer it from the largest number.
Read the Run
objects:
current:
use: object://fastsim/component-demo-versioned-prop
legacy:
use: object://fastsim/component-demo-versioned-prop@1.0.0
The first selector follows stable and currently resolves to 2.0.0. The second
pins exactly 1.0.0. This example intentionally teaches full exact versions only.
Do not infer npm-style ranges, caret syntax, inequalities, or other compatibility
semantics: FastSim's public authoring shown here declares none of those.
Run it
fastsim config validate run.yaml --json
fastsim config expand run.yaml
python main.py
Expected output:
Versionless use selected: 2.0.0 (Registry stable)
Exact @1.0.0 selected: 1.0.0
Resolved releases: ['1.0.0', '2.0.0']
Common errors
- Assuming versionless means “latest”: it means the Registry's explicit
stable. - Editing a published Manifest without updating its index SHA-256: Registry loading fails rather than changing an existing release silently.
- Using
@latest,^1, or comparison expressions: they are not part of this documented contract. - Using
stablewhen reproducing accepted data: create and verify a Run lock when exact component and resource content must be frozen.
Previous: 09 — Defaults and parameters · Next: 11 — Backend variants