Last release today
26 Aug 2026
Ships on a steady schedule
a new release about every 9 days
Nearly every release is documented
notes for 60 of the last 60 stable releases
2 versions withdrawn
withdrawn after publishing
3 years old
1896 releases · first in 2023
Release timeline
1896 releases since 2023Releases
- 22.1.0-canary.20251028-221ad5828 Oct 2025pre-release
Nothing published for this version
- 22.1.0-canary.20251027-29467da27 Oct 2025pre-release
Nothing published for this version
- 22.1.0-canary.20251024-7712d2a24 Oct 2025pre-release
Nothing published for this version
- 22.1.0-canary.20251023-59cf49523 Oct 2025pre-release
Nothing published for this version
- 22.1.0-canary.20251022-681825e22 Oct 2025pre-release
Nothing published for this version
- 22.1.0-beta.811 Nov 2025pre-release
Release notes
Open source →22.1.0-beta.8 (2025-11-11)
🚀 Features
- release: add resolveVersionPlans option to changelog CLI and API (#33435)
- vitest: split entrypoint into plugin, generators, executors (#33426)
- vitest: support vitest 4 (#33424)
🩹 Fixes
- core: clean up dead processes from metrics (#33437)
- core: resolve lockfile cache regression with keyMap state (#33448, #33256)
- js: update vitest generator import in library generator (#33430)
- js: improve typescript plugin performance (#33425, #33076)
- release: changelog renderer should render commit title with breaking changes (#33439)
- storybook: remove optional nature of migration (#33427)
- vitest: do not fail when cleanedAngularVersion is of incorrect type (#33436, #33347)
❤️ Thank You
- Colum Ferry @Coly010
- Coly010 @Coly010
- James Henry @JamesHenry
- Jason Jean @FrozenPandaz
- Leosvel Pérez Espinosa @leosvelperez
- 22.1.0-beta.710 Nov 2025pre-release
Release notes
Open source →22.1.0-beta.7 (2025-11-10)
🚀 Features
❤️ Thank You
- Colum Ferry @Coly010
- Coly010 @Coly010
- Leosvel Pérez Espinosa @leosvelperez
- leosvelperez @leosvelperez
- 22.1.0-beta.610 Nov 2025pre-release
Release notes
Open source →22.1.0-beta.6 (2025-11-08)
🚀 Features
- core: disable interactivity by default for run-one task outputs in tui (#33358)
- core: track system metrics and link plugins to workers when possible (#33411)
- gradle: use gitignore to determine dependant task output files (#33402)
- maven: add ci-workflow generator (#33346)
- maven: bump version from 0.0.8 to 0.0.9 (#33405)
- storybook: generate ai instructions for converting from CJS to ESM after migration (#33395)
- vite: add vitest 4 to peerDep range to prevent conflicts (#33394)
🩹 Fixes
- core: handle various directories when importing prettier (#33383)
- core: prevent args from being split by spaces when executing through nx wrapper (#33362)
- core: correctly identify local workspace dependencies on windows (#33408)
- maven: forward parameters through target dependencies (#33365)
- nx-dev: fix GitHub star button styling in mobile view (#33385)
- testing: use .cts config files for Jest 30+ to fix __dirname issues (#33349, #32236)
❤️ Thank You
- Claude
- Colum Ferry @Coly010
- Jack Hsu @jaysoo
- James Henry @JamesHenry
- Jason Jean @FrozenPandaz
- Leosvel Pérez Espinosa @leosvelperez
- Louie Weng @lourw
- MaxKless @MaxKless
- 22.1.0-beta.55 Nov 2025pre-release
Release notes
Open source →22.1.0-beta.5 (2025-11-05)
🚀 Features
🩹 Fixes
- module-federation: update @module-federation packages to fix Koa vulnerability (#33285, #33380)
- vite: ensure createVitest looks only from projectRoot (#33361)
❤️ Thank You
- Colum Ferry
- Eric Büttner
- Leosvel Pérez Espinosa
- 22.1.0-beta.43 Nov 2025pre-release
Release notes
Open source →22.1.0-beta.4 (2025-11-03)
🚀 Features
- core: enable tui by default on windows (#33314)
- core: batch hash tasks without custom hashers (#33327)
- core: add OSC 9;4 progress indicator support to TUI (#33325)
- maven: upgrade to version 0.0.8 with automated migration (#33315)
🩹 Fixes
- maven: set migration version to 22.1.0-beta.4 (#33345)
- vite: ensure atomizer does not consider projects outside the project root (#33344)
❤️ Thank You
- Colum Ferry @Coly010
- Craigory Coppola @AgentEnder
- Jason Jean @FrozenPandaz
- 22.1.0-beta.31 Nov 2025pre-release
Release notes
Open source →22.1.0-beta.3 (2025-11-01)
🚀 Features
- misc: remove CI investigation recommendations from agent rules (#33309)
- storybook: add support for storybook 10 (#33277, #33141)
🩹 Fixes
- core: also look in .nx installation when reading nx.json extends (#33306)
- maven: resolve maven dependencies from project roots (#33313)
- nextjs: ensure
eslint-config-nextmatches Next.js 14 and 15 versions (#30259, #30258, #30257) - vite: prevent race-condition when importing @vitejs/plugin-vue (#33307)
❤️ Thank You
- Colum Ferry @Coly010
- Eric Büttner
- Jack Hsu @jaysoo
- Jason Jean @FrozenPandaz
- MaxKless @MaxKless
- 22.1.0-beta.228 Oct 2025pre-release
Release notes
Open source →22.1.0-beta.2 (2025-10-28)
🚀 Features
- nx-dev: add downloadable resources page and React book blog post (160b4cce34)
- vite: add atomizer support for vitest (#33265)
🩹 Fixes
- core: turn v8 serializer off by default but fallback to it if json serialization fails (#33274, #4, #2, #3)
- core: make sure that gemini contextFileName is string before trying to resolve (#33280)
- docker: guard commitSha null in plugin interpolation (#33275)
- webpack: prevent errors when importing @nx/webpack before typescript is installed (#33251)
❤️ Thank You
- Craigory Coppola @AgentEnder
- Emilio Heinzmann @emiliosheinz
- Jack Hsu @jaysoo
- James Henry @JamesHenry
- Jason Jean @FrozenPandaz
- Juri Strumpflohner
- MaxKless @MaxKless
- 22.1.0-beta.127 Oct 2025pre-release
Release notes
Open source →22.1.0-beta.1 (2025-10-27)
🚀 Features
- gradle: add custom installation path to options (#33187)
🩹 Fixes
- core: fix swapped arguments when resolving catalog references from the filesystem (#33237)
- core: should find dockerfiles to suggest installing docker plugin (#33234)
- core: stream without prefixes showing tui (#33194, #32535)
- core: ensure daemon writes project graph cache to disk consistently (#33217)
- core: add accept header to http remote cache get (#33093, #33092)
- core: prevent undefined importer crash in pnpm lockfile parsing (#33223)
- core: split lockfile cache and other performance improvements (#33256)
- docker: handle undefined options when creating graph (#33235)
- docker: handle dockerfile at project root tag (#33236)
- misc: handle null exit codes from crashed child processes (#33163, #29204)
- vite: nxViteTsPaths supports local path aliases (#33241, #33231)
❤️ Thank You
- Claude
- Colum Ferry @Coly010
- Craigory Coppola @AgentEnder
- Hugo Burton @hugs7
- Jack Hsu @jaysoo
- Leosvel Pérez Espinosa @leosvelperez
- Louie Weng @lourw
- Sander Boelhouwers
- 22.1.0-beta.024 Oct 2025pre-release
Release notes
Open source →22.1.0-beta.0 (2025-10-23)
🚀 Features
- core: update rust (#33220)
- docker: support inferring additional args for targets with interpolation support (#32892)
- release: support {versionActionsVersion} in docker version scheme (#33178)
🩹 Fixes
- core: adding output error reason (#33159)
- core: continue execution when cloud client is unavailable (#33214)
- core: prevent error message containing
[object Object]for invalid {workspaceRoot} placement (#33203) - maven: add support for unbound goals in plugin targets (#33191)
- maven: use File.isAbsolute for cross-platform path detection (#33195)
- misc: add explanatory footer to ai agents prompts (#33182)
- node: migrate to koa 3.0.3 (#33208)
- nx-dev: update docs code blocks usage (#32998)
- nx-dev: add copy-docs back as a dep of serve (#33215)
❤️ Thank You
- Caleb Ukle
- Claude
- Colum Ferry @Coly010
- Craigory Coppola @AgentEnder
- Emilio Heinzmann @emiliosheinz
- Jack Hsu @jaysoo
- Jason Jean @FrozenPandaz
- MaxKless @MaxKless
- Zachary DeRose @ZackDeRose
- 22.0.417 Nov 2025
Release notes
Open source →22.0.4 (2025-11-17)
🚀 Features
- core: pull nx init from latest before executing (#33446)
- docker: add skipDefaultTag option to build target (#33477, #33506)
- maven: add option to prefix all maven targets (#33420)
🩹 Fixes
- core: resolve lockfile cache regression with keyMap state (#33448, #33256)
- core: optimize batch task scheduling to prevent redundant traversals (#33455, #33366)
- core: capture stderr in nx add command for better error messages (#33462)
- core: include require paths when resolving specified plugins (#33495)
- core: prevent hanging between command end and process exit (#33500)
- gradle: bump gradle migration version (#33479)
- graph: add nx:build-native dependency to typecheck target (#33428)
- js: improve typescript plugin performance (#33425, #33076)
- maven: skip maven plugin computation on vercel/netlify (#33486)
- misc: handle ERR_USE_AFTER_CLOSE gracefully in nx init and create-nx-workspace (#33469)
- release: changelog renderer should render commit title with breaking changes (#33439)
❤️ Thank You
- Claude
- Colum Ferry @Coly010
- Craigory Coppola @AgentEnder
- FrozenPandaz @FrozenPandaz
- Jack Hsu @jaysoo
- Jason Jean @FrozenPandaz
- Leosvel Pérez Espinosa @leosvelperez
- Louie Weng @lourw
- MaxKless @MaxKless
- 22.0.310 Nov 2025
Release notes
Open source →22.0.3 (2025-11-10)
🚀 Features
- core: batch hash tasks without custom hashers (#33327)
- core: add OSC 9;4 progress indicator support to TUI (#33325)
- core: disable interactivity by default for run-one task outputs in tui (#33358)
- gradle: use gitignore to determine dependant task output files (#33402)
- maven: upgrade to version 0.0.8 with automated migration (#33315)
- maven: add ci-workflow generator (#33346)
- maven: bump version from 0.0.8 to 0.0.9 (#33405)
- misc: remove CI investigation recommendations from agent rules (#33309)
- vite: add vitest 4 to peerDep range to prevent conflicts (#33394)
🩹 Fixes
- core: also look in .nx installation when reading nx.json extends (#33306)
- core: handle various directories when importing prettier (#33383)
- core: prevent args from being split by spaces when executing through nx wrapper (#33362)
- core: correctly identify local workspace dependencies on windows (#33408)
- maven: resolve maven dependencies from project roots (#33313)
- maven: set migration version to 22.1.0-beta.4 (#33345)
- maven: forward parameters through target dependencies (#33365)
- module-federation: update @module-federation packages to fix Koa vulnerability (#33285, #33380)
- nextjs: ensure
eslint-config-nextmatches Next.js 14 and 15 versions (#30259, #30258, #30257) - nx-dev: fix GitHub star button styling in mobile view (#33385)
- testing: use .cts config files for Jest 30+ to fix __dirname issues (#33349, #32236)
- vite: prevent race-condition when importing @vitejs/plugin-vue (#33307)
❤️ Thank You
- Claude
- Colum Ferry @Coly010
- Eric Büttner @tuffz
- Jack Hsu @jaysoo
- James Henry @JamesHenry
- Jason Jean @FrozenPandaz
- Leosvel Pérez Espinosa @leosvelperez
- Louie Weng @lourw
- MaxKless @MaxKless
- 22.0.228 Oct 2025
Release notes
Open source →22.0.2 (2025-10-28)
🚀 Features
- docker: support inferring additional args for targets with interpolation support (#32892)
- gradle: add custom installation path to options (#33187)
- nx-dev: add downloadable resources page and React book blog post (4b6009764a)
- release: support {versionActionsVersion} in docker version scheme (#33178)
🩹 Fixes
- core: continue execution when cloud client is unavailable (#33214)
- core: prevent error message containing
[object Object]for invalid {workspaceRoot} placement (#33203) - core: fix swapped arguments when resolving catalog references from the filesystem (#33237)
- core: should find dockerfiles to suggest installing docker plugin (#33234)
- core: stream without prefixes showing tui (#33194, #32535)
- core: add accept header to http remote cache get (#33093, #33092)
- core: prevent undefined importer crash in pnpm lockfile parsing (#33223)
- core: split lockfile cache and other performance improvements (#33256)
- core: ensure daemon writes project graph cache to disk consistently (#33217)
- core: turn v8 serializer off by default but fallback to it if json serialization fails (#33274, #4, #2, #3)
- core: make sure that gemini contextFileName is string before trying to resolve (#33280)
- docker: handle undefined options when creating graph (#33235)
- docker: handle dockerfile at project root tag (#33236)
- docker: guard commitSha null in plugin interpolation (#33275)
- maven: use File.isAbsolute for cross-platform path detection (#33195)
- misc: add explanatory footer to ai agents prompts (#33182)
- misc: handle null exit codes from crashed child processes (#33163, #29204)
- node: migrate to koa 3.0.3 (#33208)
- nx-dev: update docs code blocks usage (#32998)
- nx-dev: add copy-docs back as a dep of serve (#33215)
- vite: nxViteTsPaths supports local path aliases (#33241, #33231)
- webpack: prevent errors when importing @nx/webpack before typescript is installed (#33251)
❤️ Thank You
- Caleb Ukle
- Claude
- Colum Ferry @Coly010
- Craigory Coppola @AgentEnder
- Emilio Heinzmann @emiliosheinz
- Hugo Burton @hugs7
- Jack Hsu @jaysoo
- Jason Jean @FrozenPandaz
- Juri Strumpflohner
- Leosvel Pérez Espinosa @leosvelperez
- Louie Weng @lourw
- MaxKless @MaxKless
- Sander Boelhouwers
- 22.0.122 Oct 2025
Release notes
Open source →22.0.1 (2025-10-22)
🩹 Fixes
- core: adding output error reason (#33159)
- maven: add support for unbound goals in plugin targets (#33191)
❤️ Thank You
- Jason Jean @FrozenPandaz
- Zachary DeRose @ZackDeRose
- 22.0.022 Oct 2025
Release notes
Open source →22.0.0 (2025-10-22)
🚀 Features
- ⚠️ bundling: change default useLegacyTypescriptPlugin to false for v22 (#32754)
- bundling: add excludeFromExternal option to esbuild executor (#32980)
- core: prompt for ai agent files on nx init (#32889)
- ⚠️ core: remove
NX_DISABLE_DBenvironment variable (#32887) - ⚠️ core: remove CreateNodes v1 types for Nx 22 (#32951)
- core: add --check=all flag to configure-ai-agents (#32968)
- core: expose registerProjectGraphRecomputationListener from daemon client (#33005)
- core: add support for pnpm catalogs (#32978, #30035, #29772)
- core: enhance spinner handling and add spinner to inferred conversion (#33031)
- devkit: bump compatibility to Nx 21 - 23 (6b86c33c30)
- dotnet: add initial draft of .NET plugin (#32869)
- ⚠️ js: remove the experimental and deprecated inlining feature from the
tscandswcexecutors (#32783) - maven: introduce maven plugin (#32947)
- ⚠️ misc: remove deprecated
decorate-cliscript and stop sorting tsconfig paths by default (#32781) - misc: remove migrations prior to v20 (#32904)
- module-federation: support TS Soln and Package Manager workspaces paradigms (#33056)
- nest: ensure dependencies are added to project's package.json #32548 (#32986, #32548)
- nx-cloud: update description on nx login and logout (#31344)
- nx-dev: add v22 to version picker (#33110)
- react: remove support for non-isolated webpack config in
ponentTestingPreset(#32787) - react: keep deprecated @nx/react/bundle-rollup module since there is not a replacement when using @nx/rollup:rollup executor (#32821)
- ⚠️ release: match nx affected behavior to determine relevant conventional commits (#32915)
- ⚠️ release: remove deprecated legacy versioning (#32888)
- ⚠️ release: switch defaults for fixed release group tag pattern, preserve matching dependency ranges and strictPreid (#32878)
- ⚠️ release: set preserveMatchingDependencyRanges to true by default (#32983)
- release: add releaseTagPatternPreferDockerVersion to specify version to use for git tag #32900 (#32972, #32900)
- ⚠️ release: release graph aware filtering, updateDependents can now be "always" (#32971)
- ⚠️ release: set updateDependents to always by default (#33029)
- ⚠️ release: refactor releaseTag* properties to a releaseTag object (#33020)
- release: allow changelog.renderer to be set to an implementation directly (#33095)
- release: new replaceExistingContents CLI and API option for changelog (#33096)
- release: allow ignoring nx.json release config with ReleaseClient (#33099)
- release: allow conventional commit style aliases in version plan release types (#33167)
- ⚠️ rspack: remove application generator in favour of framework-specific options (#32755)
- ⚠️ rspack: remove deprecated deleteOutputPath and sassImplementation options (#32756)
- storybook: add watch-deps and build-deps targets (deb10f2818)
- vite: add buildable libs support for vitest (#32973)
- vue: migrate @vitejs/plugin-vue to 6.0.1 (#33097)
- ⚠️ webpack: remove deprecated deleteOutputPath and sassImplementation options (#32828)
🩹 Fixes
- angular: improve message for unsupported typescript project references (#33148)
- angular: ensure ngpackagr tsconfig options set correctly based on version #33081 (#33150, #33081)
- angular-rspack: do not parse json with babel #32690 (#32966, #32690)
- angular-rspack: ensure root node_modules included when resolving packages (#33144, #33026)
- angular-rspack: bubble errors correctly (#33183)
- bundling: ensure tsconfig options are respected with rollup-typescript-plugin (#32816)
- bundling: postcss-cli-resources should handle relative deploy url #32714 (#32762, #32714)
- ⚠️ core: remove deprecated simpleName option from library generators (#32716)
- core: improve provenance error with custom registry information (#32903)
- core: optimize task hashing with BFS and performance logging (#32911)
- core: tweak configure-ai-agents prompt (#32914)
- core: ensure nx is published with the correct dependency version for the native packages (#32928, #32898)
- core: upgrade axios to 1.12.0 to address CVE-2025-58754 (#32712)
- core: repair repo root on setupAiAgents in nx init (#32984)
- core: remove requirement to be in a package manager workspace (#32992)
- core: remove duplicated "Running" string from tui title (#32991)
- core: display bottom corner indicator of tui in progress section correctly (#32985)
- core: temporarily disable tui for run-one (#33048)
- core: ensure --help works properly with infix notation (#32662)
- core: improve db connection initialization and error messages (#33054, #28640, #30856, #32894)
- core: prioritize in-progress tasks section visibility in tui (#33053)
- core: enhance tui summary output to fix misc issues (#33057)
- core: format catalog definition files when appropriate in
nx migrate(#33105) - core: allow prerelease versions of nx to be used with devkit (#33123)
- core: restore migrations used by
nx repair(#33124) - core: avoid changing existing project name if a project.json file is added to a project (#33114)
- core: do not remove wal files manually for existing databases (#33143)
- core: do not print flaky tasks guidance when nx cloud is already enabled (#33149)
- core: add wrappers for start and stop agent nx-cloud commands (#33140)
- core: revert changes to the db connection initialization (#33156)
- core: store reason when marking daemon as disabled (#33172)
- dotnet: fixup various issues + missing functionality (#33132)
- graph: prevent content from overflowing in the PDV component (#33120)
- js: temporarily hash all external dependencies for tasks inferred by the
@nx/js/typescriptplugin (#32912) - js: ensure node execute completes before exit (#32629, #32385, #32356)
- linter: install correct deps in eslint convert to flat config generator (#33078)
- ⚠️ misc: don't set legacy-peer-deps by default (#33014, #22066, #29537)
- module-federation: ensure angular rspack module federation supports live reload (#33137)
- nextjs: remove whitespace for newly generated server component (1d687c4994)
- nextjs: update entrypoints for buildable library with vite to include server entry #31457 (#32977, #31457)
- nx-cloud: update broken documentation links to AI features (0149fac877)
- nx-dev: improve default zoom level of graph nodes in docs (#32910)
- nx-dev: provide message to check previous docs w/ empty migrations (#32919)
- nx-dev: watch for theme changes for project/task graph components (#32885)
- nx-dev: update credit pricing link to new docs page (#32899)
- nx-dev: update nextjs internal-link-checker to include astro urls (#33045)
- nx-dev: respect NX_DEV_URL in sitemap checker (#33058)
- nx-dev: handle null github data (#33061)
- nx-dev: add docker to build-tools tech section (#33164)
- react: dynamic module federation should not initialize remoteUrlDefinitions to empty object (#33059, #27927, #33055, #27793, #27842)
- release: ensure schema for release.groups is correct (#33007)
- release: skip filtered out groups when processing (#33044)
- ⚠️ release: ensure multilines in breaking changes are rendered by changelog renderer (#33070, #33014)
- release: replace local dependency protocols of unchanged dependencies #30995 (#33151, #30995)
- ⚠️ release: better respect version plan file contents for changelog entries (#33166)
- release: breaking change contents extraction (#33184)
- remix: @nx/remix/package.json export typo fixed #32810 (#32940, #32810)
- remix: ensure supported version of vite is used (#33089)
- repo: fix pr releases to not depend on a broken range (#32993)
- testing: show warning instead of error when no blob outputs found during merge (#33022)
- vite: ensure tsconfig file is resolved from workspaceRoot #31987 (#32990, #31987)
- vite: enable build watch mode by default for preview (#31604, #31623)
- vite: add logic to prevent overwriting generated package.json (#30705, #30312)
⚠️ Breaking Changes
-
release: config.conventionalCommitsConfig for
DefaultChangelogRendereris no longer nullable. (#33166) -
misc: The
--legacy-peer-depsbehavior is no longer forced. (#33014, #22066, #29537)If you need it, configure your package manager to enforce it.
-
release: This is a breaking change in the preferred configuration structure. Existing configurations will continue to work through the migration period, but users should update to the new nested format. (#33020)
-
release: Users who relied on the previous 'auto' behavior can (#33029)
explicitly set
updateDependents: 'auto'in their nx.json:{ "release": { "version": { "updateDependents": "auto -
release: The signature of
init()onVersionActionshas (#32971)changed, it no longer accepts a second argument. Validation of the manifest files, if any, now takes place via a separate method (
validate()) call after construction of the newReleaseGraph. For the most part, users do not need customVersionActionsso only a small percentage of consumers should be impacted. Fixes https://github.com/nrwl/nx/issues/31273 -
⚠️ core: remove CreateNodes v1 types for Nx 22 (#32951)
-
⚠️ release: set preserveMatchingDependencyRanges to true by default (#32983)
-
⚠️ release: switch defaults for fixed release group tag pattern, preserve matching dependency ranges and strictPreid (#32878)
-
⚠️ release: remove deprecated legacy versioning (#32888)
-
release: More files are now being used to determine relevant (#32915)
commits, meaning there is higher chance for projects to receive version bumps
-
misc: The long-deprecated
decorate-cliscript has been (#32781)removed. BREAKING CHANGE: The
nx formatcommand and generators no longer default to sorting TypeScript path mappings. To keep the previous behavior, pass the--sort-root-tsconfig-pathsflag to the command or setNX_FORMAT_SORT_TSCONFIG_PATHS=true. -
⚠️ core: remove
NX_DISABLE_DBenvironment variable (#32887) -
js: The experimental inlining feature in the
@nx/js:tsc(#32783)and
@nx/js:swcexecutors was removed. A migration will remove the related options (externalandexternalBuildTargets). Still, if you use or rely on the feature, you need to make your dependencies buildable or use a different build tool with bundling capabilities. -
⚠️ webpack: remove deprecated deleteOutputPath and sassImplementation options (#32828)
-
⚠️ rspack: remove deprecated deleteOutputPath and sassImplementation options (#32756)
-
⚠️ rspack: remove application generator in favour of framework-specific options (#32755)
-
⚠️ bundling: change default useLegacyTypescriptPlugin to false for v22 (#32754)
-
core: simpleName option is no longer supported in library generators (#32716)
❤️ Thank You
- Andrew Ovens @aovens-quantifi
- Caleb Ukle
- Claude
- Colum Ferry @Coly010
- Craigory Coppola @AgentEnder
- David Scourfield @daiscog
- FrozenPandaz @FrozenPandaz
- Jack Hsu @jaysoo
- James Henry @JamesHenry
- Jason Jean @FrozenPandaz
- Juri @juristr
- Leosvel Pérez Espinosa @leosvelperez
- Louie Weng @lourw
- MaxKless @MaxKless
- Mike Cebrian
- Miroslav Jonaš @meeroslav
- Mischa Fischer
- Nikola Kalinov
- Shai Reznik @shairez
- Terry Mun-Andersen @terrymun
- Vijay Ramakrishnan
- Zoran Kokeza
- 22.0.0-rc.021 Oct 2025pre-release
Release notes
Open source →22.0.0-rc.0 (2025-10-21)
🩹 Fixes
- angular: improve message for unsupported typescript project references (#33148)
- angular: ensure ngpackagr tsconfig options set correctly based on version #33081 (#33150, #33081)
- core: do not remove wal files manually for existing databases (#33143)
- core: do not print flaky tasks guidance when nx cloud is already enabled (#33149)
- core: add wrappers for start and stop agent nx-cloud commands (#33140)
- core: revert changes to the db connection initialization (#33156)
- release: replace local dependency protocols of unchanged dependencies #30995 (#33151, #30995)
❤️ Thank You
- Colum Ferry @Coly010
- David Scourfield @daiscog
- Leosvel Pérez Espinosa @leosvelperez
- Miroslav Jonaš @meeroslav
- 22.0.0-canary.20251021-693444521 Oct 2025pre-release
Nothing published for this version
- 22.0.0-canary.20251018-6549d2a18 Oct 2025pre-release
Nothing published for this version
- 22.0.0-canary.20251016-849f35616 Oct 2025pre-release
Nothing published for this version
- 22.0.0-canary.20251015-f37c13b15 Oct 2025pre-release
Nothing published for this version
- 22.0.0-canary.20251014-82acc8414 Oct 2025pre-release
Nothing published for this version
- 22.0.0-canary.20251013-14efeff13 Oct 2025pre-release
Nothing published for this version
- 22.0.0-canary.20251010-bfaa91b10 Oct 2025pre-release
Nothing published for this version
- 22.0.0-canary.20251008-05ab5168 Oct 2025pre-release
Nothing published for this version
- 22.0.0-canary.20251007-01d5f3f7 Oct 2025pre-release
Nothing published for this version
- 22.0.0-canary.20251006-738b06b6 Oct 2025pre-release
Nothing published for this version
- 22.0.0-canary.20251006-0149fac6 Oct 2025pre-release
Nothing published for this version
- 22.0.0-canary.20251002-3bac1242 Oct 2025pre-release
Nothing published for this version
- 22.0.0-canary.20251001-e28a97a1 Oct 2025pre-release
Nothing published for this version
- 22.0.0-beta.921 Oct 2025pre-release
Release notes
Open source →22.0.0-beta.9 (2025-10-20)
🚀 Features
- core: enhance spinner handling and add spinner to inferred conversion (#33031)
- maven: introduce maven plugin (#32947)
🩹 Fixes
- angular-rspack: ensure root node_modules included when resolving packages (#33144, #33026)
- module-federation: ensure angular rspack module federation supports live reload (#33137)
❤️ Thank You
- Caleb Ukle
- Claude
- Colum Ferry @Coly010
- Craigory Coppola @AgentEnder
- Jason Jean @FrozenPandaz
- Miroslav Jonaš @meeroslav
- 22.0.0-beta.819 Oct 2025pre-release
Release notes
Open source →22.0.0-beta.8 (2025-10-19)
🚀 Features
- dotnet: add initial draft of .NET plugin (#32869)
- nx-dev: add v22 to version picker (#33110)
- storybook: add watch-deps and build-deps targets (deb10f2818)
- vue: migrate @vitejs/plugin-vue to 6.0.1 (#33097)
🩹 Fixes
- core: enhance tui summary output to fix misc issues (#33057)
- core: format catalog definition files when appropriate in
nx migrate(#33105) - core: allow prerelease versions of nx to be used with devkit (#33123)
- core: restore migrations used by
nx repair(#33124) - core: avoid changing existing project name if a project.json file is added to a project (#33114)
- graph: prevent content from overflowing in the PDV component (#33120)
- linter: install correct deps in eslint convert to flat config generator (#33078)
❤️ Thank You
- Claude
- Colum Ferry @Coly010
- Craigory Coppola @AgentEnder
- Jack Hsu @jaysoo
- Juri @juristr
- Leosvel Pérez Espinosa @leosvelperez
- Vijay Ramakrishnan
- 22.0.0-beta.716 Oct 2025pre-release
Release notes
Open source →22.0.0-beta.7 (2025-10-16)
🚀 Features
- release: allow changelog.renderer to be set to an implementation directly (#33095)
- release: new replaceExistingContents CLI and API option for changelog (#33096)
- release: allow ignoring nx.json release config with ReleaseClient (#33099)
🩹 Fixes
- core: improve db connection initialization and error messages (#33054, #28640, #30856, #32894)
- core: prioritize in-progress tasks section visibility in tui (#33053)
- remix: ensure supported version of vite is used (#33089)
❤️ Thank You
- Colum Ferry @Coly010
- James Henry @JamesHenry
- Leosvel Pérez Espinosa @leosvelperez
- 22.0.0-beta.615 Oct 2025pre-release
Release notes
Open source →22.0.0-beta.6 (2025-10-15)
🚀 Features
❤️ Thank You
- Leosvel Pérez Espinosa @leosvelperez
- 22.0.0-beta.515 Oct 2025pre-release
Release notes
Open source →22.0.0-beta.5 (2025-10-15)
🚀 Features
- core: expose registerProjectGraphRecomputationListener from daemon client (#33005)
- module-federation: support TS Soln and Package Manager workspaces paradigms (#33056)
- ⚠️ release: set updateDependents to always by default (#33029)
- ⚠️ release: refactor releaseTag* properties to a releaseTag object (#33020)
🩹 Fixes
- core: display bottom corner indicator of tui in progress section correctly (#32985)
- core: temporarily disable tui for run-one (#33048)
- core: ensure --help works properly with infix notation (#32662)
- ⚠️ misc: don't set legacy-peer-deps by default (#33014, #22066, #29537)
- nx-dev: update nextjs internal-link-checker to include astro urls (#33045)
- nx-dev: respect NX_DEV_URL in sitemap checker (#33058)
- nx-dev: handle null github data (#33061)
- react: dynamic module federation should not initialize remoteUrlDefinitions to empty object (#33059, #27927, #33055, #27793, #27842)
- release: skip filtered out groups when processing (#33044)
- ⚠️ release: ensure multilines in breaking changes are rendered by changelog renderer (#33070, #33014)
⚠️ Breaking Changes
- release: The --legacy-peer-deps behavior is no longer forced.
- misc: The
--legacy-peer-depsbehavior is no longer forced. - release: This is a breaking change in the preferred configuration structure. Existing configurations will continue to work through the migration period, but users should update to the new nested format.
- release: Users who relied on the previous 'auto' behavior can
❤️ Thank You
- Caleb Ukle
- Claude
- Colum Ferry @Coly010
- Craigory Coppola @AgentEnder
- James Henry @JamesHenry
- Leosvel Pérez Espinosa @leosvelperez
- MaxKless @MaxKless
- 22.0.0-beta.48 Oct 2025pre-release
Release notes
Open source →22.0.0-beta.4 (2025-10-08)
🚀 Features
- core: add --check=all flag to configure-ai-agents (#32968)
- nest: ensure dependencies are added to project's package.json #32548 (#32986, #32548)
- nx-cloud: update description on nx login and logout (#31344)
- release: add releaseTagPatternPreferDockerVersion to specify version to use for git tag #32900 (#32972, #32900)
- ⚠️ release: release graph aware filtering, updateDependents can now be "always" (#32971)
- vite: add buildable libs support for vitest (#32973)
🩹 Fixes
- core: remove duplicated "Running" string from tui title (#32991)
- release: ensure schema for release.groups is correct (#33007)
- testing: show warning instead of error when no blob outputs found during merge (#33022)
- vite: enable build watch mode by default for preview (#31604, #31623)
⚠️ Breaking Changes
- release: The signature of
init()onVersionActionshas
❤️ Thank You
- Colum Ferry @Coly010
- Jack Hsu @jaysoo
- James Henry @JamesHenry
- Leosvel Pérez Espinosa @leosvelperez
- Louie Weng @lourw
- MaxKless @MaxKless
- Nikola Kalinov
- Shai Reznik @shairez
- 22.0.0-beta.37 Oct 2025pre-release
Release notes
Open source →22.0.0-beta.3 (2025-10-07)
🚀 Features
- bundling: add excludeFromExternal option to esbuild executor (#32980)
- ⚠️ core: remove CreateNodes v1 types for Nx 22 (#32951)
- ⚠️ release: match nx affected behavior to determine relevant conventional commits (#32915)
- ⚠️ release: remove deprecated legacy versioning (#32888)
- ⚠️ release: switch defaults for fixed release group tag pattern, preserve matching dependency ranges and strictPreid (#32878)
- ⚠️ release: set preserveMatchingDependencyRanges to true by default (#32983)
🩹 Fixes
- angular-rspack: do not parse json with babel #32690 (#32966, #32690)
- bundling: postcss-cli-resources should handle relative deploy url #32714 (#32762, #32714)
- core: upgrade axios to 1.12.0 to address CVE-2025-58754 (#32712)
- core: repair repo root on setupAiAgents in nx init (#32984)
- core: remove requirement to be in a package manager workspace (#32992)
- nextjs: remove whitespace for newly generated server component (1d687c4994)
- nextjs: update entrypoints for buildable library with vite to include server entry #31457 (#32977, #31457)
- nx-cloud: update broken documentation links to AI features (0149fac877)
- remix: @nx/remix/package.json export typo fixed #32810 (#32940, #32810)
- repo: fix pr releases to not depend on a broken range (#32993)
- vite: ensure tsconfig file is resolved from workspaceRoot #31987 (#32990, #31987)
⚠️ Breaking Changes
- ⚠️ core: remove CreateNodes v1 types for Nx 22 (#32951)
- ⚠️ release: set preserveMatchingDependencyRanges to true by default (#32983)
- ⚠️ release: switch defaults for fixed release group tag pattern, preserve matching dependency ranges and strictPreid (#32878)
- ⚠️ release: remove deprecated legacy versioning (#32888)
- release: More files are now being used to determine relevant
❤️ Thank You
- Claude
- Colum Ferry @Coly010
- Craigory Coppola @AgentEnder
- Jack Hsu @jaysoo
- Jason Jean @FrozenPandaz
- Juri @juristr
- MaxKless @MaxKless
- Mischa Fischer
- Terry Mun-Andersen @terrymun
- Zoran Kokeza
- 22.0.0-beta.22 Oct 2025pre-release
Release notes
Open source →22.0.0-beta.2 (2025-10-02)
🩹 Fixes
- core: tweak configure-ai-agents prompt (#32914)
- core: ensure nx is published with the correct dependency version for the native packages (#32928, #32898)
❤️ Thank You
- Juri @juristr
- Leosvel Pérez Espinosa @leosvelperez
- MaxKless @MaxKless
- 22.0.0-beta.11 Oct 2025pre-release
Release notes
Open source →22.0.0-beta.1 (2025-10-27)
🚀 Features
- bundling: add excludeFromExternal option to esbuild executor (#32980)
- ⚠️ core: remove CreateNodes v1 types for Nx 22 (#32951)
- core: add --check=all flag to configure-ai-agents (#32968)
- core: expose registerProjectGraphRecomputationListener from daemon client (#33005)
- core: add support for pnpm catalogs (#32978, #30035, #29772)
- core: enhance spinner handling and add spinner to inferred conversion (#33031)
- core: update rust (#33220)
- docker: support inferring additional args for targets with interpolation support (#32892)
- dotnet: add initial draft of .NET plugin (#32869)
- gradle: add custom installation path to options (#33187)
- maven: introduce maven plugin (#32947)
- ⚠️ misc: remove deprecated
decorate-cliscript and stop sorting tsconfig paths by default (#32781) - misc: remove migrations prior to v20 (#32904)
- module-federation: support TS Soln and Package Manager workspaces paradigms (#33056)
- nest: ensure dependencies are added to project's package.json #32548 (#32986, #32548)
- nx-cloud: update description on nx login and logout (#31344)
- nx-dev: add v22 to version picker (#33110)
- ⚠️ release: match nx affected behavior to determine relevant conventional commits (#32915)
- ⚠️ release: remove deprecated legacy versioning (#32888)
- ⚠️ release: switch defaults for fixed release group tag pattern, preserve matching dependency ranges and strictPreid (#32878)
- ⚠️ release: set preserveMatchingDependencyRanges to true by default (#32983)
- release: add releaseTagPatternPreferDockerVersion to specify version to use for git tag #32900 (#32972, #32900)
- ⚠️ release: release graph aware filtering, updateDependents can now be "always" (#32971)
- ⚠️ release: set updateDependents to always by default (#33029)
- ⚠️ release: refactor releaseTag* properties to a releaseTag object (#33020)
- release: allow changelog.renderer to be set to an implementation directly (#33095)
- release: new replaceExistingContents CLI and API option for changelog (#33096)
- release: allow ignoring nx.json release config with ReleaseClient (#33099)
- release: allow conventional commit style aliases in version plan release types (#33167)
- release: support {versionActionsVersion} in docker version scheme (#33178)
- storybook: add watch-deps and build-deps targets (deb10f2818)
- vite: add buildable libs support for vitest (#32973)
- vue: migrate @vitejs/plugin-vue to 6.0.1 (#33097)
🩹 Fixes
- angular: improve message for unsupported typescript project references (#33148)
- angular: ensure ngpackagr tsconfig options set correctly based on version #33081 (#33150, #33081)
- angular-rspack: do not parse json with babel #32690 (#32966, #32690)
- angular-rspack: ensure root node_modules included when resolving packages (#33144, #33026)
- angular-rspack: bubble errors correctly (#33183)
- bundling: postcss-cli-resources should handle relative deploy url #32714 (#32762, #32714)
- core: improve provenance error with custom registry information (#32903)
- core: optimize task hashing with BFS and performance logging (#32911)
- core: tweak configure-ai-agents prompt (#32914)
- core: ensure nx is published with the correct dependency version for the native packages (#32928, #32898)
- core: upgrade axios to 1.12.0 to address CVE-2025-58754 (#32712)
- core: repair repo root on setupAiAgents in nx init (#32984)
- core: remove requirement to be in a package manager workspace (#32992)
- core: remove duplicated "Running" string from tui title (#32991)
- core: display bottom corner indicator of tui in progress section correctly (#32985)
- core: temporarily disable tui for run-one (#33048)
- core: ensure --help works properly with infix notation (#32662)
- core: improve db connection initialization and error messages (#33054, #28640, #30856, #32894)
- core: prioritize in-progress tasks section visibility in tui (#33053)
- core: enhance tui summary output to fix misc issues (#33057)
- core: format catalog definition files when appropriate in
nx migrate(#33105) - core: allow prerelease versions of nx to be used with devkit (#33123)
- core: restore migrations used by
nx repair(#33124) - core: avoid changing existing project name if a project.json file is added to a project (#33114)
- core: do not remove wal files manually for existing databases (#33143)
- core: do not print flaky tasks guidance when nx cloud is already enabled (#33149)
- core: add wrappers for start and stop agent nx-cloud commands (#33140)
- core: revert changes to the db connection initialization (#33156)
- core: store reason when marking daemon as disabled (#33172)
- core: adding output error reason (#33159)
- core: continue execution when cloud client is unavailable (#33214)
- core: prevent error message containing
[object Object]for invalid {workspaceRoot} placement (#33203) - core: fix swapped arguments when resolving catalog references from the filesystem (#33237)
- core: should find dockerfiles to suggest installing docker plugin (#33234)
- core: stream without prefixes showing tui (#33194, #32535)
- core: ensure daemon writes project graph cache to disk consistently (#33217)
- core: add accept header to http remote cache get (#33093, #33092)
- core: prevent undefined importer crash in pnpm lockfile parsing (#33223)
- core: split lockfile cache and other performance improvements (#33256)
- docker: handle undefined options when creating graph (#33235)
- docker: handle dockerfile at project root tag (#33236)
- dotnet: fixup various issues + missing functionality (#33132)
- graph: prevent content from overflowing in the PDV component (#33120)
- js: temporarily hash all external dependencies for tasks inferred by the
@nx/js/typescriptplugin (#32912) - js: ensure node execute completes before exit (#32629, #32385, #32356)
- linter: install correct deps in eslint convert to flat config generator (#33078)
- maven: add support for unbound goals in plugin targets (#33191)
- maven: use File.isAbsolute for cross-platform path detection (#33195)
- ⚠️ misc: don't set legacy-peer-deps by default (#33014, #22066, #29537)
- misc: add explanatory footer to ai agents prompts (#33182)
- misc: handle null exit codes from crashed child processes (#33163, #29204)
- module-federation: ensure angular rspack module federation supports live reload (#33137)
- nextjs: remove whitespace for newly generated server component (1d687c4994)
- nextjs: update entrypoints for buildable library with vite to include server entry #31457 (#32977, #31457)
- node: migrate to koa 3.0.3 (#33208)
- nx-cloud: update broken documentation links to AI features (0149fac877)
- nx-dev: improve default zoom level of graph nodes in docs (#32910)
- nx-dev: provide message to check previous docs w/ empty migrations (#32919)
- nx-dev: watch for theme changes for project/task graph components (#32885)
- nx-dev: update credit pricing link to new docs page (#32899)
- nx-dev: update nextjs internal-link-checker to include astro urls (#33045)
- nx-dev: respect NX_DEV_URL in sitemap checker (#33058)
- nx-dev: handle null github data (#33061)
- nx-dev: add docker to build-tools tech section (#33164)
- nx-dev: update docs code blocks usage (#32998)
- nx-dev: add copy-docs back as a dep of serve (#33215)
- react: dynamic module federation should not initialize remoteUrlDefinitions to empty object (#33059, #27927, #33055, #27793, #27842)
- release: ensure schema for release.groups is correct (#33007)
- release: skip filtered out groups when processing (#33044)
- ⚠️ release: ensure multilines in breaking changes are rendered by changelog renderer (#33070, #33014)
- release: replace local dependency protocols of unchanged dependencies #30995 (#33151, #30995)
- ⚠️ release: better respect version plan file contents for changelog entries (#33166)
- release: breaking change contents extraction (#33184)
- remix: @nx/remix/package.json export typo fixed #32810 (#32940, #32810)
- remix: ensure supported version of vite is used (#33089)
- repo: fix pr releases to not depend on a broken range (#32993)
- testing: show warning instead of error when no blob outputs found during merge (#33022)
- vite: ensure tsconfig file is resolved from workspaceRoot #31987 (#32990, #31987)
- vite: enable build watch mode by default for preview (#31604, #31623)
- vite: add logic to prevent overwriting generated package.json (#30705, #30312)
- vite: nxViteTsPaths supports local path aliases (#33241, #33231)
⚠️ Breaking Changes
-
release: config.conventionalCommitsConfig for
DefaultChangelogRendereris no longer nullable. (#33166) -
release: The --legacy-peer-deps behavior is no longer forced. (#33070, #33014)
If you need it, configure your package manager to enforce it. Would only render the first line, and without the PR reference.
Expected Behavior
The changelog renderer should:
- Capture and render all lines of a breaking change explanation, not just the first line
- Include PR/commit references in the breaking change section (e.g.,
([#33014](url))) - Properly indent multi-line and multi-paragraph breaking changes for better readability
- Maintain consistent formatting between the feature/fix entry and its corresponding breaking change entry Example of correct output:
### ⚠️ Breaking Changes - **misc:** The `--legacy-peer-deps` behavior is no longer forced. ([#33014](url)) If you need it, configure your package manager to enforce it. -
misc: The
--legacy-peer-depsbehavior is no longer forced. (#33014, #22066, #29537)If you need it, configure your package manager to enforce it.
-
release: This is a breaking change in the preferred configuration structure. Existing configurations will continue to work through the migration period, but users should update to the new nested format. (#33020)
-
release: Users who relied on the previous 'auto' behavior can (#33029)
explicitly set
updateDependents: 'auto'in their nx.json:{ "release": { "version": { "updateDependents": "auto -
release: The signature of
init()onVersionActionshas (#32971)changed, it no longer accepts a second argument. Validation of the manifest files, if any, now takes place via a separate method (
validate()) call after construction of the newReleaseGraph. For the most part, users do not need customVersionActionsso only a small percentage of consumers should be impacted. Fixes https://github.com/nrwl/nx/issues/31273 -
⚠️ core: remove CreateNodes v1 types for Nx 22 (#32951)
-
⚠️ release: set preserveMatchingDependencyRanges to true by default (#32983)
-
⚠️ release: switch defaults for fixed release group tag pattern, preserve matching dependency ranges and strictPreid (#32878)
-
⚠️ release: remove deprecated legacy versioning (#32888)
-
release: More files are now being used to determine relevant (#32915)
commits, meaning there is higher chance for projects to receive version bumps
-
misc: The long-deprecated
decorate-cliscript has been (#32781)removed. BREAKING CHANGE: The
nx formatcommand and generators no longer default to sorting TypeScript path mappings. To keep the previous behavior, pass the--sort-root-tsconfig-pathsflag to the command or setNX_FORMAT_SORT_TSCONFIG_PATHS=true.
❤️ Thank You
- Andrew Ovens @aovens-quantifi
- Caleb Ukle
- Claude
- Colum Ferry @Coly010
- Craigory Coppola @AgentEnder
- David Scourfield @daiscog
- Emilio Heinzmann @emiliosheinz
- Hugo Burton @hugs7
- Jack Hsu @jaysoo
- James Henry @JamesHenry
- Jason Jean @FrozenPandaz
- Juri @juristr
- Leosvel Pérez Espinosa @leosvelperez
- Louie Weng @lourw
- MaxKless @MaxKless
- Mike Cebrian
- Miroslav Jonaš @meeroslav
- Mischa Fischer
- Nikola Kalinov
- Sander Boelhouwers
- Shai Reznik @shairez
- Terry Mun-Andersen @terrymun
- Vijay Ramakrishnan
- Zachary DeRose @ZackDeRose
- Zoran Kokeza
- 22.0.0-beta.01 Oct 2025pre-release
Release notes
Open source →22.0.0-beta.0 (2025-10-01)
🚀 Features
- ⚠️ bundling: change default useLegacyTypescriptPlugin to false for v22 (#32754)
- core: prompt for ai agent files on nx init (#32889)
- ⚠️ core: remove
NX_DISABLE_DBenvironment variable (#32887) - devkit: bump compatibility to Nx 21 - 23 (6b86c33c30)
- ⚠️ js: remove the experimental and deprecated inlining feature from the
tscandswcexecutors (#32783) - react: remove support for non-isolated webpack config in
ponentTestingPreset(#32787) - react: keep deprecated @nx/react/bundle-rollup module since there is not a replacement when using @nx/rollup:rollup executor (#32821)
- ⚠️ rspack: remove application generator in favour of framework-specific options (#32755)
- ⚠️ rspack: remove deprecated deleteOutputPath and sassImplementation options (#32756)
- ⚠️ webpack: remove deprecated deleteOutputPath and sassImplementation options (#32828)
🩹 Fixes
- bundling: ensure tsconfig options are respected with rollup-typescript-plugin (#32816)
- ⚠️ core: remove deprecated simpleName option from library generators (#32716)
⚠️ Breaking Changes
- ⚠️ core: remove
NX_DISABLE_DBenvironment variable (#32887) - js: The experimental inlining feature in the
@nx/js:tsc - ⚠️ webpack: remove deprecated deleteOutputPath and sassImplementation options (#32828)
- ⚠️ rspack: remove deprecated deleteOutputPath and sassImplementation options (#32756)
- ⚠️ rspack: remove application generator in favour of framework-specific options (#32755)
- ⚠️ bundling: change default useLegacyTypescriptPlugin to false for v22 (#32754)
- core: simpleName option is no longer supported in library
❤️ Thank You
- Colum Ferry @Coly010
- FrozenPandaz @FrozenPandaz
- Jack Hsu @jaysoo
- Leosvel Pérez Espinosa @leosvelperez
- MaxKless @MaxKless
- 21.7.0-canary.20250930-e14440830 Sept 2025pre-release
Nothing published for this version
- 21.7.0-canary.20250929-405d91d29 Sept 2025pre-release
Nothing published for this version
- 21.6.1117 Apr 2026
Release notes
Open source →21.6.11 (2026-04-17)
🩹 Fixes
- linter: handle various flat config override structures (#33548, #31796)
- linter: handle variable references in replaceOverride (#34026, #34010)
❤️ Thank You
- Claude Opus 4.5
- Jack Hsu @jaysoo
- 21.6.1027 Nov 2025
Release notes
Open source →21.6.10 (2025-11-27)
🩹 Fixes
- bundling: replace rollup-plugin-copy with nx copy assets plugin (#33601, #32398)
- core: kill child process tree in different running tasks (#33636, #32438, #33460)
- storybook: remove STORYBOOK_PROJECT_ROOT when running automigrate to prevent hanging (#33567, #32492)
❤️ Thank You
- Jack Hsu @jaysoo
- jaysoo @jaysoo
- Leosvel Pérez Espinosa @leosvelperez
- 21.6.918 Nov 2025
- 21.6.830 Oct 2025
Release notes
Open source →21.6.8 (2025-10-30)
🚀 Features
- bundling: add excludeFromExternal option to esbuild executor (#32980)
❤️ Thank You
- Claude
- Jack Hsu @jaysoo
- 21.6.728 Oct 2025
Release notes
Open source →21.6.7 (2025-10-28)
🚀 Features
- gradle: add custom installation path to options (#33187)
🩹 Fixes
- core: improve db connection initialization and error messages (#33054, #28640, #30856, #32894)
- core: do not remove wal files manually for existing databases (#33143)
- core: revert changes to the db connection initialization (#33156)
- core: continue execution when cloud client is unavailable (#33214)
- core: prevent error message containing
[object Object]for invalid {workspaceRoot} placement (#33203) - core: ensure daemon writes project graph cache to disk consistently (#33217)
- core: add accept header to http remote cache get (#33093, #33092)
- core: prevent undefined importer crash in pnpm lockfile parsing (#33223)
- misc: handle null exit codes from crashed child processes (#33163, #29204)
❤️ Thank You
- Claude
- Colum Ferry @Coly010
- Craigory Coppola @AgentEnder
- Jack Hsu @jaysoo
- Jason Jean @FrozenPandaz
- Leosvel Pérez Espinosa @leosvelperez
- Louie Weng @lourw
- Sander Boelhouwers
- 21.6.622 Oct 2025
Release notes
Open source →21.6.6 (2025-10-21)
🩹 Fixes
- angular: improve message for unsupported typescript project references (#33148)
- angular: ensure ngpackagr tsconfig options set correctly based on version #33081 (#33150, #33081)
- angular-rspack: ensure root node_modules included when resolving packages (#33144, #33026)
- core: improve db connection initialization and error messages (#33054, #28640, #30856, #32894)
- core: prioritize in-progress tasks section visibility in tui (#33053)
- core: enhance tui summary output to fix misc issues (#33057)
- core: restore migrations used by
nx repair(#33124) - core: avoid changing existing project name if a project.json file is added to a project (#33114)
- core: do not remove wal files manually for existing databases (#33143)
- core: do not print flaky tasks guidance when nx cloud is already enabled (#33149)
- core: add wrappers for start and stop agent nx-cloud commands (#33140)
- core: revert changes to the db connection initialization (#33156)
- graph: prevent content from overflowing in the PDV component (#33120)
- linter: install correct deps in eslint convert to flat config generator (#33078)
- module-federation: ensure angular rspack module federation supports live reload (#33137)
- remix: ensure supported version of vite is used (#33089)
- vite: add logic to prevent overwriting generated package.json (#30705, #30312)
❤️ Thank You
- Colum Ferry @Coly010
- Craigory Coppola @AgentEnder
- David Scourfield @daiscog
- Jack Hsu @jaysoo
- Leosvel Pérez Espinosa @leosvelperez
- Mike Cebrian
- Miroslav Jonaš @meeroslav
- 21.6.515 Oct 2025
Release notes
Open source →21.6.5 (2025-10-15)
🚀 Features
- core: expose registerProjectGraphRecomputationListener from daemon client (#33005)
🩹 Fixes
- core: display bottom corner indicator of tui in progress section correctly (#32985)
- core: temporarily disable tui for run-one (#33048)
- core: ensure --help works properly with infix notation (#32662)
- nx-dev: update nextjs internal-link-checker to include astro urls (#33045)
- nx-dev: respect NX_DEV_URL in sitemap checker (#33058)
- nx-dev: handle null github data (#33061)
- react: dynamic module federation should not initialize remoteUrlDefinitions to empty object (#33059, #27927, #33055, #27793, #27842)
- release: ensure multilines in breaking changes are rendered by changelog renderer (#33070, #33014)
❤️ Thank You
- Caleb Ukle
- Colum Ferry @Coly010
- Craigory Coppola @AgentEnder
- Leosvel Pérez Espinosa @leosvelperez
- MaxKless @MaxKless
- 21.6.48 Oct 2025
Release notes
Open source →21.6.4 (2025-10-08)
🚀 Features
- core: prompt for ai agent files on nx init (#32889)
- core: add --check=all flag to configure-ai-agents (#32968)
- nest: ensure dependencies are added to project's package.json #32548 (#32986, #32548)
- nx-cloud: update description on nx login and logout (#31344)
- vite: add buildable libs support for vitest (#32973)
🩹 Fixes
- angular-rspack: do not parse json with babel #32690 (#32966, #32690)
- bundling: postcss-cli-resources should handle relative deploy url #32714 (#32762, #32714)
- core: upgrade axios to 1.12.0 to address CVE-2025-58754 (#32712)
- core: repair repo root on setupAiAgents in nx init (#32984)
- core: remove requirement to be in a package manager workspace (#32992)
- core: remove duplicated "Running" string from tui title (#32991)
- nextjs: remove whitespace for newly generated server component (8868cc5d31)
- nextjs: update entrypoints for buildable library with vite to include server entry #31457 (#32977, #31457)
- nx-cloud: update broken documentation links to AI features (7a5930a1fa)
- remix: @nx/remix/package.json export typo fixed #32810 (#32940, #32810)
- repo: fix pr releases to not depend on a broken range (#32993)
- testing: show warning instead of error when no blob outputs found during merge (#33022)
- vite: ensure tsconfig file is resolved from workspaceRoot #31987 (#32990, #31987)
- vite: enable build watch mode by default for preview (#31604, #31623)
❤️ Thank You
- Colum Ferry @Coly010
- Jack Hsu @jaysoo
- Jason Jean @FrozenPandaz
- Juri @juristr
- Leosvel Pérez Espinosa @leosvelperez
- Louie Weng @lourw
- MaxKless @MaxKless
- Mischa Fischer
- Nikola Kalinov
- Shai Reznik @shairez
- Terry Mun-Andersen @terrymun
- Zoran Kokeza
- 21.6.32 Oct 2025
Release notes
Open source →21.6.3 (2025-10-02)
🩹 Fixes
- core: improve provenance error with custom registry information (#32903)
- core: optimize task hashing with BFS and performance logging (#32911)
- core: tweak configure-ai-agents prompt (#32914)
- core: ensure nx is published with the correct dependency version for the native packages (#32928, #32898)
- js: temporarily hash all external dependencies for tasks inferred by the
@nx/js/typescriptplugin (#32912) - nx-dev: improve default zoom level of graph nodes in docs (#32910)
- nx-dev: provide message to check previous docs w/ empty migrations (#32919)
- nx-dev: watch for theme changes for project/task graph components (#32885)
- nx-dev: update credit pricing link to new docs page (#32899)
❤️ Thank You
- Caleb Ukle
- Jason Jean @FrozenPandaz
- Juri @juristr
- Leosvel Pérez Espinosa @leosvelperez
- MaxKless @MaxKless
- 21.6.229 Sept 2025
Release notes
Open source →21.6.2 (2025-09-29)
This was a version bump only, there were no code changes.
- 21.6.129 Sept 2025
Release notes
Open source →21.6.1 (2025-09-29)
🚀 Features
- angular: support angular v20.3.0 (#32730)
- core: replace the pagination from the tui tasks list with scrolling (#32560)
- core: generate AI files in create-nx-workspace (#32442)
- core: add NX_PROJECT_ROOT environment variable to runti… (#32736, #31428)
- core: improve split target to support Gradle format (#32766)
- core: add id, start and end time to lifecycle hooks (#32583)
- core: add configure-ai-agents command (#32825)
- docker: add env var for providing docker registry (#32676)
- docker: ensure docker:build dependsOn build (#32697)
- graph: unified graph UI and controls (#32724)
- misc: add Cookiebot global scripts to astro-docs (#32660)
- nx-dev: disable Algolia search on non-docs pages when Astro docs are enabled (#32789)
- nx-dev: change login button to try nx cloud (5e0bcae9ef)
- nx-dev: enhance UI animations & statistics display (#32863)
- release: new option preserveMatchingDependencyRanges to not update matching version ranges (#32556)
- rspack: respect deleteOutputPath option in rspack executor (#32609, #32015)
- testing: infer task to merge reports from playwright atomized tasks (#31615)
- testing: support inferring atomized tasks for cypress component tests (#32733)
- testing: forward
e2e-citask options to their atomized tasks (#32765) - ⚠️ webpack: remove SVGR option and provide withSvgr composable function (#32843)
🩹 Fixes
- angular: install a compatible version of jest for angular (#32744)
- angular-rspack: show correct file sizes in build stats for i18n builds (#32758, #32277)
- angular-rspack: ensure assets extracted from stylesheets correctly #32487 (#32759, #32487)
- bundling: postcss-cli-resources should handle relative urls #32582 (#32658, #32582)
- core: ensure only supported bundlers are used for angular fallback to default (#32655)
- core: invalidate project graph when external nodes change (#32626)
- core: check if daemon process is actually alive before trying to kill it (#32661)
- core: add bold styling to terminal pane title when focused (#32462)
- core: resolve watcher infinite loops from missing parent gitignore support (#32604, #30313)
- core: check nx packages for provenance config before running nx migrate (#32557)
- core: handle uninstalled nx console case in autoinstall logic (#32673)
- core: filter task duration estimation by successful tasks only (#32688)
- core: move git utilities to fix WASM build (#32695)
- core: detect vscode insiders as separate editor (#32679)
- core: exit fork process and children when ipc connection closes (#32681)
- core: improve error messages for provenance checks (#32680)
- core: add missing view command to npm (#32729)
- core: kill child process correctly when run-script executor process is killed and not using pseudoterminal (#32699)
- core: do not shutdown daemon for project graph errors (#32764)
- core: fix misc db-related issues (#32745)
- core: update tui title text structure (#32793)
- core: move from execFile to exec for windows support (#32836, #32713)
- core: do not show placeholder parallel entries in tui when filtering (#32837)
- core: do not add
cache_outputsforeign key totask_detailswhenNX_DISABLE_DB=true(#32824, #32208) - core: prevent terminal pane scrolling on tasks list events (#32818)
- core: display prettier valid errors (#32771)
- core: add env var to disable fetching migration metadata from registry (#32850)
- core: project graph creation processes project dependencies correctly (#32784, #31454)
- core: tweak messaging if vscode / cursor aren't installed (#32877)
- core: spinner shows correct plugin count during project graph creation (#32871)
- gradle: use project configurations to determine project dependencies (#32704)
- gradle: support custom test targets (#32728)
- gradle: skip targets on Netlify since the Java version is too old (#32852)
- graph: update graph package (#32829)
- misc: add typescript output to the eslint ignore when needed (#32775)
- misc: remove unnecessary
bustproperty from plugin hashes (#32807) - nest: setup tsconfig to use decorators #30749 (#32859, #30749)
- nx-dev: correct courses page og image (#32700)
- nx-dev: correctly link to url fragments for devkit (#32565)
- nx-dev: implement client-side routing for documentation URLs (#32708)
- nx-dev: fix client-side redirect issue for OSS cloud plan form (f1b00ca610)
- react: only add react router plugin when using react router #32525 (#32814, #32525)
- release: optimize release version internals (#32534)
- repo: update broken CI documentation link in README (#32633, #32549)
- repo: move codeql to yml based config s.t. it runs properly on forks (#32659)
- repo: remove duplicate permissions block in publish workflow (#32868)
- rspack: mark svgr support as deprecated (#32861)
- vite: handle config server properly for libs (#32608)
⚠️ Breaking Changes
- webpack: The svgr option has been removed from withReact,
❤️ Thank You
- Benjamin Cabanes @bcabanes
- Caleb Ukle
- Chau Tran @nartc
- Colum Ferry @Coly010
- Copilot @Copilot
- Craigory Coppola @AgentEnder
- Jack Hsu @jaysoo
- James Henry @JamesHenry
- Jason Jean @FrozenPandaz
- Jonathan Gelin @jogelin
- Juri @juristr
- Leosvel Pérez Espinosa @leosvelperez
- Louie Weng @lourw
- MaxKless @MaxKless
- Miguel @mpsanchis
- Miroslav Jonaš @meeroslav
- Omer
- Philip Fulcher
- 21.6.1-rc.027 Sept 2025pre-release
Release notes
Open source →21.6.1-rc.0 (2025-09-27)
🚀 Features
- core: improve split target to support Gradle format (#32766)
- core: add id, start and end time to lifecycle hooks (#32583)
- core: add configure-ai-agents command (#32825)
- nx-dev: enhance UI animations & statistics display (#32863)
🩹 Fixes
- core: display prettier valid errors (#32771)
- core: add env var to disable fetching migration metadata from registry (#32850)
- core: project graph creation processes project dependencies correctly (#32784, #31454)
- gradle: skip targets on Netlify since the Java version is too old (#32852)
- nest: setup tsconfig to use decorators #30749 (#32859, #30749)
- repo: remove duplicate permissions block in publish workflow (#32868)
❤️ Thank You
- Benjamin Cabanes @bcabanes
- Colum Ferry @Coly010
- Jack Hsu @jaysoo
- Jason Jean @FrozenPandaz
- Jonathan Gelin @jogelin
- Leosvel Pérez Espinosa @leosvelperez
- MaxKless @MaxKless
- Miroslav Jonaš @meeroslav
- 21.6.1-beta.424 Sept 2025pre-release
Release notes
Open source →21.6.1-beta.4 (2025-09-24)
🚀 Features
- nx-dev: change login button to try nx cloud (5e0bcae9ef)
🩹 Fixes
- core: move from execFile to exec for windows support (#32836, #32713)
- core: do not show placeholder parallel entries in tui when filtering (#32837)
- core: do not add
cache_outputsforeign key totask_detailswhenNX_DISABLE_DB=true(#32824, #32208) - core: prevent terminal pane scrolling on tasks list events (#32818)
- graph: update graph package (#32829)
- misc: remove unnecessary
bustproperty from plugin hashes (#32807) - nx-dev: fix client-side redirect issue for OSS cloud plan form (f1b00ca610)
- react: only add react router plugin when using react router #32525 (#32814, #32525)
❤️ Thank You
- Chau Tran @nartc
- Colum Ferry @Coly010
- Juri @juristr
- Leosvel Pérez Espinosa @leosvelperez
- MaxKless @MaxKless
- 21.6.1-beta.320 Sept 2025pre-release
Release notes
Open source →21.6.1-beta.3 (2025-09-20)
🚀 Features
- graph: unified graph UI and controls (#32724)
- nx-dev: disable Algolia search on non-docs pages when Astro docs are enabled (#32789)
- testing: forward
e2e-citask options to their atomized tasks (#32765)
🩹 Fixes
- angular-rspack: show correct file sizes in build stats for i18n builds (#32758, #32277)
- angular-rspack: ensure assets extracted from stylesheets correctly #32487 (#32759, #32487)
- core: do not shutdown daemon for project graph errors (#32764)
- core: fix misc db-related issues (#32745)
- core: update tui title text structure (#32793)
- gradle: support custom test targets (#32728)
- misc: add typescript output to the eslint ignore when needed (#32775)
❤️ Thank You
- Chau Tran @nartc
- Colum Ferry @Coly010
- Jack Hsu @jaysoo
- James Henry @JamesHenry
- Jason Jean @FrozenPandaz
- Leosvel Pérez Espinosa @leosvelperez
- Louie Weng @lourw
- 21.6.1-beta.216 Sept 2025pre-release
Release notes
Open source →21.6.1-beta.2 (2025-09-16)
🚀 Features
- angular: support angular v20.3.0 (#32730)
- core: generate AI files in create-nx-workspace (#32442)
- core: add NX_PROJECT_ROOT environment variable to runti… (#32736, #31428)
- docker: add env var for providing docker registry (#32676)
- docker: ensure docker:build dependsOn build (#32697)
- release: new option preserveMatchingDependencyRanges to not update matching version ranges (#32556)
- rspack: respect deleteOutputPath option in rspack executor (#32609, #32015)
- testing: support inferring atomized tasks for cypress component tests (#32733)
🩹 Fixes
- angular: install a compatible version of jest for angular (#32744)
- core: filter task duration estimation by successful tasks only (#32688)
- core: move git utilities to fix WASM build (#32695)
- core: detect vscode insiders as separate editor (#32679)
- core: exit fork process and children when ipc connection closes (#32681)
- core: improve error messages for provenance checks (#32680)
- core: add missing view command to npm (#32729)
- core: kill child process correctly when run-script executor process is killed and not using pseudoterminal (#32699)
- gradle: use project configurations to determine project dependencies (#32704)
- nx-dev: correct courses page og image (#32700)
- nx-dev: correctly link to url fragments for devkit (#32565)
- nx-dev: implement client-side routing for documentation URLs (#32708)
- repo: move codeql to yml based config s.t. it runs properly on forks (#32659)
❤️ Thank You
- Caleb Ukle
- Colum Ferry @Coly010
- Craigory Coppola @AgentEnder
- Jack Hsu @jaysoo
- Jason Jean @FrozenPandaz
- Leosvel Pérez Espinosa @leosvelperez
- MaxKless @MaxKless
- Omer
- Philip Fulcher