chore(deps): bump vitest to 5 with the vite peer it now needs - #22
Open
mariano-aguero wants to merge 2 commits into
Open
mariano-aguero wants to merge 2 commits into
mariano-aguero wants to merge 2 commits into
Conversation
There was a problem hiding this comment.
Findings outside the diff
These sit on lines this PR did not change, but this PR is what makes them wrong. They cannot be posted as inline comments.
- [WARNING]
package.json— package.json has dependency changes but no pnpm-lock.yaml update was found in this PR. Commit the lockfile together with manifest changes.
Reviewer callouts (1)
Non-blocking observations. Nothing here needs to change before merge.
.github:1— "The ubuntu-latest label will migrate to Ubuntu 26 beginning October 19, 2026. For more information, see actions/runner-images#14748"
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
What this changes
Takes
vitestfrom 2.1.9 to 5.0.0 and@types/nodefrom 20.19.43 to 26.5.1, and addsviteas an explicit dev dependency.This supersedes #16 and #17. Dependabot opened those separately and #17 cannot pass on its own, for two reasons it has no way to discover.
In vitest 5,
vitebecame an optional peer dependency, so the package manager does not install it, and thevite@5.4.21that vitest 2 used to pull in stayed pinned in the lockfile. Vitest 5 needs^6.4.0 || ^7.0.0 || ^8.0.0, so the startup fails withERR_PACKAGE_PATH_NOT_EXPORTED: './module-runner' is not defined by "exports" in vite/package.json. NamingviteindevDependenciesfixes it and resolves 8.3.0.Vitest 5 also requires
@types/nodeat^22.0.0 || >=24.0.0, which is why the two bumps travel together rather than in sequence.It also closes both open Dependabot alerts, which are against
vitestas a development dependency. Neither was reachable from the published package, since the tarball shipsdistonly, and the critical one needs the Vitest UI server listening, which nothing in this repository starts.Why
Dependabot cannot add a dependency that is not being bumped, so a peer going optional upstream is a change it can only propose halfway. The alternative to naming
viteis pinning it through an override, which hides the reason in a place nobody reads.How the new behaviour is pinned
frame_tx_wire_tests.rsmaxCost, or thegasUseddecomposition)No source file changes. The existing suite is what verifies the runner swap: all 293 tests still run and pass, so the oracles are still being exercised, not skipped.
Load-bearing rules
One of them deserved a check rather than an assumption.
vitest.config.tsgates the live suite onFRAMES_LIVEby configuration, because vitest appliesexcludeeven to a path named on the command line, and an unconditional exclude would makebun run test:liverun zero tests and report success. Under vitest 5 that gate still behaves as documented: without the variable the default run collects 14 files and 293 tests and no live file, and withFRAMES_LIVE=1the live file is collected and its 4 tests execute against the endpoint.vitest listdoes not print the live tests under vitest 5 even when they are collected, which is a reporting difference in that subcommand and not the gate. Readinglistalone would have looked exactly like the failure mode the config exists to prevent, so the gate was verified by running the suite.Checks
bun run testbun run typecheckbun run build && bunx @arethetypeswrong/cli --pack .bun run test:live(optional, hits the public endpoint, not a gate)293 tests pass, the type check is clean, and
attw --pack .reports no problems across all three entry points. The packaging check was run althoughexports,files,typesVersionsandtsup.config.tsare untouched, because the declaration flavours are built by a toolchain this PR moves.The live suite fails, and it fails identically on
mainwith vitest 2, so it is not evidence about this change. It is evidence about something else, filed separately: the chain has re-genesised a fourth time. The node now serves genesis0x2036e3fe3eaaa15382a9befde816137b6b2cda1e3df8ca0c92e89bc17a3fca5a, against the pinned0x7ca0f7358d127dc4a68983050eb88837a5f384225254d1b009fa87fbcd0f2332, andethrex_simulateFrameTransactionnow answersInvalid params: MalformedDatato both the hand-built and the re-encoded transaction. That is the fixture expiry mechanism working as designed.Release impact
docs,chore,test,ci,refactor,style,perf,build)fix)feat)feat!or aBREAKING CHANGE:footer)Development dependencies only. Nothing in
distchanges.AI assistance
Related issues
Supersedes #16 and #17, which can be closed once this merges.