From c618041c0c6e39ba42ea4bd909226f93a99d0b82 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Wed, 7 Oct 2026 01:51:46 +0000 Subject: [PATCH] test(wasm): bound the engine and combined gzip budgets at gross growth develop at 4ce0260 (grid view and relationship matrix) is over the combined budget again: on CircleCI's cimg/go:1.25-node image the gzipped js build of sysml-wasm is 8,355,865 bytes against the 8,350,000-byte budget, failing TestWasmRuns/js/fits_the_combined_size_budget in the Go gates and binaries and Go coverage shards jobs of every develop pipeline from 3835 on, while sysml-engine is 7,686,608 against 7,700,000. A GitHub runner builds the same tree about 11 KB smaller (8,344,612 / 7,686,149), so the pull-request gate passed. Before that merge the figures were 8,329,707 / 7,662,571 on CircleCI and 8,314,894 / 7,656,349 on GitHub. The size as it stands is accepted. Set combinedGzipBudget to 10,000,000 and engineGzipBudget to 9,000,000 so the budgets bound gross growth only instead of moving 50 KB with each feature; TestEngineDependencies remains the gate that keeps a forbidden dependency out of the engine. Co-Authored-By: jason.han --- changes/unreleased/wasm-size-budgets.changed.md | 1 + tests/wasm/combined_test.go | 2 +- tests/wasm/engine_test.go | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/changes/unreleased/wasm-size-budgets.changed.md b/changes/unreleased/wasm-size-budgets.changed.md index 35691b0dd8..978cb1c267 100644 --- a/changes/unreleased/wasm-size-budgets.changed.md +++ b/changes/unreleased/wasm-size-budgets.changed.md @@ -1 +1,2 @@ - **The WebAssembly gzip size budgets rise by 50 KB.** The gzipped js build of `sysml-wasm` is now bounded at 8,350,000 bytes and that of `sysml-engine` at 7,700,000 bytes. Exact Rational number support grew both binaries past the previous bounds of 8,300,000 and 7,650,000 bytes (the combined build measured 8,309,493 bytes gzipped, the engine 7,647,486), so `TestWasmRuns` failed on the integration branch itself; the budgets bound growth only, and `TestEngineDependencies` still catches a forbidden dependency. +- **The WebAssembly gzip size budgets now bound gross growth only.** The gzipped js build of `sysml-wasm` is bounded at 10,000,000 bytes and that of `sysml-engine` at 9,000,000 bytes. The size as it stands is accepted: the grid view and relationship matrix grew the combined build to 8,355,865 bytes gzipped and the engine to 7,686,608 on the integration pipeline, over the 8,350,000-byte budget set a step earlier (a GitHub runner builds the same tree about 11 KB smaller, 8,344,612 and 7,686,149, so the pull-request gate passed while every integration pipeline failed `TestWasmRuns`). The budgets no longer move in 50 KB steps with each feature; `TestEngineDependencies` is the gate that keeps a forbidden dependency out of the engine. diff --git a/tests/wasm/combined_test.go b/tests/wasm/combined_test.go index 363725d121..fe2764acc5 100644 --- a/tests/wasm/combined_test.go +++ b/tests/wasm/combined_test.go @@ -19,7 +19,7 @@ import ( "github.com/Open-MBEE/OpenSysML/internal/frontend/jsonrpc" ) -const combinedGzipBudget = 8350000 +const combinedGzipBudget = 10000000 const combinedModel = `package Demo { part def Item; }` diff --git a/tests/wasm/engine_test.go b/tests/wasm/engine_test.go index 24c553935f..1999bc02a2 100644 --- a/tests/wasm/engine_test.go +++ b/tests/wasm/engine_test.go @@ -24,7 +24,7 @@ import ( // engineGzipBudget bounds growth of the gzipped js build of sysml-engine; // TestEngineDependencies, not this budget, catches a forbidden dependency. -const engineGzipBudget = 7700000 +const engineGzipBudget = 9000000 func TestEngineDependencies(t *testing.T) { const module = "github.com/Open-MBEE/OpenSysML"