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.
Description:
This PR switches from using yarn and Node.js to using bun for all package management and JavaScript execution when building/testing UI code. With corepack potentially going away and various historical issues with versions of Node.js causing build breakage, this PR will use the
gettool
devtool to pull in the proper version ofbun
in the same way we do for tools likesqlc.
This eliminates the project's dependency on having the correct version of Node.js and simplifies the build process. Many of the workarounds for yarn pnp can all be cleaned up as
bun
uses the standardnode_modules
, but with speed and efficiency similar to (and faster than, in some cases) yarn pnp. This speed was the primary reason we switched to yarn, so this change seemingly solves the whole set of problems we've faced in the past.This PR does not replace the use of esbuild, although
bun
may be able to replace that functionality too in the future. For now, that piece is out of scope.Which issue(s) this PR fixes:
No associated issue.
Out of Scope:
The replacement of esbuild functionality is out of scope for this PR.
Additional Info:
bun
dependabot/dependabot-core#6528 (though renovate does, apparently)