chore(release): bump to v0.24.0#322
Merged
Merged
Conversation
v0.24.0 — "Structured WIT records + a compiling wit-bindgen component crate". One feature area shipped since v0.23.0 (PR #320, closes #319 items 1/3/4/6/7): - REQ-CODEGEN-WIT-RECORDS-001 (verified) — spar codegen now emits structured, no_alloc-representable WIT from real AADL: a `data implementation` becomes a WIT `record` (recursively, dependency-first), scalar fields map to precise WIT scalars honouring signedness/float (a non-encodable field is a HARD ERROR, not a silent `list<u8>`), `wit_ident` preserves PascalCase word boundaries, each thread's `world` exports its `Dispatch_Protocol`-derived lifecycle, and a per-process binding crate wires the world to Rust (`generate!` + `impl Guest` + `export!`). Because wit-bindgen derives the `Guest` trait from the world, a `cargo check` of the emitted crate is a COMPILER-ENFORCED alignment oracle. - REQ-CODEGEN-WIT-RECORDS-002 (verified) — the WHOLE generated per-process crate now compiles: classifier-typed ports resolve to real Rust types (records -> structs in a per-crate `types` module derived from the SAME DataShape as the WIT records), per-thread files are relocated under the crate and module-wired, and the `Guest` delegates to each per-thread component. The no_alloc guarantee has a SOUND oracle at the WIT level (`list`/`string` absence) after a probe showed the wasm `cabi_realloc` symbol is unconditional wit-bindgen-rt glue that cannot discriminate; an opaque-port model is the negative control. The emitted crate also builds to wasm32-wasip2. A dedicated `codegen-oracle` CI job runs the #[ignore] compile oracles so they actually gate. Honesty / scope (stated, not footnoted): the no-alloc guarantee holds only for all-scalar/record ports (an opaque top-level port keeps the `list<u8>` fallback by design). DEFERRED to successor requirements: the data plane (populating ports from imported WIT functions + persistent component state — Guest methods are free fns), and REQ-CODEGEN-VERIFY-WORKSPACE-001 (`spar codegen --verify test/build` still emits artifacts that are inert in the generated virtual workspace). Falsification: if a generated `Guest` method name diverges from its WIT world export, or a record-typed port references an undefined Rust type, the `codegen-oracle` job fails to compile the emitted crate; if an all-scalar/record model emits any `list`/`string` in its WIT, the no-alloc oracle fails. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Rivet verification gate✅ 20/20 passed
Filter: Failed artifacts(none) Updated automatically by |
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Release bump for v0.24.0 — "Structured WIT records + a compiling wit-bindgen component crate" (ships PR #320, closes #319 items 1/3/4/6/7).
Shipped (promoted to
verified)Dispatch_Protocol-derived lifecycle.DataShapeas the WIT records, relocated + module-wired per-thread components, delegatingGuest), builds towasm32-wasip2, with a sound WIT-level no-alloc oracle. Gated in CI by the newcodegen-oraclejob.Bump contents (mirrors the v0.23.0 bump)
Cargo.tomlworkspace version 0.23.0 → 0.24.0;Cargo.lockpropagated (spar-* crates only, no external dep changes);vscode-spar/package.json0.23.0 → 0.24.0.artifacts/requirements.yaml: REQ-CODEGEN-WIT-RECORDS-001/002 →status: verified,release: v0.24.0(top-level).Scope / deferrals (unchanged, forward-looking)
list<u8>fallback by design).REQ-CODEGEN-VERIFY-WORKSPACE-001(--verify test/buildemits inert artifacts).REQ-EMV2-PROPAGATION-003(binding-path traversal) remains proposed backlog, as it was for v0.23.0.After merge, a signed annotated
v0.24.0tag on the bump commit triggers the release pipeline.🤖 Generated with Claude Code