Skip to content

A size budget asserted in CI, and the wasm artifact ships with the release - #684

Merged
onatozmenn merged 1 commit into
mainfrom
issue-592-594-wasm-size-and-release
Jul 30, 2026
Merged

A size budget asserted in CI, and the wasm artifact ships with the release#684
onatozmenn merged 1 commit into
mainfrom
issue-592-594-wasm-size-and-release

Conversation

@onatozmenn

Copy link
Copy Markdown
Collaborator

Closes #592. Closes #594.

[profile.wasm] (root Cargo.toml): opt-level = "z", one codegen unit, LTO, stripped, panic = "abort", for deed-wasm's artifact specifically. Doesn't touch deed's own release profile.

Measured: 741,996 bytes uncompressed, 245,645 gzipped (down from 1,084,133 uncompressed on the default release profile). The embedded std/ library is 39,303 of that, about five percent; the rest is the compiler itself. design/04-capabilities.md carries the numbers next to the #590/#591 section they belong with.

ci.yml gets a wasm-size job: builds with --profile wasm, fails if the artifact is over 1,500,000 bytes uncompressed or 550,000 gzipped. Room to grow, not slack to stop counting.

deed-wasm gets deed_version(), reading env!("CARGO_PKG_VERSION") through the same deed_result_ptr/deed_result_len pair every other verb uses, so the artifact carries its own version rather than trusting a filename (#594). release.yml gets a fourth job building and packaging deed-<tag>-wasm32-unknown-unknown.wasm alongside the three platform binaries, from the same commit and the same tag, and publish now waits on it too.

Stacked on #683 for the deed-wasm crate; will show a clean diff once that merges.

@onatozmenn
onatozmenn enabled auto-merge (squash) July 30, 2026 22:24
…lease (#592, #594)

[profile.wasm] (root Cargo.toml): opt-level z, one codegen unit, LTO,
stripped, panic=abort, for deed-wasm's artifact specifically. Doesn't touch
deed's own release profile.

Measured: 741,996 bytes uncompressed, 245,645 gzipped (down from 1,084,133
uncompressed on the default release profile). The embedded std/ library is
39,303 of that, about five percent; the rest is the compiler itself.
design/04-capabilities.md carries the numbers next to the #590/#591 section
they belong with.

ci.yml gets a wasm-size job: builds with --profile wasm, fails if the
artifact is over 1,500,000 bytes uncompressed or 550,000 gzipped. Room to
grow, not slack to stop counting.

deed-wasm gets deed_version(), reading env!("CARGO_PKG_VERSION") through the
same deed_result_ptr/deed_result_len pair every other verb uses, so the
artifact carries its own version rather than trusting a filename (#594).
release.yml gets a fourth job building and packaging
deed-<tag>-wasm32-unknown-unknown.wasm alongside the three platform
binaries, from the same commit and the same tag, and publish now waits on
it too.
@onatozmenn
onatozmenn force-pushed the issue-592-594-wasm-size-and-release branch from e803915 to 1293307 Compare July 30, 2026 23:37
@onatozmenn
onatozmenn merged commit 8c51d3e into main Jul 30, 2026
3 checks passed
@onatozmenn
onatozmenn deleted the issue-592-594-wasm-size-and-release branch July 30, 2026 23:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

The wasm artifact ships with the release, and the page pins a tag A size budget for the wasm artifact, asserted rather than hoped for

1 participant