Lock built-in JavaScript runtimes - #33
Open
sergeivaskov wants to merge 1 commit into
Open
Conversation
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.
Summary
npm_exlockfiles for the built-in Svelte, Solid, and Tailwind runtimesVolt.JS.Runtime.PackageSetProblem
Volt's built-in framework/compiler runtimes currently resolve version ranges independently of an application's
package.jsonandnpm.lock. For example, the Svelte plugin requests^5.0.0, while Tailwind requests^4.3.0and*. The runtime installer already supports a package-owned lockfile, but these built-in callers do not pass one, so a fresh build can select a different transitive graph without an application lockfile change.Design
Volt.JS.Runtime.PackageSetkeeps each built-in runtime's exact package set and packaged lockfile together. Both direct installation and named runtime creation use that same lock. Named runtime signatures hash the lock contents rather than depending on a path, so changing a packaged graph cannot silently reuse a runtime created from an older lock.scripts/update_runtime_locks.exsregenerates all locks, or one selected package set with--only, from the exact versions declared by the owning module.Verification
mix test: 609 tests, 0 failurespriv/npm/{svelte,solid,tailwind}.lockamd64consumer builds produced identical runtime locks and production assets