diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 6e790d540f..59eb4b3827 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -123,9 +123,13 @@ jobs: settings: - host: macos-13 target: x86_64-apple-darwin + setup: |- + rustup target add aarch64-apple-darwin build: | pnpm nx run-many --target=build-native -- --target=x86_64-apple-darwin - host: windows-latest + setup: |- + rustup target add aarch64-pc-windows-msvc build: pnpm nx run-many --target=build-native -- --target=x86_64-pc-windows-msvc target: x86_64-pc-windows-msvc # Windows 32bit (not needed) @@ -141,6 +145,7 @@ jobs: npm i -g pnpm@9.8.0 --force && pnpm --version && pnpm install --frozen-lockfile && + rustup target add aarch64-unknown-linux-gnu && pnpm nx run-many --verbose --target=build-native -- --target=x86_64-unknown-linux-gnu - host: ubuntu-latest target: x86_64-unknown-linux-musl @@ -150,9 +155,12 @@ jobs: npm i -g pnpm@9.8.0 --force && pnpm --version && pnpm install --frozen-lockfile && + rustup target add x86_64-unknown-linux-musl && pnpm nx run-many --verbose --target=build-native -- --target=x86_64-unknown-linux-musl - host: macos-13 target: aarch64-apple-darwin + setup: |- + rustup target add aarch64-apple-darwin build: | sudo rm -Rf /Library/Developer/CommandLineTools/SDKs/*; export CC=$(xcrun -f clang); @@ -168,12 +176,14 @@ jobs: npm i -g pnpm@9.8.0 --force && pnpm --version && pnpm install --frozen-lockfile && + rustup target add aarch64-unknown-linux-gnu && pnpm nx run-many --verbose --target=build-native -- --target=aarch64-unknown-linux-gnu - host: ubuntu-latest target: armv7-unknown-linux-gnueabihf setup: | sudo apt-get update sudo apt-get install gcc-arm-linux-gnueabihf -y + rustup target add armv7-unknown-linux-gnueabihf build: | CARGO_TARGET_ARMV7_UNKNOWN_LINUX_GNUEABIHF_LINKER=/usr/bin/arm-linux-gnueabihf-gcc pnpm nx run-many --target=build-native -- --target=armv7-unknown-linux-gnueabihf # Android (not needed) @@ -197,6 +207,8 @@ jobs: pnpm nx run-many --verbose --target=build-native -- --target=aarch64-unknown-linux-musl - host: windows-latest target: aarch64-pc-windows-msvc + setup: |- + rustup target add aarch64-pc-windows-msvc build: pnpm nx run-many --target=build-native -- --target=aarch64-pc-windows-msvc name: stable - ${{ matrix.settings.target }} - node@18 runs-on: ${{ matrix.settings.host }} diff --git a/CODEOWNERS b/CODEOWNERS index 559d5b5725..19cff1a1cf 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -6,7 +6,7 @@ /tools/**/* @FrozenPandaz @vsavkin @AgentEnder @jaysoo @JamesHenry package.json @nrwl/nx-core-reviewers pnpm-lock.yaml @nrwl/nx-core-reviewers -rust-toolchain @nrwl/nx-native-reviewers +rust-toolchain.toml @nrwl/nx-native-reviewers # Docs Site + Graph /docs @nrwl/nx-docs-reviewers diff --git a/Cargo.lock b/Cargo.lock index 71d8cfe88b..87d6cbc720 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2203,7 +2203,7 @@ dependencies = [ "insta", "itertools 0.10.5", "machine-uid", - "mio 0.8.11", + "mio 1.0.3", "napi", "napi-build", "napi-derive", diff --git a/package.json b/package.json index 2ef72a0a35..198d9037ef 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "preinstall": "node ./scripts/preinstall.js", "test": "nx run-many -t test", "e2e": "nx run-many -t e2e --projects ./e2e/*", - "build:wasm": "rustup override set nightly-2024-07-19 && rustup target add wasm32-wasip1-threads && WASI_SDK_PATH=\"$(pwd)/wasi-sdk-23.0-x86_64-linux\" CMAKE_BUILD_PARALLEL_LEVEL=2 LIBSQLITE3_FLAGS=\"-DLONGDOUBLE_TYPE=double\" pnpm exec nx run-many -t build-native-wasm && rustup override unset", + "build:wasm": "rustup override set nightly-2025-05-09 && rustup target add wasm32-wasip1-threads && WASI_SDK_PATH=\"$(pwd)/wasi-sdk-23.0-x86_64-linux\" CMAKE_BUILD_PARALLEL_LEVEL=2 LIBSQLITE3_FLAGS=\"-DLONGDOUBLE_TYPE=double\" pnpm exec nx run-many -t build-native-wasm && rustup override unset", "lint-pnpm-lock": "eslint pnpm-lock.yaml" }, "devDependencies": { diff --git a/packages/nx/Cargo.toml b/packages/nx/Cargo.toml index 36c4fbdc32..a3461b8200 100644 --- a/packages/nx/Cargo.toml +++ b/packages/nx/Cargo.toml @@ -1,7 +1,7 @@ [package] name = 'nx' version = '0.1.0' -edition = '2021' +edition = '2024' [profile.release-wasi] codegen-units = 16 @@ -64,7 +64,7 @@ vt100-ctt = { git = "https://github.com/JamesHenry/vt100-rust", rev = "b15dc3b0f winapi = { version = "0.3", features = ["fileapi", "psapi", "shellapi"] } [target.'cfg(all(not(windows), not(target_family = "wasm")))'.dependencies] -mio = "0.8" +mio = "1.0" nix = { version = "0.30.0", features = ["process", "signal"] } [target.'cfg(not(target_arch = "wasm32"))'.dependencies] diff --git a/packages/nx/src/native/cache/cache.rs b/packages/nx/src/native/cache/cache.rs index e995ab1540..5e11e97358 100644 --- a/packages/nx/src/native/cache/cache.rs +++ b/packages/nx/src/native/cache/cache.rs @@ -179,8 +179,7 @@ impl NxCache { ) -> anyhow::Result<()> { trace!( "applying remote cache results: {:?} ({})", - &hash, - &result.outputs_path + &hash, &result.outputs_path ); let terminal_output = result.terminal_output.clone().unwrap_or(String::from("")); let mut size = terminal_output.len() as i64; @@ -298,8 +297,7 @@ impl NxCache { trace!( "Copying Files from Cache {:?} -> {:?}", - &outputs_path, - &self.workspace_root + &outputs_path, &self.workspace_root ); let sz = _copy(outputs_path, &self.workspace_root); diff --git a/packages/nx/src/native/cache/expand_outputs.rs b/packages/nx/src/native/cache/expand_outputs.rs index 2f51b5213a..d7bcc062f4 100644 --- a/packages/nx/src/native/cache/expand_outputs.rs +++ b/packages/nx/src/native/cache/expand_outputs.rs @@ -170,8 +170,8 @@ pub fn get_files_for_outputs( #[cfg(test)] mod test { use super::*; - use assert_fs::prelude::*; use assert_fs::TempDir; + use assert_fs::prelude::*; use std::{assert_eq, vec}; fn setup_fs() -> TempDir { diff --git a/packages/nx/src/native/cache/file_ops.rs b/packages/nx/src/native/cache/file_ops.rs index c01be3e7e6..a91db42e1d 100644 --- a/packages/nx/src/native/cache/file_ops.rs +++ b/packages/nx/src/native/cache/file_ops.rs @@ -98,8 +98,8 @@ fn copy_dir_all(src: impl AsRef, dst: impl AsRef) -> io::Result #[cfg(test)] mod test { use super::*; - use assert_fs::prelude::*; use assert_fs::TempDir; + use assert_fs::prelude::*; #[test] fn should_copy_directories() { @@ -115,9 +115,10 @@ mod test { let dest = temp.join("new-parent/child/grand-child/.config"); copy(src.to_string_lossy().into(), dest.to_string_lossy().into()).unwrap(); - assert!(temp - .child("new-parent/child/grand-child/.config/file.txt") - .exists()); + assert!( + temp.child("new-parent/child/grand-child/.config/file.txt") + .exists() + ); } #[test] diff --git a/packages/nx/src/native/cache/http_remote_cache.rs b/packages/nx/src/native/cache/http_remote_cache.rs index 5239405ec5..4da87725dd 100644 --- a/packages/nx/src/native/cache/http_remote_cache.rs +++ b/packages/nx/src/native/cache/http_remote_cache.rs @@ -7,10 +7,10 @@ use std::{ use super::{ cache::CachedResult, - errors::{convert_response_to_error, report_request_error, HttpRemoteCacheErrors}, + errors::{HttpRemoteCacheErrors, convert_response_to_error, report_request_error}, }; use flate2::Compression; -use reqwest::{header, Client, ClientBuilder, StatusCode}; +use reqwest::{Client, ClientBuilder, StatusCode, header}; use tar::{Archive, Builder}; use tracing::trace; diff --git a/packages/nx/src/native/db/initialize.rs b/packages/nx/src/native/db/initialize.rs index b45f8f64bd..08bf8436a4 100644 --- a/packages/nx/src/native/db/initialize.rs +++ b/packages/nx/src/native/db/initialize.rs @@ -1,6 +1,6 @@ use crate::native::db::connection::NxDbConnection; use rusqlite::{Connection, OpenFlags}; -use std::fs::{remove_file, File}; +use std::fs::{File, remove_file}; use std::path::{Path, PathBuf}; use tracing::{debug, trace}; diff --git a/packages/nx/src/native/glob/glob_parser.rs b/packages/nx/src/native/glob/glob_parser.rs index a1b499da19..11fda2b074 100644 --- a/packages/nx/src/native/glob/glob_parser.rs +++ b/packages/nx/src/native/glob/glob_parser.rs @@ -2,7 +2,7 @@ use crate::native::glob::glob_group::GlobGroup; use nom::branch::alt; use nom::bytes::complete::{is_not, tag, take_till, take_until, take_while}; use nom::combinator::{eof, map, map_parser}; -use nom::error::{context, convert_error, VerboseError}; +use nom::error::{VerboseError, context, convert_error}; use nom::multi::{many_till, separated_list0}; use nom::sequence::{preceded, terminated}; use nom::{Finish, IResult}; diff --git a/packages/nx/src/native/hasher.rs b/packages/nx/src/native/hasher.rs index 0426b8a98b..be9da409ef 100644 --- a/packages/nx/src/native/hasher.rs +++ b/packages/nx/src/native/hasher.rs @@ -46,8 +46,8 @@ pub fn hash_file_path>(path: P) -> Option { #[cfg(test)] mod tests { use crate::native::hasher::{hash_array, hash_file}; - use assert_fs::prelude::*; use assert_fs::TempDir; + use assert_fs::prelude::*; /// /// Setup a temporary directory to do testing in diff --git a/packages/nx/src/native/logger/mod.rs b/packages/nx/src/native/logger/mod.rs index 0fc89433bd..491a4ab0ca 100644 --- a/packages/nx/src/native/logger/mod.rs +++ b/packages/nx/src/native/logger/mod.rs @@ -6,7 +6,7 @@ use std::fs::create_dir_all; use std::io::IsTerminal; use tracing::{Event, Level, Subscriber}; use tracing_appender::rolling::{RollingFileAppender, Rotation}; -use tracing_subscriber::fmt::{format, FmtContext, FormatEvent, FormatFields, FormattedFields}; +use tracing_subscriber::fmt::{FmtContext, FormatEvent, FormatFields, FormattedFields, format}; use tracing_subscriber::prelude::*; use tracing_subscriber::registry::LookupSpan; use tracing_subscriber::{EnvFilter, Layer}; diff --git a/packages/nx/src/native/nx.wasi-browser.js b/packages/nx/src/native/nx.wasi-browser.js index fd5afd2380..fc8b5b96e1 100644 --- a/packages/nx/src/native/nx.wasi-browser.js +++ b/packages/nx/src/native/nx.wasi-browser.js @@ -59,43 +59,45 @@ function __napi_rs_initialize_modules(__napiInstance) { __napiInstance.exports['__napi_register__get_transformable_outputs_5']?.() __napiInstance.exports['__napi_register__hash_array_6']?.() __napiInstance.exports['__napi_register__hash_file_7']?.() - __napiInstance.exports['__napi_register__IS_WASM_8']?.() - __napiInstance.exports['__napi_register__get_binary_target_9']?.() - __napiInstance.exports['__napi_register__ImportResult_struct_10']?.() - __napiInstance.exports['__napi_register__find_imports_11']?.() - __napiInstance.exports['__napi_register__transfer_project_graph_12']?.() - __napiInstance.exports['__napi_register__ExternalNode_struct_13']?.() - __napiInstance.exports['__napi_register__Target_struct_14']?.() - __napiInstance.exports['__napi_register__Project_struct_15']?.() - __napiInstance.exports['__napi_register__ProjectGraph_struct_16']?.() - __napiInstance.exports['__napi_register__HashPlanner_struct_17']?.() - __napiInstance.exports['__napi_register__HashPlanner_impl_21']?.() - __napiInstance.exports['__napi_register__HashDetails_struct_22']?.() - __napiInstance.exports['__napi_register__HasherOptions_struct_23']?.() - __napiInstance.exports['__napi_register__TaskHasher_struct_24']?.() - __napiInstance.exports['__napi_register__TaskHasher_impl_27']?.() - __napiInstance.exports['__napi_register__Task_struct_28']?.() - __napiInstance.exports['__napi_register__TaskTarget_struct_29']?.() - __napiInstance.exports['__napi_register__TaskResult_struct_30']?.() - __napiInstance.exports['__napi_register__TaskGraph_struct_31']?.() - __napiInstance.exports['__napi_register__FileData_struct_32']?.() - __napiInstance.exports['__napi_register__InputsInput_struct_33']?.() - __napiInstance.exports['__napi_register__FileSetInput_struct_34']?.() - __napiInstance.exports['__napi_register__RuntimeInput_struct_35']?.() - __napiInstance.exports['__napi_register__EnvironmentInput_struct_36']?.() - __napiInstance.exports['__napi_register__ExternalDependenciesInput_struct_37']?.() - __napiInstance.exports['__napi_register__DepsOutputsInput_struct_38']?.() - __napiInstance.exports['__napi_register__NxJson_struct_39']?.() - __napiInstance.exports['__napi_register__FileLock_struct_40']?.() - __napiInstance.exports['__napi_register__FileLock_impl_42']?.() - __napiInstance.exports['__napi_register__WorkspaceContext_struct_43']?.() - __napiInstance.exports['__napi_register__WorkspaceContext_impl_54']?.() - __napiInstance.exports['__napi_register__WorkspaceErrors_55']?.() - __napiInstance.exports['__napi_register__NxWorkspaceFiles_struct_56']?.() - __napiInstance.exports['__napi_register__NxWorkspaceFilesExternals_struct_57']?.() - __napiInstance.exports['__napi_register__UpdatedWorkspaceFiles_struct_58']?.() - __napiInstance.exports['__napi_register__FileMap_struct_59']?.() - __napiInstance.exports['__napi_register____test_only_transfer_file_map_60']?.() + __napiInstance.exports['__napi_register__log_info_8']?.() + __napiInstance.exports['__napi_register__log_error_9']?.() + __napiInstance.exports['__napi_register__IS_WASM_10']?.() + __napiInstance.exports['__napi_register__get_binary_target_11']?.() + __napiInstance.exports['__napi_register__ImportResult_struct_12']?.() + __napiInstance.exports['__napi_register__find_imports_13']?.() + __napiInstance.exports['__napi_register__transfer_project_graph_14']?.() + __napiInstance.exports['__napi_register__ExternalNode_struct_15']?.() + __napiInstance.exports['__napi_register__Target_struct_16']?.() + __napiInstance.exports['__napi_register__Project_struct_17']?.() + __napiInstance.exports['__napi_register__ProjectGraph_struct_18']?.() + __napiInstance.exports['__napi_register__HashPlanner_struct_19']?.() + __napiInstance.exports['__napi_register__HashPlanner_impl_23']?.() + __napiInstance.exports['__napi_register__HashDetails_struct_24']?.() + __napiInstance.exports['__napi_register__HasherOptions_struct_25']?.() + __napiInstance.exports['__napi_register__TaskHasher_struct_26']?.() + __napiInstance.exports['__napi_register__TaskHasher_impl_29']?.() + __napiInstance.exports['__napi_register__Task_struct_30']?.() + __napiInstance.exports['__napi_register__TaskTarget_struct_31']?.() + __napiInstance.exports['__napi_register__TaskResult_struct_32']?.() + __napiInstance.exports['__napi_register__TaskGraph_struct_33']?.() + __napiInstance.exports['__napi_register__FileData_struct_34']?.() + __napiInstance.exports['__napi_register__InputsInput_struct_35']?.() + __napiInstance.exports['__napi_register__FileSetInput_struct_36']?.() + __napiInstance.exports['__napi_register__RuntimeInput_struct_37']?.() + __napiInstance.exports['__napi_register__EnvironmentInput_struct_38']?.() + __napiInstance.exports['__napi_register__ExternalDependenciesInput_struct_39']?.() + __napiInstance.exports['__napi_register__DepsOutputsInput_struct_40']?.() + __napiInstance.exports['__napi_register__NxJson_struct_41']?.() + __napiInstance.exports['__napi_register__FileLock_struct_42']?.() + __napiInstance.exports['__napi_register__FileLock_impl_44']?.() + __napiInstance.exports['__napi_register__WorkspaceContext_struct_45']?.() + __napiInstance.exports['__napi_register__WorkspaceContext_impl_56']?.() + __napiInstance.exports['__napi_register__WorkspaceErrors_57']?.() + __napiInstance.exports['__napi_register__NxWorkspaceFiles_struct_58']?.() + __napiInstance.exports['__napi_register__NxWorkspaceFilesExternals_struct_59']?.() + __napiInstance.exports['__napi_register__UpdatedWorkspaceFiles_struct_60']?.() + __napiInstance.exports['__napi_register__FileMap_struct_61']?.() + __napiInstance.exports['__napi_register____test_only_transfer_file_map_62']?.() } export const FileLock = __napiModule.exports.FileLock export const HashPlanner = __napiModule.exports.HashPlanner @@ -111,6 +113,8 @@ export const getTransformableOutputs = __napiModule.exports.getTransformableOutp export const hashArray = __napiModule.exports.hashArray export const hashFile = __napiModule.exports.hashFile export const IS_WASM = __napiModule.exports.IS_WASM +export const logError = __napiModule.exports.logError +export const logInfo = __napiModule.exports.logInfo export const remove = __napiModule.exports.remove export const testOnlyTransferFileMap = __napiModule.exports.testOnlyTransferFileMap export const transferProjectGraph = __napiModule.exports.transferProjectGraph diff --git a/packages/nx/src/native/nx.wasi.cjs b/packages/nx/src/native/nx.wasi.cjs index 95fdbd176e..2268353b85 100644 --- a/packages/nx/src/native/nx.wasi.cjs +++ b/packages/nx/src/native/nx.wasi.cjs @@ -90,43 +90,45 @@ function __napi_rs_initialize_modules(__napiInstance) { __napiInstance.exports['__napi_register__get_transformable_outputs_5']?.() __napiInstance.exports['__napi_register__hash_array_6']?.() __napiInstance.exports['__napi_register__hash_file_7']?.() - __napiInstance.exports['__napi_register__IS_WASM_8']?.() - __napiInstance.exports['__napi_register__get_binary_target_9']?.() - __napiInstance.exports['__napi_register__ImportResult_struct_10']?.() - __napiInstance.exports['__napi_register__find_imports_11']?.() - __napiInstance.exports['__napi_register__transfer_project_graph_12']?.() - __napiInstance.exports['__napi_register__ExternalNode_struct_13']?.() - __napiInstance.exports['__napi_register__Target_struct_14']?.() - __napiInstance.exports['__napi_register__Project_struct_15']?.() - __napiInstance.exports['__napi_register__ProjectGraph_struct_16']?.() - __napiInstance.exports['__napi_register__HashPlanner_struct_17']?.() - __napiInstance.exports['__napi_register__HashPlanner_impl_21']?.() - __napiInstance.exports['__napi_register__HashDetails_struct_22']?.() - __napiInstance.exports['__napi_register__HasherOptions_struct_23']?.() - __napiInstance.exports['__napi_register__TaskHasher_struct_24']?.() - __napiInstance.exports['__napi_register__TaskHasher_impl_27']?.() - __napiInstance.exports['__napi_register__Task_struct_28']?.() - __napiInstance.exports['__napi_register__TaskTarget_struct_29']?.() - __napiInstance.exports['__napi_register__TaskResult_struct_30']?.() - __napiInstance.exports['__napi_register__TaskGraph_struct_31']?.() - __napiInstance.exports['__napi_register__FileData_struct_32']?.() - __napiInstance.exports['__napi_register__InputsInput_struct_33']?.() - __napiInstance.exports['__napi_register__FileSetInput_struct_34']?.() - __napiInstance.exports['__napi_register__RuntimeInput_struct_35']?.() - __napiInstance.exports['__napi_register__EnvironmentInput_struct_36']?.() - __napiInstance.exports['__napi_register__ExternalDependenciesInput_struct_37']?.() - __napiInstance.exports['__napi_register__DepsOutputsInput_struct_38']?.() - __napiInstance.exports['__napi_register__NxJson_struct_39']?.() - __napiInstance.exports['__napi_register__FileLock_struct_40']?.() - __napiInstance.exports['__napi_register__FileLock_impl_42']?.() - __napiInstance.exports['__napi_register__WorkspaceContext_struct_43']?.() - __napiInstance.exports['__napi_register__WorkspaceContext_impl_54']?.() - __napiInstance.exports['__napi_register__WorkspaceErrors_55']?.() - __napiInstance.exports['__napi_register__NxWorkspaceFiles_struct_56']?.() - __napiInstance.exports['__napi_register__NxWorkspaceFilesExternals_struct_57']?.() - __napiInstance.exports['__napi_register__UpdatedWorkspaceFiles_struct_58']?.() - __napiInstance.exports['__napi_register__FileMap_struct_59']?.() - __napiInstance.exports['__napi_register____test_only_transfer_file_map_60']?.() + __napiInstance.exports['__napi_register__log_info_8']?.() + __napiInstance.exports['__napi_register__log_error_9']?.() + __napiInstance.exports['__napi_register__IS_WASM_10']?.() + __napiInstance.exports['__napi_register__get_binary_target_11']?.() + __napiInstance.exports['__napi_register__ImportResult_struct_12']?.() + __napiInstance.exports['__napi_register__find_imports_13']?.() + __napiInstance.exports['__napi_register__transfer_project_graph_14']?.() + __napiInstance.exports['__napi_register__ExternalNode_struct_15']?.() + __napiInstance.exports['__napi_register__Target_struct_16']?.() + __napiInstance.exports['__napi_register__Project_struct_17']?.() + __napiInstance.exports['__napi_register__ProjectGraph_struct_18']?.() + __napiInstance.exports['__napi_register__HashPlanner_struct_19']?.() + __napiInstance.exports['__napi_register__HashPlanner_impl_23']?.() + __napiInstance.exports['__napi_register__HashDetails_struct_24']?.() + __napiInstance.exports['__napi_register__HasherOptions_struct_25']?.() + __napiInstance.exports['__napi_register__TaskHasher_struct_26']?.() + __napiInstance.exports['__napi_register__TaskHasher_impl_29']?.() + __napiInstance.exports['__napi_register__Task_struct_30']?.() + __napiInstance.exports['__napi_register__TaskTarget_struct_31']?.() + __napiInstance.exports['__napi_register__TaskResult_struct_32']?.() + __napiInstance.exports['__napi_register__TaskGraph_struct_33']?.() + __napiInstance.exports['__napi_register__FileData_struct_34']?.() + __napiInstance.exports['__napi_register__InputsInput_struct_35']?.() + __napiInstance.exports['__napi_register__FileSetInput_struct_36']?.() + __napiInstance.exports['__napi_register__RuntimeInput_struct_37']?.() + __napiInstance.exports['__napi_register__EnvironmentInput_struct_38']?.() + __napiInstance.exports['__napi_register__ExternalDependenciesInput_struct_39']?.() + __napiInstance.exports['__napi_register__DepsOutputsInput_struct_40']?.() + __napiInstance.exports['__napi_register__NxJson_struct_41']?.() + __napiInstance.exports['__napi_register__FileLock_struct_42']?.() + __napiInstance.exports['__napi_register__FileLock_impl_44']?.() + __napiInstance.exports['__napi_register__WorkspaceContext_struct_45']?.() + __napiInstance.exports['__napi_register__WorkspaceContext_impl_56']?.() + __napiInstance.exports['__napi_register__WorkspaceErrors_57']?.() + __napiInstance.exports['__napi_register__NxWorkspaceFiles_struct_58']?.() + __napiInstance.exports['__napi_register__NxWorkspaceFilesExternals_struct_59']?.() + __napiInstance.exports['__napi_register__UpdatedWorkspaceFiles_struct_60']?.() + __napiInstance.exports['__napi_register__FileMap_struct_61']?.() + __napiInstance.exports['__napi_register____test_only_transfer_file_map_62']?.() } module.exports.FileLock = __napiModule.exports.FileLock module.exports.HashPlanner = __napiModule.exports.HashPlanner @@ -142,6 +144,8 @@ module.exports.getTransformableOutputs = __napiModule.exports.getTransformableOu module.exports.hashArray = __napiModule.exports.hashArray module.exports.hashFile = __napiModule.exports.hashFile module.exports.IS_WASM = __napiModule.exports.IS_WASM +module.exports.logError = __napiModule.exports.logError +module.exports.logInfo = __napiModule.exports.logInfo module.exports.remove = __napiModule.exports.remove module.exports.testOnlyTransferFileMap = __napiModule.exports.testOnlyTransferFileMap module.exports.transferProjectGraph = __napiModule.exports.transferProjectGraph diff --git a/packages/nx/src/native/plugins/js/ts_import_locators.rs b/packages/nx/src/native/plugins/js/ts_import_locators.rs index c208ba25d9..e57a979cfb 100644 --- a/packages/nx/src/native/plugins/js/ts_import_locators.rs +++ b/packages/nx/src/native/plugins/js/ts_import_locators.rs @@ -715,8 +715,8 @@ mod find_imports { use super::*; use crate::native::glob::build_glob_set; use crate::native::walker::nx_walker; - use assert_fs::prelude::*; use assert_fs::TempDir; + use assert_fs::prelude::*; use std::env; use std::path::PathBuf; use swc_common::comments::NoopComments; diff --git a/packages/nx/src/native/project_graph/utils/find_project_for_path.rs b/packages/nx/src/native/project_graph/utils/find_project_for_path.rs index ce344d188d..ec8aeed97d 100644 --- a/packages/nx/src/native/project_graph/utils/find_project_for_path.rs +++ b/packages/nx/src/native/project_graph/utils/find_project_for_path.rs @@ -1,4 +1,4 @@ -use crate::native::project_graph::utils::{normalize_project_root, ProjectRootMappings}; +use crate::native::project_graph::utils::{ProjectRootMappings, normalize_project_root}; use std::path::Path; pub fn find_project_for_path>( diff --git a/packages/nx/src/native/pseudo_terminal/child_process.rs b/packages/nx/src/native/pseudo_terminal/child_process.rs index 491add02d1..84541add72 100644 --- a/packages/nx/src/native/pseudo_terminal/child_process.rs +++ b/packages/nx/src/native/pseudo_terminal/child_process.rs @@ -1,13 +1,13 @@ use super::process_killer::ProcessKiller; use crate::native::pseudo_terminal::pseudo_terminal::{ParserArc, WriterArc}; use crossbeam_channel::Sender; -use crossbeam_channel::{bounded, select, Receiver}; +use crossbeam_channel::{Receiver, bounded, select}; use napi::bindgen_prelude::External; use napi::{ + Env, JsFunction, threadsafe_function::{ ErrorStrategy::Fatal, ThreadsafeFunction, ThreadsafeFunctionCallMode::NonBlocking, }, - Env, JsFunction, }; use std::io::Write; use std::sync::{Arc, Mutex, RwLock}; diff --git a/packages/nx/src/native/pseudo_terminal/command/unix.rs b/packages/nx/src/native/pseudo_terminal/command/unix.rs index 47e99d5292..8bbab48aeb 100644 --- a/packages/nx/src/native/pseudo_terminal/command/unix.rs +++ b/packages/nx/src/native/pseudo_terminal/command/unix.rs @@ -1,4 +1,4 @@ -use mio::{unix::SourceFd, Events}; +use mio::{Events, unix::SourceFd}; use std::{ io::{Read, Stdin, Write}, os::fd::AsRawFd, diff --git a/packages/nx/src/native/pseudo_terminal/process_killer/unix.rs b/packages/nx/src/native/pseudo_terminal/process_killer/unix.rs index f6a31ff71c..aed03b1d07 100644 --- a/packages/nx/src/native/pseudo_terminal/process_killer/unix.rs +++ b/packages/nx/src/native/pseudo_terminal/process_killer/unix.rs @@ -1,5 +1,5 @@ use nix::{ - sys::signal::{kill, Signal as NixSignal}, + sys::signal::{Signal as NixSignal, kill}, unistd::Pid, }; diff --git a/packages/nx/src/native/pseudo_terminal/pseudo_terminal.rs b/packages/nx/src/native/pseudo_terminal/pseudo_terminal.rs index 68e600b9b7..5a5f88195d 100644 --- a/packages/nx/src/native/pseudo_terminal/pseudo_terminal.rs +++ b/packages/nx/src/native/pseudo_terminal/pseudo_terminal.rs @@ -1,5 +1,5 @@ use anyhow::anyhow; -use crossbeam_channel::{bounded, unbounded, Receiver, Sender}; +use crossbeam_channel::{Receiver, Sender, bounded, unbounded}; use crossterm::{ terminal, terminal::{disable_raw_mode, enable_raw_mode}, @@ -13,8 +13,8 @@ use std::{ collections::HashMap, io::{Read, Write}, sync::{ - atomic::{AtomicBool, Ordering}, Arc, + atomic::{AtomicBool, Ordering}, }, time::Instant, }; diff --git a/packages/nx/src/native/tasks/hash_planner.rs b/packages/nx/src/native/tasks/hash_planner.rs index a270a831ad..6fb09d1d3e 100644 --- a/packages/nx/src/native/tasks/hash_planner.rs +++ b/packages/nx/src/native/tasks/hash_planner.rs @@ -172,12 +172,18 @@ impl HashPlanner { if self.project_graph.nodes.contains_key(dep) { let deps = self.project_graph.dependencies.get(project_name); if deps.is_some_and(|deps| deps.contains(dep)) { - anyhow::bail!("The externalDependency '{dep}' for '{project_name}:{target_name}' is not an external node and is already a dependency. Please remove it from the externalDependency inputs.") + anyhow::bail!( + "The externalDependency '{dep}' for '{project_name}:{target_name}' is not an external node and is already a dependency. Please remove it from the externalDependency inputs." + ) } else { - anyhow::bail!("The externalDependency '{dep}' for '{project_name}:{target_name}' is not an external node. If you believe this is a dependency, add an implicitDependency to '{project_name}'") + anyhow::bail!( + "The externalDependency '{dep}' for '{project_name}:{target_name}' is not an external node. If you believe this is a dependency, add an implicitDependency to '{project_name}'" + ) } } else { - anyhow::bail!("The externalDependency '{dep}' for '{project_name}:{target_name}' could not be found") + anyhow::bail!( + "The externalDependency '{dep}' for '{project_name}:{target_name}' could not be found" + ) } }; trace!( diff --git a/packages/nx/src/native/tasks/types.rs b/packages/nx/src/native/tasks/types.rs index 95a18ef8da..0e3fdfb776 100644 --- a/packages/nx/src/native/tasks/types.rs +++ b/packages/nx/src/native/tasks/types.rs @@ -2,7 +2,7 @@ use std::fmt::Formatter; use std::{collections::HashMap, fmt, ptr}; use napi::{ - bindgen_prelude::{check_status, ToNapiValue}, + bindgen_prelude::{ToNapiValue, check_status}, sys, }; diff --git a/packages/nx/src/native/tui/app.rs b/packages/nx/src/native/tui/app.rs index c198a5f0eb..1e8b0f9104 100644 --- a/packages/nx/src/native/tui/app.rs +++ b/packages/nx/src/native/tui/app.rs @@ -24,6 +24,7 @@ use crate::native::{ }; use super::action::Action; +use super::components::Component; use super::components::countdown_popup::CountdownPopup; use super::components::help_popup::HelpPopup; use super::components::layout_manager::{ @@ -32,7 +33,6 @@ use super::components::layout_manager::{ use super::components::task_selection_manager::{SelectionMode, TaskSelectionManager}; use super::components::tasks_list::{TaskStatus, TasksList}; use super::components::terminal_pane::{TerminalPane, TerminalPaneData, TerminalPaneState}; -use super::components::Component; use super::config::TuiConfig; use super::lifecycle::RunMode; use super::pty::PtyInstance; diff --git a/packages/nx/src/native/tui/components/countdown_popup.rs b/packages/nx/src/native/tui/components/countdown_popup.rs index f86147e821..4cd6d2650a 100644 --- a/packages/nx/src/native/tui/components/countdown_popup.rs +++ b/packages/nx/src/native/tui/components/countdown_popup.rs @@ -1,5 +1,6 @@ use color_eyre::eyre::Result; use ratatui::{ + Frame, layout::{Alignment, Rect}, style::{Modifier, Style}, text::{Line, Span}, @@ -7,7 +8,6 @@ use ratatui::{ Block, BorderType, Borders, Clear, Padding, Paragraph, Scrollbar, ScrollbarOrientation, ScrollbarState, }, - Frame, }; use std::any::Any; use std::time::{Duration, Instant}; diff --git a/packages/nx/src/native/tui/components/help_text.rs b/packages/nx/src/native/tui/components/help_text.rs index ad0c7520a3..3c8c25d1f5 100644 --- a/packages/nx/src/native/tui/components/help_text.rs +++ b/packages/nx/src/native/tui/components/help_text.rs @@ -1,9 +1,9 @@ use ratatui::{ + Frame, layout::{Alignment, Rect}, style::{Modifier, Style}, text::{Line, Span}, widgets::Paragraph, - Frame, }; use crate::native::tui::theme::THEME; diff --git a/packages/nx/src/native/tui/components/layout_manager.rs b/packages/nx/src/native/tui/components/layout_manager.rs index 349164f314..e228baecc2 100644 --- a/packages/nx/src/native/tui/components/layout_manager.rs +++ b/packages/nx/src/native/tui/components/layout_manager.rs @@ -718,7 +718,7 @@ mod tests { mod visual_tests { use super::*; use ratatui::widgets::{Block, Borders}; - use ratatui::{backend::TestBackend, Terminal}; + use ratatui::{Terminal, backend::TestBackend}; /// Render a layout configuration to a TestBackend for visualization fn render_layout( diff --git a/packages/nx/src/native/tui/components/pagination.rs b/packages/nx/src/native/tui/components/pagination.rs index 7a8caf4069..0d5553c713 100644 --- a/packages/nx/src/native/tui/components/pagination.rs +++ b/packages/nx/src/native/tui/components/pagination.rs @@ -1,10 +1,10 @@ use crate::native::tui::theme::THEME; use ratatui::{ + Frame, layout::Rect, style::{Modifier, Style}, text::{Line, Span}, widgets::Paragraph, - Frame, }; pub struct Pagination { diff --git a/packages/nx/src/native/tui/components/tasks_list.rs b/packages/nx/src/native/tui/components/tasks_list.rs index a90633d05c..4cc94fc39b 100644 --- a/packages/nx/src/native/tui/components/tasks_list.rs +++ b/packages/nx/src/native/tui/components/tasks_list.rs @@ -1,11 +1,11 @@ use color_eyre::eyre::Result; use hashbrown::HashSet; use ratatui::{ + Frame, layout::{Alignment, Constraint, Direction, Layout, Rect}, style::{Modifier, Style, Stylize}, text::{Line, Span}, widgets::{Block, Cell, Paragraph, Row, Table}, - Frame, }; use std::{ any::Any, @@ -1845,8 +1845,8 @@ impl Component for TasksList { mod tests { use super::*; use crate::native::tasks::types::TaskTarget; - use ratatui::backend::TestBackend; use ratatui::Terminal; + use ratatui::backend::TestBackend; // Helper function to create a TasksList with test task data fn create_test_tasks_list() -> (TasksList, Vec) { diff --git a/packages/nx/src/native/tui/lifecycle.rs b/packages/nx/src/native/tui/lifecycle.rs index 107b264091..5a5d53ff7f 100644 --- a/packages/nx/src/native/tui/lifecycle.rs +++ b/packages/nx/src/native/tui/lifecycle.rs @@ -1,6 +1,6 @@ +use napi::JsObject; use napi::bindgen_prelude::*; use napi::threadsafe_function::{ErrorStrategy, ThreadsafeFunction}; -use napi::JsObject; use parking_lot::Mutex; use std::sync::Arc; use tracing::debug; diff --git a/packages/nx/src/native/tui/theme.rs b/packages/nx/src/native/tui/theme.rs index 06b6014e15..a6c5a9eb45 100644 --- a/packages/nx/src/native/tui/theme.rs +++ b/packages/nx/src/native/tui/theme.rs @@ -4,7 +4,7 @@ // This is the only file we should use the `ratatui::style::Color` type in use ratatui::style::Color; use std::sync::LazyLock; -use terminal_colorsaurus::{color_scheme, ColorScheme, QueryOptions}; +use terminal_colorsaurus::{ColorScheme, QueryOptions, color_scheme}; use tracing::debug; pub static THEME: LazyLock = LazyLock::new(Theme::init); diff --git a/packages/nx/src/native/tui/utils.rs b/packages/nx/src/native/tui/utils.rs index 40141a7594..2e71122216 100644 --- a/packages/nx/src/native/tui/utils.rs +++ b/packages/nx/src/native/tui/utils.rs @@ -419,14 +419,19 @@ mod tests { match (a.end_time, b.end_time) { (Some(time_a), Some(time_b)) => { if time_a > time_b { - panic!("Sort order violation: task with end_time {} should come before task with end_time {}", time_b, time_a); + panic!( + "Sort order violation: task with end_time {} should come before task with end_time {}", + time_b, time_a + ); } else if time_a < time_b { continue; } // If end times are equal, fall through to name check } (Some(_), None) => continue, // Correct order - (None, Some(_)) => panic!("Sort order violation: task with end_time should come before task without end_time"), + (None, Some(_)) => panic!( + "Sort order violation: task with end_time should come before task without end_time" + ), (None, None) => {} // Fall through to name check } } diff --git a/packages/nx/src/native/types/inputs.rs b/packages/nx/src/native/types/inputs.rs index 70e91a899a..40d32a6f04 100644 --- a/packages/nx/src/native/types/inputs.rs +++ b/packages/nx/src/native/types/inputs.rs @@ -1,5 +1,5 @@ -use napi::bindgen_prelude::Either7; use napi::Either; +use napi::bindgen_prelude::Either7; #[napi(object)] pub struct InputsInput { diff --git a/packages/nx/src/native/types/napi_dashmap.rs b/packages/nx/src/native/types/napi_dashmap.rs index c3bd2fcbd5..da124edbda 100644 --- a/packages/nx/src/native/types/napi_dashmap.rs +++ b/packages/nx/src/native/types/napi_dashmap.rs @@ -1,6 +1,6 @@ use dashmap::DashMap; use napi::bindgen_prelude::{Object, ToNapiValue}; -use napi::{sys, Env}; +use napi::{Env, sys}; use std::collections::hash_map::RandomState; use std::ops::{Deref, DerefMut}; diff --git a/packages/nx/src/native/utils/file_lock.rs b/packages/nx/src/native/utils/file_lock.rs index 064340aed3..2cc3843d30 100644 --- a/packages/nx/src/native/utils/file_lock.rs +++ b/packages/nx/src/native/utils/file_lock.rs @@ -122,8 +122,8 @@ impl FileLock { mod test { use super::*; - use assert_fs::prelude::*; use assert_fs::TempDir; + use assert_fs::prelude::*; #[test] fn test_new_lock() { diff --git a/packages/nx/src/native/utils/find_matching_projects.rs b/packages/nx/src/native/utils/find_matching_projects.rs index 4dde0e6fea..f6a7e541cd 100644 --- a/packages/nx/src/native/utils/find_matching_projects.rs +++ b/packages/nx/src/native/utils/find_matching_projects.rs @@ -1,4 +1,4 @@ -use crate::native::glob::{build_glob_set, NxGlobSet}; +use crate::native::glob::{NxGlobSet, build_glob_set}; use crate::native::project_graph::types::{Project, ProjectGraph}; use hashbrown::HashSet; use std::collections::HashMap; diff --git a/packages/nx/src/native/walker.rs b/packages/nx/src/native/walker.rs index 97ee40ae79..a650ea2acf 100644 --- a/packages/nx/src/native/walker.rs +++ b/packages/nx/src/native/walker.rs @@ -5,7 +5,7 @@ use std::path::{Path, PathBuf}; use crate::native::glob::build_glob_set; use crate::native::logger::enable_logger; -use crate::native::utils::{get_mod_time, Normalize}; +use crate::native::utils::{Normalize, get_mod_time}; use walkdir::WalkDir; #[derive(PartialEq, Debug, Ord, PartialOrd, Eq, Clone)] @@ -192,8 +192,8 @@ where mod test { use std::{assert_eq, vec}; - use assert_fs::prelude::*; use assert_fs::TempDir; + use assert_fs::prelude::*; use super::*; diff --git a/packages/nx/src/native/watch/types.rs b/packages/nx/src/native/watch/types.rs index 0df9f96cf2..4ad9ff7081 100644 --- a/packages/nx/src/native/watch/types.rs +++ b/packages/nx/src/native/watch/types.rs @@ -124,8 +124,8 @@ pub fn transform_event_to_watch_events( #[cfg(all(not(target_os = "macos"), not(target_os = "windows")))] { use crate::native::walker::nx_walker_sync; - use ignore::gitignore::GitignoreBuilder; use ignore::Match; + use ignore::gitignore::GitignoreBuilder; if matches!(event_kind, FileEventKind::Create(CreateKind::Folder)) { let mut result = vec![]; diff --git a/packages/nx/src/native/watch/watcher.rs b/packages/nx/src/native/watch/watcher.rs index a4e1c3d3bc..c49ab78a64 100644 --- a/packages/nx/src/native/watch/watcher.rs +++ b/packages/nx/src/native/watch/watcher.rs @@ -1,10 +1,10 @@ -use std::collections::hash_map::Entry; use std::collections::HashMap; +use std::collections::hash_map::Entry; use std::path::MAIN_SEPARATOR; use std::sync::Arc; use crate::native::watch::types::{ - transform_event_to_watch_events, EventType, WatchEvent, WatchEventInternal, + EventType, WatchEvent, WatchEventInternal, transform_event_to_watch_events, }; use crate::native::watch::watch_filterer; use napi::bindgen_prelude::*; diff --git a/packages/nx/src/native/workspace/context.rs b/packages/nx/src/native/workspace/context.rs index bdf15138bf..f066ecf52f 100644 --- a/packages/nx/src/native/workspace/context.rs +++ b/packages/nx/src/native/workspace/context.rs @@ -6,9 +6,9 @@ use std::sync::Arc; use crate::native::hasher::hash; use crate::native::logger::enable_logger; -use crate::native::project_graph::utils::{find_project_for_path, ProjectRootMappings}; +use crate::native::project_graph::utils::{ProjectRootMappings, find_project_for_path}; use crate::native::types::FileData; -use crate::native::utils::{path::get_child_files, Normalize, NxCondvar, NxMutex}; +use crate::native::utils::{Normalize, NxCondvar, NxMutex, path::get_child_files}; use crate::native::workspace::files_archive::{read_files_archive, write_files_archive}; use crate::native::workspace::files_hashing::{full_files_hash, selective_files_hash}; use crate::native::workspace::types::{ diff --git a/packages/nx/src/native/workspace/files_hashing.rs b/packages/nx/src/native/workspace/files_hashing.rs index 3df3a986cb..9a901965a1 100644 --- a/packages/nx/src/native/workspace/files_hashing.rs +++ b/packages/nx/src/native/workspace/files_hashing.rs @@ -6,7 +6,7 @@ use rayon::prelude::*; use tracing::trace; use crate::native::hasher::hash_file_path; -use crate::native::walker::{nx_walker, NxFile}; +use crate::native::walker::{NxFile, nx_walker}; use crate::native::workspace::files_archive::{NxFileHashed, NxFileHashes}; pub fn full_files_hash(workspace_root: &Path) -> NxFileHashes { @@ -63,8 +63,7 @@ fn hash_files(files: Vec) -> Vec<(String, NxFileHashed)> { } else { trace!( "hashing workspace files in {} chunks of {}", - num_parallelism, - chunks + num_parallelism, chunks ); files .par_chunks(chunks) @@ -87,8 +86,8 @@ fn hash_files(files: Vec) -> Vec<(String, NxFileHashed)> { #[cfg(test)] mod tests { - use assert_fs::prelude::*; use assert_fs::TempDir; + use assert_fs::prelude::*; use crate::native::utils::get_mod_time; use crate::native::workspace::files_archive::{NxFileHashed, NxFileHashes}; diff --git a/rust-toolchain b/rust-toolchain deleted file mode 100644 index 2bf5ad0447..0000000000 --- a/rust-toolchain +++ /dev/null @@ -1 +0,0 @@ -stable diff --git a/rust-toolchain.toml b/rust-toolchain.toml new file mode 100644 index 0000000000..ccc38b655f --- /dev/null +++ b/rust-toolchain.toml @@ -0,0 +1,4 @@ +[toolchain] +channel = "1.86.0" +targets = ["wasm32-wasip1-threads"] +profile = "default"