You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The Binary Size Limit check reads its baseline from rspack-build.json on the benchmark repo's data branch. That file is only written at the very end of the ecosystem benchmark pipeline, which first has to build the release binding (fat LTO) and then run a 40-minute bench. For e8a7bce7 the data landed more than a day after the commit was pushed.
The number itself, however, is known much earlier: it is the stripped ci-profile binding, and ci.yml's build-linux produces exactly that artifact as part of normal main CI.
Verified this is the same measurement, not an approximation — downloading bindings-x86_64-unknown-linux-gnu from main CI and stripping it reproduces the published value on every commit checked:
commit
stripped ci artifact
published rspack-build.json
e8a7bce7
69,840,024
69,840,024
23812cfe
69,835,928
69,835,928
740a9b87
69,835,928
69,835,928
So the size can be published minutes after build-linux instead of hours-to-days after the benchmark.
What
New push-only job Upload Binary Size in ci.yml: reuses the build-linux artifact, strips it exactly as size-limit.yml does, and writes commits/<xx>/<rest>/ci-binary.json to the data branch via PERF_DATA_TOKEN (the token already used by the benchmark upload). The push retries on conflict, since the ecosystem benchmark writes to the same branch.
binary-limit-script.js now reads ci-binary.json first and falls back to rspack-build.json. Both carry the same measurement, so commits predating this job keep working unchanged.
The ecosystem benchmark keeps writing rspack-build.json as before; nothing is removed.
The last 30 main commits have been backfilled with ci-binary.json on the data branch separately.
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
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.
Why
The
Binary Size Limitcheck reads its baseline fromrspack-build.jsonon the benchmark repo'sdatabranch. That file is only written at the very end of the ecosystem benchmark pipeline, which first has to build the release binding (fat LTO) and then run a 40-minute bench. Fore8a7bce7the data landed more than a day after the commit was pushed.The number itself, however, is known much earlier: it is the stripped ci-profile binding, and
ci.yml'sbuild-linuxproduces exactly that artifact as part of normal main CI.Verified this is the same measurement, not an approximation — downloading
bindings-x86_64-unknown-linux-gnufrom main CI and stripping it reproduces the published value on every commit checked:rspack-build.jsone8a7bce723812cfe740a9b87So the size can be published minutes after
build-linuxinstead of hours-to-days after the benchmark.What
Upload Binary Sizeinci.yml: reuses thebuild-linuxartifact, strips it exactly assize-limit.ymldoes, and writescommits/<xx>/<rest>/ci-binary.jsonto thedatabranch viaPERF_DATA_TOKEN(the token already used by the benchmark upload). The push retries on conflict, since the ecosystem benchmark writes to the same branch.binary-limit-script.jsnow readsci-binary.jsonfirst and falls back torspack-build.json. Both carry the same measurement, so commits predating this job keep working unchanged.The ecosystem benchmark keeps writing
rspack-build.jsonas before; nothing is removed.The last 30 main commits have been backfilled with
ci-binary.jsonon thedatabranch separately.