-
Notifications
You must be signed in to change notification settings - Fork 2.5k
feat(core): add native node bindings for hashing #14476
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
The latest updates on your projects. Learn more about Vercel for Git ↗︎ 1 Ignored Deployment
|
ab932eb
to
b30c9fd
Compare
☁️ Nx Cloud ReportCI is running/has finished running commands for commit 715293d. As they complete they will appear below. Click to see the status, the terminal output, and the build insights. 📂 See all runs for this branch ✅ Successfully ran 1 targetSent with 💌 from NxCloud. |
eeb053c
to
84f5729
Compare
Update native builds to only install nx and build
ce3fd5d
to
79e2529
Compare
79e2529
to
9fa936b
Compare
9fa936b
to
c8be662
Compare
c8be662
to
a505f08
Compare
ff023e5
to
7997118
Compare
7997118
to
715293d
Compare
|
||
let git_folder = workspace_root.clone() + ".git"; | ||
// We should make sure to always ignore node_modules | ||
let node_folder = workspace_root.clone() + "node_modules"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We need to handle nested node_modules
directories too.
Don't merge this yet. |
This pull request has already been merged/closed. If you experience issues related to these changes, please open a new issue referencing this pull request. |
Current Behavior
Current implementation of our file hashers uses a node based one and a git one. We fallback to the node implementation when a workspace isn't a git workspace (like using other version control systems), and when we do, hashing becomes very slow.
Moreover, using git to do our hashing is very quick, but requires a lot of "hand waving" to get things working well. Also, when there are a lot of changes in the workspace (i.e merging branches, etc) the git hasher becomes slow as well.
Expected Behavior
This PR introduces a native hasher, that is built with Rust. Right now it's feature flagged behind the
NX_NATIVE_HASHER
env variable.This allows us to have consistent performance, and have more control over the hashing.
This PR also changes how we publish Nx as we will need to build a native binary for all the platforms we support, which are the following:
Related Issue(s)
Fixes #