Repository navigation
test(wasm): bound the engine and combined gzip budgets at gross growth - #975
Merged
Merged
Conversation
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 <hanhuijun@gmail.com>
Contributor
Author
|
I'll fix CI failures and address comments from users with write access. I'll skip comments containing "(aside)".
|
Contributor
Author
There was a problem hiding this comment.
🔍 Devin Review: 1 flag
Not posted on this PR by your GitHub settings — view it in Devin Review. (Configure)
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.
What and why
developat 4ce0260 (#884, grid view and relationship matrix) is over the combined WebAssembly budget #970 set. On CircleCI'scimg/go:1.25-nodeimage the gzipped js build ofsysml-wasmis 8,355,865 bytes against the 8,350,000-byte budget, soTestWasmRuns/js/fits_the_combined_size_budgetfails theGo gates and binariesandGo coverage shardsjobs of everydeveloppipeline from 3835 on;sysml-engineis 7,686,608 against 7,700,000. A GitHub runner builds the same tree about 11 KB smaller (8,344,612 / 7,686,149), which is why the pull-requestWebAssembly gatepassed. Before #884 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, and the budgets stop moving 50 KB with each feature (#970 and its predecessors): they now bound gross growth only, keeping the combined build under 10 MB with the engine bounded proportionally.
tests/wasm/combined_test.go:combinedGzipBudget8,350,000 → 10,000,000tests/wasm/engine_test.go:engineGzipBudget7,700,000 → 9,000,000changes/unreleased/wasm-size-budgets.changed.md: a second list item, since test(wasm): raise the engine and combined gzip budgets by 50 KB #970's fragment is still unreleased and the release notes should carry one budget entryTestEngineDependenciesis the gate that keeps a forbidden dependency out of the engine now that the size bound is loose.How it was verified
Fail-first is the CircleCI measurement above: the local toolchain builds smaller than
cimg/go:1.25-node(as GitHub's runners do), so a local run of the old budget is not evidence either way — on this machine the same tree gzips to 8,345,131, 5 KB under the old budget.After the edit,
go test -count=1 -v -run 'TestWasmRuns|TestEngineDependencies|TestBrowserREPL' ./tests/wasm(go1.25.11, Node v24.19.0, so the js subtests ran):TestEngineDependenciesstill bites: with a one-off, reverted_ "github.com/Open-MBEE/OpenSysML/internal/frontend/stdiorpc"import added tocmd/sysml-engine/main.go,go test -count=1 -run TestEngineDependencies ./tests/wasmfails withforbidden dependency in wasip1 build: google.golang.org/grpc/...andgoogle.golang.org/protobuf/...lines (and the js build likewise) in 0.4 s.Also:
go build ./...,go vet ./tests/wasm/...,gofmt -l tests(prints nothing),python3 scripts/changelog.py check.Checklist
go build ./...,go vet ./tests/wasm/...,gofmt -l testsand thetests/wasmgate pass locallychanges/unreleased/<slug>.<section>.md, not as an edit toCHANGELOG.mdmake docs-countsrunLink to Devin session: https://nasa-jpl-demo.devinenterprise.com/sessions/c5331dc511a342859cad8a88d46fa210
Open in Devin Desktop: https://nasa-jpl-demo.devinenterprise.com/desktop/session/c5331dc511a342859cad8a88d46fa210?variant=devin
Requested by: @HuiJun