What nrwl/nx shipped
Written by FoxPlug from the repository's own releases; not affiliated with Nx. Paste your own repository in the box below and FoxPlug writes the same weekly update for your product. This page is an automatic summary of the releases, pull requests and commits in github.com/nrwl/nx; Nx did not write it and does not use or endorse FoxPlug. Every line links to the change it describes.
Get a weekly update like this for your product, free
Week of October 5, 2026
What shipped
- The deprecated nx watch --includeDependentProjects alias is removed; use --includeDependencies. Pull request #37311
- Executor custom hashers declared in executors.json are deprecated in Nx 24 and will be removed in Nx 25. Pull request #37310
- DependsOn can now opt out of a continuous dependency's inputs so unrelated changes no longer select atomized tasks. Pull request #37246
- When nx run cannot resolve a project or target, the error now suggests available targets and the closest task id. Pull request #35863
- The no-op createDependencies exports are removed from the vite, js/typescript, storybook, rspack and remix plugins. Pull request #37253
- Remix scaffolding generators and build/serve executors are removed in v24, leaving convert-to-inferred and a migration. Pull request #37155
- The deprecated @nx/gradle/plugin-v1 entry point is removed and users are migrated to @nx/gradle. Pull request #37325
- 24.0.0-beta.0 ships the watch alias removal, dependsOn inputs opt-out, deprecation of executor custom hashers and run-one error suggestions. Release
- External dependency resolution now picks a deterministic node when several versions of a package are installed. Pull request #37327
- The daemon client no longer wedges in a connecting state when a reconnect fails, so callers get settled promises. Pull request #36820
Why it matters
This week is mostly about Nx 24 cleanup: deprecated watch aliases, executor custom hashers, no-op plugin exports, Remix generators and executors, and @nx/gradle/plugin-v1 are removed or scheduled for removal, so users should run migrations and update configs. Task graph behavior also changes: dependsOn can ignore a continuous dependency's inputs, and external dependency resolution is deterministic. Run errors now name available targets and spell-check the task id, making bad nx run invocations easier to fix.
Changelog entry
- Core!: remove deprecated nx watch --includeDependentProjects alias Pull request #37311
- Core!: deprecate executor custom hashers, removed in Nx 25 Pull request #37310
- Core: let dependsOn opt out of a continuous dependency's inputs Pull request #37246
- Core: suggest available targets and closest task id on run-one errors Pull request #35863
- Misc!: remove no-op createDependencies exports from first-party plugins Pull request #37253
- Remix!: remove generators and executors in v24, keep convert-to-inferred Pull request #37155
- Gradle!: remove @nx/gradle/plugin-v1 and migrate to @nx/gradle Pull request #37325
- Core: resolve externalDependencies deterministically when several versions are installed Pull request #37327
- Core: prevent daemon client wedge on failed reconnect Pull request #36820
- Release: 24.0.0-beta.0 Release
- Nx-cloud: keep client bundle state files out of the install directory Pull request #37349
- Maven: prefer the project's Maven wrapper in batch mode Pull request #37329
Nx 24 cleanup: nx watch --includeDependentProjects removed, executor custom hashers deprecated, dependsOn can skip a continuous dependency's inputs, and run errors now suggest targets. Deprecated Remix generators, @nx/gradle/plugin-v1 and no-op createDependencies exports are gone
This week's Nx changes are largely Nx 24 cleanup and task graph polish. Deprecated APIs are removed or marked: the nx watch --includeDependentProjects alias is gone, executor custom hashers are deprecated for removal in Nx 25, no-op createDependencies exports are removed from the vite, js/typescript, storybook, rspack and remix plugins, and Remix scaffolding generators and build/serve executors are removed in v24 with a migration. @nx/gradle/plugin-v1 is removed with a migration to @nx/gradle. Task behavior changes too: dependsOn can opt out of a continuous dependency's inputs so unrelated changes no longer select atomized tasks, and external dependencies resolve deterministically when several versions are installed. When nx run cannot resolve a project or target, the error now lists avail
Week of September 28, 2026
What shipped
- Release 23.3.0-beta.9 with --explain flag to show why each task is affected and a batched @nx/oxlint:lint executor. Release
- Nx affected now explains why each task is selected with the --explain flag, showing the chain of affected dependencies. Pull request #36885
- @nx/oxlint gains a batched lint executor that runs all projects in one process instead of one per project. Pull request #36827
- Ultracache can now be enabled with the NX_CLOUD_USE_ULTRACACHE environment variable. Pull request #37242
- Vitest executor now supports vitest 5 with automatic version selection and migration for existing workspaces. Pull request #37142
- Cached output restoration now copies files in parallel, reducing a 61-second restore to 14 seconds on test hardware. Pull request #37085
- Published nx package no longer depends on Axios, using fetch and Undici instead for Nx Cloud requests. Pull request #36706
- Batch cache lookups now skip deferred tasks until their dependencies run, improving cache hit accuracy. Pull request #37259
- Nx reset now completes properly when Nx Cloud is installed, reporting all errors before exit. Pull request #37251
- Cache records with missing artifacts are now treated as cache misses instead of hits that restore nothing. Pull request #37111
Why it matters
This week's releases improve visibility into task selection with --explain, speed up linting through batching, and optimize cache performance with parallel restoration. Ultracache support via environment variable and vitest 5 compatibility expand framework coverage. These changes help teams understand their builds better and run them faster.
Changelog entry
- Feat(core): add --explain flag to show why each task is affected Release
- Feat(linter): add batched @nx/oxlint:lint executor Release
- Fix(core): skip batch cache lookups for deferred tasks until their deps run Pull request #37259
- Fix(core): let nx reset finish after the Nx Cloud cleanup step Pull request #37251
- Feat(core): turn ultracache on with NX_CLOUD_USE_ULTRACACHE Pull request #37242
- Fix(core): remove axios from the published nx package Pull request #36706
- Feat(vitest): support vitest 5 Pull request #37142
- Fix(core): copy cached outputs into the workspace in parallel Pull request #37085
- Fix(core): treat a cache record whose artifacts are missing as a miss Pull request #37111
- Fix(module-federation): skip undeclared default packages when sharing Pull request #37223
- Fix(angular-rspack): update piscina to address critical vulnerability Pull request #37252
- Fix(core): make glob escapes work the same on every platform Pull request #37215
23.3.0-beta.9: --explain shows why each task is affected. Batched oxlint executor. Parallel cache restoration cuts 61s to 14s. Ultracache via NX_CLOUD_USE_ULTRACACHE. Vitest 5 support.
Nx 23.3.0-beta.9 ships this week with new visibility and performance improvements. The --explain flag reveals why each task is selected, helping teams understand their task graphs. A batched oxlint executor consolidates lint runs into one process. Cache restoration now copies files in parallel, cutting restore time from 61 seconds to 14 seconds in tests. Ultracache hashing is now enabled via NX_CLOUD_USE_ULTRACACHE. Vitest 5 is now supported with automatic version selection.
Week of September 21, 2026
What shipped
- Released 23.3.0-beta.6 with sandbox target configuration for observed-IO opt-out, task hashing from Nx Cloud I/O snapshots, and ultracache replacing the sandbox target property. Release
- Migrated @nx/angular and @nx/react unit tests from Jest to Vitest, addressing the two slowest test suites in the repository. Pull request #37162
- Tasks can now be hashed from Nx Cloud I/O snapshots, improving cache hit rates when input declarations are wider or narrower than actual task reads. Pull request #37036
- Added opt-in support for selecting affected tasks instead of projects in Nx Cloud integration. Pull request #36825
- Replaced the sandbox target property with ultracache for configuring observed IO through a single mechanism instead of independent booleans. Pull request #37165
- Fixed glob syntax handling by consolidating special character lists across native glob code into a single parser-based source. Pull request #37169
- Narrowed workspace glob searches to literal directory prefixes, reducing file scans when searching inside single projects. Pull request #37126
- Migrated @nx/js unit tests from Jest to Vitest, moving 1055 tests to the new test runner. Pull request #37171
- Fixed @nx/angular-rspack and @nx/rspack production builds where class field closures were incorrectly shared across instances in minified code. Pull request #37066
- Fixed @nx/next to use out/ as the default output directory when output is set to export for static site generation. Pull request #34530
Why it matters
The repository completed a major migration of unit tests from Jest to Vitest across most packages, reducing overall test suite time. Core improvements to task hashing with Nx Cloud snapshots and glob performance optimizations enhance build caching and workspace responsiveness. Several bug fixes address production builds and Windows compatibility issues.
Changelog entry
- Feat(core): hash tasks from Nx Cloud I/O snapshots Release
- Feat(core): replace the sandbox target property with ultracache Pull request #37165
- Feat(core): add sandbox target configuration for observed-IO opt-out Pull request #36853
- Feat(core): opt in to selecting affected tasks instead of projects Pull request #36825
- Fix(core): read glob syntax from the glob parser in one place Pull request #37169
- Fix(core): narrow workspace glob searches to literal directory prefixes Pull request #37126
- Fix(angular-rspack): keep class field closures per instance in minified builds Pull request #37066
- Fix(nextjs): use out/ as default output dir when output is export Pull request #34530
- Fix(js): keep internal tsconfig project references on Windows Pull request #37058
- Fix(vite): defer nxViteTsPaths tsconfig parsing during graph construction Pull request #37182
- Fix(vitest): infer inputs for setup files outside the project root Pull request #36920
- Fix(repo): make e2e base workspace template failures clean and uncached Pull request #37194
23.3.0-beta.6 ships task hashing from Nx Cloud I/O snapshots for better cache hits, ultracache replacing sandbox config, and most unit tests now run on Vitest instead of Jest.
Nx 23.3.0-beta.6 brings significant improvements: task hashing from Nx Cloud I/O snapshots for smarter caching, ultracache consolidating observed IO configuration, and a near-complete migration of unit tests from Jest to Vitest. This week also includes critical fixes for production builds and workspace glob performance optimization.