Skip to content

chore(deps): replace execa with node:child_process in perf tests#12570

Open
binoy14 wants to merge 1 commit intomainfrom
chore/replace-execa-with-node-child-process
Open

chore(deps): replace execa with node:child_process in perf tests#12570
binoy14 wants to merge 1 commit intomainfrom
chore/replace-execa-with-node-child-process

Conversation

@binoy14
Copy link
Copy Markdown
Contributor

@binoy14 binoy14 commented Apr 2, 2026

Description

Replaces the execa dependency with Node's built-in node:child_process module in the perf test utilities. execa@^2.1.0 was only used for simple synchronous and async git command execution, which execFile/execFileSync handle natively.

What to review

  • perf/tests/runner/utils/gitUtils.ts — all execa calls replaced with execFile/execFileSync from node:child_process
  • perf/tests/package.jsonexeca removed from dependencies
  • pnpm-lock.yaml — lockfile updated, pnpm dedupe verified

Testing

  • Perf tests still run correctly

Notes for release

No user-facing changes. Internal dependency cleanup only.

🤖 Generated with Claude Code

execa was only used for simple git command execution in perf test
utilities. Node's built-in child_process module handles this without
needing an external dependency.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@vercel
Copy link
Copy Markdown

vercel bot commented Apr 2, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
test-studio Ready Ready Preview, Comment Apr 2, 2026 4:13pm
1 Skipped Deployment
Project Deployment Actions Updated (UTC)
page-building-studio Skipped Skipped Apr 2, 2026 4:13pm

Request Review

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 2, 2026

📦 Bundle Stats — sanity

Compared against main (48a5609d) · v5.19.0 (npm)

sanity

Metric Value vs main (48a5609) vs v5.19.0
Internal (raw) 4.41 MB - -202 B, -0.0%
Internal (gzip) 1.01 MB - -19 B, -0.0%
Bundled (raw) 12.09 MB - -34.0 KB, -0.3%
Bundled (gzip) 2.72 MB - -7.1 KB, -0.3%
Import time 1.40s -4ms, -0.3% +46ms, +3.4%

bin:sanity

Metric Value vs main (48a5609) vs v5.19.0
Internal (raw) 7.1 KB - -
Internal (gzip) 2.9 KB - -
Bundled (raw) 7.1 KB - -
Bundled (gzip) 2.8 KB - -
Import time 5ms -0ms, -0.4% +0ms, +6.9%

🗺️ View treemap · Artifacts

Details
  • Import time regressions over 10% are flagged with ⚠️
  • Sizes shown as raw / gzip 🗜️. Internal bytes = own code only. Total bytes = with all dependencies. Import time = Node.js cold-start median.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 2, 2026

🧪 E2E Preview environment

🔑 Environment Variables for Local Testing

This is the preview URL for the E2E tests: https://e2e-studio-cmbiqlooq.sanity.dev

To run the E2E tests locally, you can use the following environment variables, then run pnpm test:e2e --ui to open the Playwright test runner.

💬 Remember to build the project first with pnpm build:e2e.

  SANITY_E2E_PROJECT_ID=ittbm412
  SANITY_E2E_BASE_URL=https://e2e-studio-cmbiqlooq.sanity.dev
  SANITY_E2E_DATASET="update depending the project you want to test (pr-12570-chromium-23910079446 || pr-12570-firefox-23910079446 )"
  SANITY_E2E_DATASET_CHROMIUM=pr-12570-chromium-23910079446
  SANITY_E2E_DATASET_FIREFOX=pr-12570-firefox-23910079446

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 2, 2026

📊 Playwright Test Report

Download Full E2E Report

This report contains test results, including videos of failing tests.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 2, 2026

⚡️ Editor Performance Report

Updated Thu, 02 Apr 2026 16:19:03 GMT

Benchmark reference
latency of sanity@latest
experiment
latency of this branch
Δ (%)
latency difference
arrayI18n (simple-en) 55.6 efps (18ms) 55.6 efps (18ms) +0ms (-/-%)
article (title) 50.0 efps (20ms) 47.6 efps (21ms) +1ms (+5.0%)
article (body) 53.1 efps (19ms) 50.6 efps (20ms) +1ms (+4.8%)
article (string inside object) 46.5 efps (22ms) 45.5 efps (22ms) +1ms (+2.3%)
article (string inside array) 43.5 efps (23ms) 40.8 efps (25ms) +2ms (+6.5%)
recipe (name) 99.9+ efps (10ms) 90.9 efps (11ms) +2ms (-/-%)
recipe (description) 58.8 efps (17ms) 55.6 efps (18ms) +1ms (+5.9%)
recipe (instructions) 99.9+ efps (5ms) 99.9+ efps (5ms) +0ms (-/-%)
singleString (stringField) 99.9+ efps (6ms) 99.9+ efps (7ms) +1ms (-/-%)
synthetic (title) 62.5 efps (16ms) 62.5 efps (16ms) +0ms (-/-%)
synthetic (string inside object) 58.8 efps (17ms) 52.6 efps (19ms) +2ms (+11.8%)

efps — editor "frames per second". The number of updates assumed to be possible within a second.

Derived from input latency. efps = 1000 / input_latency

Detailed information

🏠 Reference result

The performance result of sanity@latest

Benchmark latency p75 p90 p99 blocking time test duration
arrayI18n (simple-en) 18ms 22ms 38ms 52ms 8ms 6.1s
article (title) 20ms 26ms 30ms 54ms 25ms 6.7s
article (body) 19ms 26ms 61ms 82ms 199ms 5.2s
article (string inside object) 22ms 27ms 41ms 79ms 27ms 6.4s
article (string inside array) 23ms 27ms 46ms 91ms 31ms 6.8s
recipe (name) 10ms 13ms 16ms 40ms 0ms 5.1s
recipe (description) 17ms 20ms 22ms 40ms 0ms 4.4s
recipe (instructions) 5ms 7ms 10ms 43ms 0ms 3.0s
singleString (stringField) 6ms 9ms 11ms 23ms 0ms 4.6s
synthetic (title) 16ms 18ms 21ms 92ms 1492ms 9.0s
synthetic (string inside object) 17ms 23ms 63ms 92ms 1110ms 9.1s

🧪 Experiment result

The performance result of this branch

Benchmark latency p75 p90 p99 blocking time test duration
arrayI18n (simple-en) 18ms 22ms 25ms 58ms 8ms 5.9s
article (title) 21ms 25ms 30ms 58ms 15ms 7.2s
article (body) 20ms 26ms 39ms 138ms 210ms 5.5s
article (string inside object) 22ms 33ms 52ms 68ms 22ms 6.6s
article (string inside array) 25ms 28ms 52ms 99ms 33ms 6.9s
recipe (name) 11ms 14ms 28ms 35ms 6ms 5.4s
recipe (description) 18ms 22ms 22ms 33ms 0ms 4.3s
recipe (instructions) 5ms 9ms 11ms 23ms 0ms 3.0s
singleString (stringField) 7ms 9ms 11ms 18ms 0ms 4.5s
synthetic (title) 16ms 17ms 21ms 124ms 1250ms 9.6s
synthetic (string inside object) 19ms 22ms 61ms 113ms 1459ms 9.2s

📚 Glossary

column definitions

  • benchmark — the name of the test, e.g. "article", followed by the label of the field being measured, e.g. "(title)".
  • latency — the time between when a key was pressed and when it was rendered. derived from a set of samples. the median (p50) is shown to show the most common latency.
  • p75 — the 75th percentile of the input latency in the test run. 75% of the sampled inputs in this benchmark were processed faster than this value. this provides insight into the upper range of typical performance.
  • p90 — the 90th percentile of the input latency in the test run. 90% of the sampled inputs were faster than this. this metric helps identify slower interactions that occurred less frequently during the benchmark.
  • p99 — the 99th percentile of the input latency in the test run. only 1% of sampled inputs were slower than this. this represents the worst-case scenarios encountered during the benchmark, useful for identifying potential performance outliers.
  • blocking time — the total time during which the main thread was blocked, preventing user input and UI updates. this metric helps identify performance bottlenecks that may cause the interface to feel unresponsive.
  • test duration — how long the test run took to complete.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 2, 2026

Coverage Report

Status Category Percentage Covered / Total
🔵 Lines 39.62% 26098 / 65855
🔵 Statements 32.05% 33870 / 105659
🔵 Functions 28.45% 5262 / 18491
🔵 Branches 24.53% 20675 / 84273
File CoverageNo changed files found.
Generated in workflow #54314 for commit f15621a by the Vitest Coverage Report Action

@binoy14 binoy14 marked this pull request as ready for review April 2, 2026 16:19
@binoy14 binoy14 requested a review from a team as a code owner April 2, 2026 16:19
@binoy14 binoy14 requested review from RitaDias and removed request for a team April 2, 2026 16:19
@binoy14 binoy14 enabled auto-merge (squash) April 2, 2026 16:20
@RitaDias
Copy link
Copy Markdown
Contributor

RitaDias commented Apr 7, 2026

@bjoerge this looks good to me, but do you mind having a sanity check? I don't know much about the perf section and nothing looks critical but just to double check

@RitaDias RitaDias disabled auto-merge April 7, 2026 08:15
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.

2 participants