Skip to content

Bump smoke-tests to vitest 4 to drop the worker rpc timeout flake - #1059

Merged
theoephraim merged 2 commits into
mainfrom
smoke-tests-vitest-4
Sep 2, 2026
Merged

Bump smoke-tests to vitest 4 to drop the worker rpc timeout flake#1059
theoephraim merged 2 commits into
mainfrom
smoke-tests-vitest-4

Conversation

@theoephraim

@theoephraim theoephraim commented Sep 2, 2026

Copy link
Copy Markdown
Member

What

  • smoke-tests: vitest ^3.2.4 -> ^4.0.18 (matches the root catalog)
  • Drop the esbuild.tsconfigRaw block from smoke-tests/vitest.config.ts
  • Add helpers/**/*.ts and vitest.config.ts to the smoke-tests/tsconfig.json include set

Why

The ubuntu smoke job on the release PR failed with an unhandled [vitest-worker]: Timeout calling "onTaskUpdate" error even though all 168 tests passed (https://github.com/dmno-dev/varlock/actions/runs/33596804177/job/100142117083).

vitest 3 gives the worker-to-main rpc a 60s timeout. The smoke suite blocks its worker with long spawnSync calls (Rust/C#/Java builds in lang-modules.test.ts) while the main thread is busy with other files, so the reply can arrive after the deadline. vitest 4 sets that rpc timeout to -1, which removes this flake class.

vite 8 (pulled in by vitest 4) transforms with oxc, so the old esbuild.tsconfigRaw workaround was ignored and only produced a "both esbuild and oxc options were set" warning. Oxc discovers the tsconfig per file and honours include, so sources not covered by tests/** (the helpers/ modules) walked up to the root tsconfig, whose extends target is not installed in the isolated smoke-test pnpm environment. Widening the smoke-tests tsconfig include keeps every transformed source on the self-contained config. Verified locally by pointing the root extends at a nonexistent package and running the full suite.

Full smoke suite passes locally under vitest 4 (17 files, 166 passed, 3 skipped for missing toolchains).

The ubuntu smoke job on the release PR failed with an unhandled
'[vitest-worker]: Timeout calling "onTaskUpdate"' error even though every
test passed. vitest 3 gives the worker-to-main rpc a 60s timeout, and the
smoke suite blocks the worker with long spawnSync calls (Rust/C#/Java
builds) while the main thread is busy with other files, so the reply can
arrive after the deadline. vitest 4 disables that timeout entirely
(timeout: -1 on the worker rpc), which removes this flake class.

vite 8 (pulled in by vitest 4) transforms with oxc, so the old
esbuild.tsconfigRaw workaround was ignored and only produced a warning.
It is no longer needed: smoke-tests/tsconfig.json stops the tsconfig walk
before it reaches the root config that extends @varlock/tsconfig.

@pullfrog pullfrog Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Important

The config removal currently prevents the smoke suite from loading on Ubuntu and macOS.

Reviewed changes Reviewed the Vitest 4 dependency upgrade and the associated transform-config cleanup.

  • Vitest upgrade: Moves the isolated smoke-test workspace from Vitest 3 to Vitest 4, currently resolving Vitest 4.1.11 with Vite 8.2.2.
  • Transform configuration: Removes the previous esbuild-specific tsconfigRaw override now that Vite transforms through Oxc.

Pullfrog  | Fix all ➔Fix 👍s ➔View workflow run | Using azure/gpt-5.6-sol𝕏

Comment thread smoke-tests/vitest.config.ts
Oxc honours a tsconfig's include set when discovering the config for a
file, so helpers/*.ts (not covered by tests/**) walked up to the root
tsconfig, whose extends target is not installed in the isolated smoke-test
pnpm environment. Widening the include keeps every transformed source on
the self-contained smoke-tests config.

@pullfrog pullfrog Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ No new issues found.

Reviewed changes Reviewed the follow-up fix added since the prior Pullfrog review.

  • Smoke-test tsconfig coverage: Added the imported helper modules and vitest.config.ts to the isolated smoke-test config, preventing Oxc from falling through to the unavailable root tsconfig.

Pullfrog  | View workflow run | Using azure/gpt-5.6-sol𝕏

@theoephraim
theoephraim merged commit fbfd415 into main Sep 2, 2026
26 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant