Skip to content

chore(deps): update vitest monorepo to v5 - #16

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/major-vitest-monorepo
Open

renovate[bot] wants to merge 1 commit into
mainfrom
renovate/major-vitest-monorepo

Conversation

@renovate

@renovate renovate Bot commented Dec 21, 2025 •

Copy link
Copy Markdown
Contributor

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Change Age Confidence
@vitest/coverage-v8 (source) 2.1.9 → 5.0.3 age confidence
vitest (source) 2.1.9 → 5.0.3 age confidence

Release Notes

vitest-dev/vitest (@​vitest/coverage-v8)

v5.0.3

Compare Source

   🐞 Bug Fixes
    View changes on GitHub

v5.0.2

Compare Source

   🐞 Bug Fixes
    View changes on GitHub

v5.0.1

Compare Source

   🚀 Features
   🐞 Bug Fixes
    View changes on GitHub

v5.0.0

Compare Source

Vitest 5 is officially out! This release focuses on performance and brings a lot of new features while fixing long-standing bugs. See our blog post for the official announcement.

   🚨 Breaking Changes
   🚀 Features
   🐞 Bug Fixes

❗ Important

✂ PR body was truncated to here.


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about these updates again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate
renovate Bot requested a review from TANTIOPE as a code owner December 21, 2025 04:52
@renovate
renovate Bot force-pushed the renovate/major-vitest-monorepo branch from af513df to eb6c0c4 Compare December 22, 2025 02:39
@claude

claude Bot commented Dec 22, 2025

Copy link
Copy Markdown

PR Review: Vitest Major Version Upgrade (2.x → 4.x)

Thank you for the automated dependency update! This PR upgrades Vitest from version 2.1.9 to 4.0.16, which is a major version jump. Here's my comprehensive review:


✅ Positive Aspects

  1. Staying Current: Upgrading to Vitest 4.x brings latest features, performance improvements, and bug fixes
  2. Clean Dependency Update: The PR cleanly updates both vitest and @vitest/coverage-v8 packages in lockstep
  3. Lockfile Optimization: The package-lock.json shows removal of unused transitive dependencies (e.g., @isaacs/cliui, @pkgjs/parseargs, etc.), reducing the dependency tree
  4. No Source Code Changes Required: The existing test suite and configuration appear compatible

⚠️ Concerns & Recommendations

1. Breaking Changes Risk (Critical)

This is a major version upgrade (v2 → v4), which typically includes breaking changes. Key concerns:

  • Migration Path: Vitest went from v2 → v3 → v4, potentially accumulating breaking changes
  • API Changes: Major versions may include:
    • Changes to test runner behavior
    • Modified matcher APIs
    • Updated configuration schema
    • Changed CLI flags or options
    • Different default behaviors

Recommendation:

  • Review the Vitest migration guides for v2→v3 and v3→v4
  • Look for deprecation warnings when running tests
  • Verify all test features still work as expected

2. Configuration Compatibility

The vitest.config.ts uses standard options that should be stable:

test: {
  globals: true,
  environment: 'node',
  coverage: { provider: 'v8', ... }
}

Recommendation: Check if any options have been deprecated or renamed in v4.

3. MSW Integration

The test suite uses MSW (Mock Service Worker) v2.12.4. Ensure:

  • MSW still works correctly with Vitest 4.x
  • No timing or request handling changes affect test reliability
  • Setup/teardown in tests/helpers/setup.ts still functions properly

4. CI/CD Verification

Critical: Before merging, verify that:

  • All CI checks pass (lint, typecheck, tests, coverage)
  • Coverage reports generate correctly with new @vitest/coverage-v8
  • No new warnings or errors appear in test output
  • Build process completes successfully

5. Notable Package Changes

From the diff, I noticed:

Added:

  • @standard-schema/spec@1.1.0 - New dependency
  • @types/chai@5.2.3 - Type definitions
  • obug@2.1.1 - Debug library replacement

Removed:

  • Various @isaacs/cliui related packages
  • @istanbuljs/schema
  • loupe, pathval, deep-eql (internal chai deps reorganized)

Updated:

  • chai upgraded from 5.3.3 → 6.2.1 (bundled with expect changes)
  • @bcoe/v8-coverage from 0.2.3 → 1.0.2
  • magicast from 0.3.5 → 0.5.1

Concern: The chai upgrade is also a major version change that could affect assertion behavior.


🔍 Testing Recommendations

Before merging, manually verify:

  1. Run full test suite:

    npm test -- --run
  2. Check coverage generation:

    npm run test:coverage
  3. Look for deprecation warnings in test output

  4. Verify watch mode still works:

    npm test
  5. Test a few critical test files individually to ensure they pass


📋 Code Quality Assessment

Strengths:

  • ✅ No code changes required - good API stability
  • ✅ Type definitions properly updated
  • ✅ Configuration remains simple and standard
  • ✅ Test structure uses stable vitest APIs (describe, it, expect, vi)

Potential Issues:

  • ⚠️ Two major version jumps without intermediate testing
  • ⚠️ Chai also upgraded (5.x → 6.x) as a side effect
  • ⚠️ No changelog or migration notes in PR description

🔐 Security Considerations

  • ✅ No security vulnerabilities introduced by dependency upgrades
  • ✅ Coverage provider stays as v8 (trusted)
  • ✅ No new runtime dependencies added to production

📝 Final Verdict

Conditional Approval ✋

This upgrade is generally positive but requires verification before merge:

  1. ✅ Approve IF: All CI checks pass and no test failures occur
  2. ❌ Request Changes IF: Any tests fail or coverage reports break
  3. ⚠️ Investigate IF: New warnings appear or behavior changes

💡 Suggestions for Future Renovate PRs

Consider updating Renovate configuration to:

  1. Group major version updates separately from minor/patch updates
  2. Include changelog links in PR descriptions
  3. Schedule major updates for manual review periods
  4. Test major updates in a separate branch first

Action Items:

  • Wait for CI checks to complete
  • Review CI test results carefully
  • Check for any deprecation warnings in test output
  • Consider testing locally before merge if CI isn't comprehensive

Let me know if you need help investigating any test failures or migration issues!

@renovate
renovate Bot force-pushed the renovate/major-vitest-monorepo branch from eb6c0c4 to 0389d9a Compare December 22, 2025 14:39
@claude

claude Bot commented Dec 22, 2025

Copy link
Copy Markdown

Pull Request Review: Vitest v4 Major Upgrade

This PR upgrades vitest and @vitest/coverage-v8 from v2.1.9 to v4.0.16 - a major version bump that spans multiple major releases.

✅ Positive Aspects

  1. Dependency Updates: Keeping test tooling up-to-date is important for security and bug fixes
  2. Reduced Bundle Size: The diff shows 1,093 deletions vs 301 additions, indicating significant dependency tree optimization
  3. Maintained Configuration: No changes needed to vitest.config.ts, suggesting good backward compatibility
  4. Updated Core Dependencies:
    • @bcoe/v8-coverage: v0.2.3 → v1.0.2
    • chai: v5.3.3 → v6.2.1 (integrated with vitest 4.x)
    • Various internal dependency cleanups

⚠️ Concerns & Recommendations

1. Major Version Breaking Changes

This upgrade skips v3.x entirely and jumps from v2.1.9 → v4.0.16. According to semantic versioning, major versions may include breaking changes. Key areas to verify:

  • API Changes: Vitest 4.x includes new experimental features like OpenTelemetry traces, file system cache, and artifact API
  • Pool Options: The diff notes deprecation of test.poolOptions in favor of newer configuration
  • Chai Upgrade: Chai 6.x removes some dependencies (check-error, deep-eql, loupe, pathval) which could affect custom matchers
  • Coverage Configuration: Istanbul provider behavior may have changed based on source map handling updates

2. Testing Required

CRITICAL: Before merging, verify that:

# Run full test suite
npm test -- --run

# Run with coverage
npm run test:coverage

# Verify build
npm run build

# Run linting
npm run lint

All tests must pass without modification. If tests fail, this indicates breaking changes that need investigation.

3. CI/CD Pipeline Verification

The PR should trigger your .github/workflows/release.yml workflow. Ensure:

  • ✅ All quality checks pass (linting, formatting, type checking, tests, build)
  • ✅ No new warnings or errors in test output
  • ✅ Coverage metrics remain stable

4. Potential MSW Compatibility

Your project uses msw@2.12.4 for API mocking. Verify that:

  • MSW integration with Vitest 4.x works correctly
  • The tests/helpers/setup.ts MSW server initialization still functions
  • No console warnings appear during test runs

5. Performance Considerations

Vitest 4.x introduces experimental performance features:

  • File system caching (experimental.fsModuleCache)
  • OpenTelemetry traces for profiling
  • Optimized import handling

Consider enabling these if test performance is a concern, but test thoroughly first.

📋 Action Items Before Merge

  • Run full test suite locally and verify all 60+ test files pass
  • Check CI/CD pipeline status - ensure all checks are green
  • Review test output for any new warnings or deprecation messages
  • Verify coverage reports still generate correctly
  • Test MSW integration - ensure mocked API calls work as expected
  • Consider migration guide: Review Vitest v3 and v4 migration guides for any manual steps

🔒 Security & Best Practices

  • ✅ Package-lock.json updated correctly
  • ✅ No suspicious dependency additions
  • ✅ Renovate bot generated (automated dependency management)
  • ⚠️ Note: As this is a Renovate PR, ensure you've reviewed the automated changes

📝 Commit Message Suggestion

Since this is a dependency update that doesn't add features or fix bugs in your codebase, use:

chore: upgrade vitest to v4.0.16

This will NOT trigger a release (per your CLAUDE.md guidance), which is appropriate for a dev dependency update.

🎯 Recommendation

HOLD until:

  1. CI pipeline completes successfully
  2. Manual test run confirms no breaking changes
  3. Any deprecation warnings are investigated

If all tests pass cleanly, this is a safe merge that will improve your test infrastructure.


Generated with Claude Code
Co-Authored-By: Claude Sonnet 4.5 noreply@anthropic.com

@renovate
renovate Bot force-pushed the renovate/major-vitest-monorepo branch from 0389d9a to a63219d Compare December 22, 2025 14:54
@claude

claude Bot commented Dec 22, 2025

Copy link
Copy Markdown

Pull Request Review: Vitest v2.1.9 → v4.0.16 Upgrade

This is an automated dependency update from Renovate upgrading Vitest and its coverage plugin from v2.1.9 to v4.0.16. Here's my analysis:


📋 Summary

Changes:

  • vitest: 2.1.9 → 4.0.16 (major version bump)
  • @vitest/coverage-v8: 2.1.9 → 4.0.16 (major version bump)

Type: Major version upgrade across test framework


✅ Positive Observations

  1. Consistent Upgrade: Both packages are updated in lockstep, maintaining version compatibility
  2. Current Configuration Compatible: Your vitest.config.ts uses basic, stable APIs that should work across versions
  3. Standard Test Patterns: Test files use standard Vitest APIs (describe, it, expect, beforeAll, afterEach, afterAll)
  4. No Deprecated Features: The codebase doesn't appear to use deprecated v2 features

⚠️ Breaking Changes & Considerations

Vitest v4.0 introduces several breaking changes:

  1. Node.js Version Requirements

    • Minimum Node.js version is now 18.0.0 ✅ (Your package.json already requires >=18.0.0)
  2. API Changes

    • test.poolOptions has been deprecated → replaced with pool-specific options
    • Some internal APIs restructured (shouldn't affect most users)
    • Changes to snapshot serialization behavior
  3. Coverage Provider Changes

    • Istanbul provider has improved source map handling
    • V8 coverage now uses @bcoe/v8-coverage@^1.0.2 (upgraded from 0.2.3)
    • New experimental features like file system cache and OpenTelemetry traces
  4. Configuration Updates

    • Browser mode settings have changed (not applicable to this project)
    • Pool configuration has been restructured

🧪 Testing Recommendations

Critical: This is a major version upgrade that requires validation:

  1. Run Full Test Suite

    npm test -- --run

    Verify all 60+ test files pass without issues.

  2. Check Coverage Generation

    npm run test:coverage

    Ensure coverage reports generate correctly with the new v8 provider.

  3. Watch for Behavioral Changes

    • Snapshot tests may need regeneration if formatting changed
    • Mock behavior validation (MSW integration with Vitest v4)
    • Timeout handling changes

🔍 Code Quality Assessment

Current Configuration (vitest.config.ts):

  • ✅ Clean, simple configuration
  • ✅ Uses stable, well-supported options
  • ✅ Coverage configuration is standard
  • ✅ No use of deprecated features

Test Code Review:

  • ✅ Standard test patterns used throughout
  • ✅ Proper MSW setup in tests/helpers/setup.ts
  • ✅ No custom Vitest extensions that might break
  • ⚠️ Watch for: Chai assertion library updated from v5 → v6 internally

🛡️ Security Considerations

✅ No security concerns identified:

  • Renovate bot is from a trusted source
  • Package versions are legitimate and published
  • Dependency tree looks clean (removed some unused transitive dependencies)

📊 Performance Impact

Potential Improvements in v4:

  • Faster module caching with experimental file system cache
  • Optimized test collection and execution
  • Better memory management with updated dependencies
  • Debug performance improvements (replaced debug with obug)

🎯 Recommendations

Priority: APPROVE with Testing

  1. ✅ Approve the PR - Changes look good

  2. 🧪 Conditional on CI Passing - Wait for CI checks to complete

  3. 📝 Test Before Merge:

    • Verify all tests pass
    • Check coverage reports
    • Validate local development workflow (npm run dev, npm test)
  4. Post-Merge Monitoring:

    • Watch for any test flakiness
    • Monitor CI performance changes
    • Check for any snapshot differences

🔧 Potential Issues to Watch

  1. Snapshot Format Changes - May need to regenerate snapshots
  2. MSW Compatibility - MSW v2.12.4 should be compatible, but validate
  3. TypeScript Types - Vitest v4 may have type definition changes
  4. Coverage Thresholds - Ensure coverage percentages remain consistent

📝 Additional Notes

Dependency Tree Improvements:

  • Removed deprecated packages (@ampproject/remapping, @isaacs/cliui, etc.)
  • Cleaner dependency graph with fewer transitive dependencies
  • Updated to modern versions of internal tools

Commit Message Guideline:
Following your CLAUDE.md conventions, this PR should use:

chore(deps): update vitest to v4.0.16

This won't trigger a release (correct use of chore: prefix).


✍️ Final Verdict

LGTM (Looks Good To Me) - pending CI validation

This is a well-structured dependency update. The major version bump is significant, but:

  • Your codebase uses stable APIs
  • Configuration is straightforward
  • Breaking changes don't appear to affect your usage patterns
  • Renovate has properly updated both packages together

Recommended Action: ✅ Approve and merge once CI passes


Review conducted following repository guidelines in CLAUDE.md

@renovate
renovate Bot force-pushed the renovate/major-vitest-monorepo branch from a63219d to d58e304 Compare December 22, 2025 15:16
@claude

claude Bot commented Dec 22, 2025

Copy link
Copy Markdown

Pull Request Review: Vitest Major Version Update (v2.1.9 → v4.0.16)

Summary

This PR updates vitest and @vitest/coverage-v8 from v2.1.9 to v4.0.16 (major version update). This is an automated dependency update from Renovate bot.


Code Quality & Best Practices ✅

Positives:

  • Clean dependency update with proper package-lock.json changes
  • No source code modifications required (good sign of backward compatibility)
  • Follows semantic versioning properly

Concerns:

  • This is a major version jump (v2 → v4) which typically indicates breaking changes
  • The update skips v3 entirely, going from v2.1.9 directly to v4.0.16

Potential Issues & Breaking Changes ⚠️

Based on the package-lock.json diff, I can see several dependency changes that suggest potential breaking changes:

  1. New dependencies added:

    • @standard-schema/spec - New schema validation dependency
    • @types/chai and @types/deep-eql - Type definition changes
    • ast-v8-to-istanbul - Coverage tooling changes
    • obug - Debug utility (replaces debug package)
  2. Removed dependencies:

    • @ampproject/remapping
    • @isaacs/cliui
    • @istanbuljs/schema
    • @vitest/mocker (previously a separate package, likely integrated)
    • check-error
    • deep-eql
    • loupe
    • pathval
    • glob and related utilities
    • Several string/formatting utilities
  3. Version changes in peer dependencies:

    • chai upgraded from v5.3.3 to v6.2.1 (another major version bump)
    • @bcoe/v8-coverage from v0.2.3 to v1.0.2
  4. API changes:

    • The @vitest/expect package has significant internal restructuring
    • Coverage provider dependencies have been updated

Test Coverage Concerns 🧪

Critical Questions:

  1. Have the tests been run with the new version?
  2. Are there any changes to the Vitest API that affect the existing test suite?
  3. Does the MSW (Mock Service Worker) integration still work correctly with chai v6?

Recommendations:

  • Run the full test suite to verify compatibility: npm test -- --run
  • Check coverage reports to ensure coverage collection still works: npm run test:coverage
  • Verify all test helpers work correctly, especially the MSW setup in /tests/helpers/setup.ts

Performance Considerations 🚀

Potential improvements based on release notes:

  • Vitest v4 includes experimental filesystem caching (experimental.fsModuleCache)
  • OpenTelemetry traces support for better performance monitoring
  • Optimized import duration tracking

No obvious performance regressions expected, but this should be verified with actual test runs.


Security Concerns 🔒

Low Risk:

  • This is an update from an official, reputable package (vitest-dev)
  • No suspicious code patterns in the dependency tree
  • Provenance is maintained through npm

Recommendations:


Migration Path & Testing Strategy 📋

Before merging, I strongly recommend:

  1. Run all checks locally:

    npm install
    npm run typecheck
    npm run lint
    npm test -- --run
    npm run test:coverage
    npm run build
  2. Check for breaking changes:

  3. Specific areas to test:

    • All MSW mocked tests (setup.ts uses MSW server)
    • Coverage reporting (v8 provider configuration)
    • Async test patterns (look for timing issues)
    • Mock/spy functionality (vi.mock, vi.fn, vi.spyOn)
  4. Consider testing in stages:

    • If issues arise, consider updating to v3 first, then v4
    • The jump from v2 → v4 may hide which version introduced breaking changes

Configuration Impact 📝

Your vitest.config.ts looks compatible, but verify:

  • ✅ globals: true - Should still work
  • ✅ environment: 'node' - No changes expected
  • ✅ coverage.provider: 'v8' - Updated but compatible
  • ⚠️ May want to explore new experimental features in v4

Commit Message Compliance ✅

Current approach: This will be merged by Renovate bot, which should handle commits correctly.

Verify: The commit message should use chore(deps): or build(deps): prefix (NOT fix: or feat:) to avoid triggering an unnecessary release, as per your CLAUDE.md guidelines.


Final Recommendation 🎯

⚠️ DO NOT MERGE without verification

This is a major version update that requires:

  1. ✅ Full CI/CD pipeline passing
  2. ✅ Manual test run verification
  3. ✅ Review of any test failures or warnings
  4. ⚠️ Consider testing in a feature branch first

Risk Level: MEDIUM

  • High confidence in vitest team's quality
  • But major versions can introduce subtle breaking changes
  • Test suite should catch most issues

Next Steps:

  1. Wait for CI checks to complete
  2. Review CI logs for any test failures or warnings
  3. If CI passes, consider a manual smoke test
  4. Monitor for issues after merge (can roll back if needed)

Additional Notes 📌

  • The dependency update is otherwise clean and well-structured
  • No changes to your source code are required
  • The vitest team maintains good backward compatibility
  • Package-lock.json changes look reasonable and complete

Let me know if you'd like me to investigate any specific aspect of this update in more detail!

@renovate
renovate Bot force-pushed the renovate/major-vitest-monorepo branch 8 times, most recently from 9bd23b1 to 36bfeee Compare December 23, 2025 14:20
@renovate
renovate Bot force-pushed the renovate/major-vitest-monorepo branch 5 times, most recently from b70058d to 9b4f996 Compare December 26, 2025 01:16
@renovate
renovate Bot force-pushed the renovate/major-vitest-monorepo branch 3 times, most recently from c2bbf82 to e2aecb7 Compare January 3, 2026 00:29
@renovate
renovate Bot force-pushed the renovate/major-vitest-monorepo branch 2 times, most recently from dcd72e8 to 05b9548 Compare January 15, 2026 14:58
@renovate
renovate Bot force-pushed the renovate/major-vitest-monorepo branch 2 times, most recently from 4ad517c to 0426d5f Compare January 25, 2026 18:10
@renovate
renovate Bot force-pushed the renovate/major-vitest-monorepo branch from 4c5b37f to 6ca1f8a Compare March 15, 2026 16:37
@renovate
renovate Bot force-pushed the renovate/major-vitest-monorepo branch 4 times, most recently from eb06fca to 5e49252 Compare March 29, 2026 16:45
@renovate
renovate Bot force-pushed the renovate/major-vitest-monorepo branch 3 times, most recently from edfad34 to 9fbd778 Compare April 12, 2026 08:44
@renovate
renovate Bot force-pushed the renovate/major-vitest-monorepo branch 3 times, most recently from 13e9036 to 284c758 Compare April 29, 2026 18:10
@renovate
renovate Bot force-pushed the renovate/major-vitest-monorepo branch from 284c758 to 4c54d6f Compare May 12, 2026 12:07
@renovate renovate Bot changed the title chore(deps): update vitest monorepo to v4 (major) chore(deps): update vitest monorepo to v4 May 12, 2026
@renovate
renovate Bot force-pushed the renovate/major-vitest-monorepo branch 11 times, most recently from 7e3b19c to 0813441 Compare May 18, 2026 19:45
@renovate
renovate Bot force-pushed the renovate/major-vitest-monorepo branch 2 times, most recently from f7c4ca7 to 09d1c2b Compare May 28, 2026 18:15
@renovate
renovate Bot force-pushed the renovate/major-vitest-monorepo branch 2 times, most recently from f617b12 to c0d2c01 Compare June 4, 2026 08:30
@renovate
renovate Bot force-pushed the renovate/major-vitest-monorepo branch from c0d2c01 to cbf820b Compare June 11, 2026 13:12
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.

0 participants