Skip to content

Upgrade Vitest toolchain to v4.x and resolve @vitest/coverage-v8 peer dependency conflict #440

@emresurmeli

Description

@emresurmeli

Summary

Dependabot PR #439 updates @vitest/coverage-v8 from 3.2.4 to 4.0.3. The install fails because the new version requires Vitest 4.x, while we are still on Vitest 3.x. We need to plan and execute a coordinated upgrade of all Vitest-related packages (core, UI, coverage, configs), accounting for the breaking changes introduced in Vitest 4.

Reproduction Steps

  1. Check out main.
  2. Apply the dependency change from PR NEEDS WORK: chore(deps-dev): bump @vitest/coverage-v8 from 3.2.4 to 4.0.3 in /libraries/js #439.
  3. Run npm install in libraries/js.

Observed Error

npm ERR! peer vitest@"4.0.7" from @vitest/coverage-v8@4.0.7
npm ERR! node_modules/@vitest/coverage-v8
npm ERR!   dev @vitest/coverage-v8@"^4.0.3" from the root project

Expected vs Actual

  • Expected: Dependencies install cleanly and CI succeeds.
  • Actual: Installation fails with a peer dependency conflict, blocking CI.

Additional Context

Vitest 4 introduces breaking changes—removal of the basic reporter, simplified exclude patterns, config type updates (UserConfigViteUserConfig), and dropping Vite 5 support. We need to update our configuration and scripts accordingly before accepting the coverage plugin upgrade. (Reference the Vitest 4 release notes cited in PR #439.)

Proposed Plan

  • Review the Vitest 4 migration guide and release notes.
  • Upgrade vitest, @vitest/ui, @vitest/coverage-v8, and any related tooling to compatible 4.x versions.
  • Update configuration files (coverage settings, reporters) to match the new API.
  • Run pipeline checks (lint, build, test, coverage) and adjust scripts as needed.
  • Document any follow-up tasks (e.g., changes required across other packages).
  • Merge the upgrade once all checks pass and PR NEEDS WORK: chore(deps-dev): bump @vitest/coverage-v8 from 3.2.4 to 4.0.3 in /libraries/js #439 is unblocked.

Tasks

  • Audit Vitest usage across libraries/js (and other packages if applicable) for deprecated options.
  • Update dev dependencies to Vitest 4.x and regenerate lockfiles.
  • Adjust testing/coverage configuration per Vitest 4 migration notes.
  • Validate local workflows: npm run lint, npm run test, npm run build, coverage reports.
  • Ensure CI succeeds and unblock PR NEEDS WORK: chore(deps-dev): bump @vitest/coverage-v8 from 3.2.4 to 4.0.3 in /libraries/js #439.
  • Communicate any developer-facing changes (new reporter names, CLI options, etc.).

References

  • Dependabot PR attempting the coverage upgrade: #439

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions