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
- 21.0.0-canary.20250206-8bd0bcd6 Feb 2025pre-release
Nothing published for this version
- 21.0.0-canary.20250205-45d51405 Feb 2025pre-release
Nothing published for this version
- 21.0.0-beta.121 May 2025pre-release
Release notes
Open source →21.0.0-beta.12 (2025-05-01)
🚀 Features
- core: disable tui when output style is set to an incompatible style (#30873)
- graph: show next steps for successful migrations (#30934)
- nx-dev: add conformance rule to verify blog post cover images (5651270b33)
- ⚠️ release: support gitlab releases (#30802)
🩹 Fixes
- core: write keybindings with control to terminal panes in intera… (#30938)
- core: dont cache default plugins as all plugins if loading plugins fails (#30927)
- core: fix logging when directory does not exist (#30944)
- ⚠️ core: respect packageManager field in package.json when detecting version (#29249)
- core: fix terminal output for non-tui (#30957)
- core: include nx version in native file cache (#30963)
- core: error when restoring http cache with no outputs (#30961)
- core: return results after NodeChildProcessWithNonDirectOutput has already exited (#30943)
- nx-dev: update blog posts with avif cover images (d6ea3ab45f)
⚠️ Breaking Changes
- ⚠️ core: respect packageManager field in package.json when detecting version (#29249)
- ⚠️ release: support gitlab releases (#30802)
❤️ Thank You
- Craigory Coppola @AgentEnder
- Jack Hsu @jaysoo
- Jacob Ley @JacobLey
- James Henry @JamesHenry
- Jason Jean @FrozenPandaz
- Juri @juristr
- 21.0.0-beta.1130 Apr 2025pre-release
Release notes
Open source →21.0.0-beta.11 (2025-04-30)
🚀 Features
- ⚠️ core: drop support for create nodes v1 in favor of only calling create nodes v2 (#30616)
- ⚠️ core: remove legacy cache flag from nx.json (#30787)
- gradle: add batch runner (#30457)
- graph: show next steps for successful migrations (307c45542a)
- nuxt: enable continuous tasks (#30925)
- react: undeprecate svgr option for Next.js apps since --turbo supports it (#30909)
- react: replace deprecated babel classProperties.loose option in .babelrc files (#30912)
- ⚠️ testing: remove
tsConfigoption from the@nx/jest:jestexecutor (#30888) - ⚠️ testing: remove
tsConfigandcopyFilesoptions from the@nx/cypress:cypressexecutor (#30870) - webpack: remove isolatedConfig option for @nx/webpack:webpack (#30910)
🩹 Fixes
- core: tui summary should handle in progress tasks properly (#30905)
- core: throw errors when task graph has invalid continuous tasks (#30924)
- core: kill child processes when pseudo terminal shutsdown (#30935)
⚠️ Breaking Changes
- testing: The previously deprecated and unused
tsConfigand - testing: The previously deprecated and unused
tsConfigoption - ⚠️ core: remove legacy cache flag from nx.json (#30787)
- ⚠️ core: drop support for create nodes v1 in favor of only calling create nodes v2 (#30616)
❤️ Thank You
- Colum Ferry @Coly010
- Craigory Coppola @AgentEnder
- Emily Xiong @xiongemi
- Jack Hsu @jaysoo
- Jason Jean @FrozenPandaz
- Leosvel Pérez Espinosa @leosvelperez
- 21.0.0-beta.1028 Apr 2025pre-release
Release notes
Open source →21.0.0-beta.10 (2025-04-28)
🚀 Features
- core: add enter and q keybindings (#30786)
🩹 Fixes
- core: properly print errors coming from js when tui is enabled (#30885)
❤️ Thank You
- Jason Jean @FrozenPandaz
- 21.0.0-beta.928 Apr 2025pre-release
Release notes
Open source →21.0.0-beta.9 (2025-04-28)
🚀 Features
- ⚠️ core: remove usage of
cliproperty from migration definitions (#30855) - ⚠️ core: remove deprecated
readWorkspaceConfig(#30868) - graph: add undo migration option when one is pending approval (#30878)
- linter: add support for package based secondary entry points (#30809)
- misc: remove migrations prior to v19 in preparation for v21 (#30839)
- ⚠️ release: useLegacyVersioning is false by default, migrate config (#30838)
- rspack: use custom WriteIndexHtmlPlugin to handle variable interpolation (#30805)
- ⚠️ testing: remove deprecated
getJestProjects(#30844)
🩹 Fixes
- check if dependencies & devDependencies exist before deleting dep (#30224)
- core: handle skipped tasks and trigger finished state (#30864)
- core: do not clone screen on every render loop of the TUI (#30872)
- core: error message when failing to fetch migrations is no good (#30874)
- core: quick fix to support trailing commas when reading hoisted … (#29436)
- module-federation: check the remote project targets for buildTarget to use #30808 (#30867, #30808)
- release: ensure generatorOptions and rootVersionActionsOptions are passed to updateLockfile function (#30796)
- release: ensure versionData is always populated even when no bumps (#30866)
- repo: don't cancel running jobs on master when new branch merged (#30871)
⚠️ Breaking Changes
- core: The previously deprecated
readWorkspaceConfig - core: The
cliproperty from migration generator definitions - testing: The previously deprecated
getJestProjectsfunction - ⚠️ release: useLegacyVersioning is false by default, migrate config (#30838)
❤️ Thank You
- Colum Ferry @Coly010
- Craigory Coppola @AgentEnder
- François @GrandSchtroumpf
- Jack Hsu @jaysoo
- James Henry @JamesHenry
- Jason Jean @FrozenPandaz
- Jonathan Cammisuli @Cammisuli
- Leosvel Pérez Espinosa @leosvelperez
- Miroslav Jonaš @meeroslav
- Thomas Dekiere @thdk
- ⚠️ core: remove usage of
- 21.0.0-beta.825 Apr 2025pre-release
Release notes
Open source →21.0.0-beta.8 (2025-04-25)
🚀 Features
- core: add flaky task detection to tui summary (#30835)
- core: allow executors to specify if they are continuous (#30821)
🩹 Fixes
- core: add continuous to the project.json schema (#30853)
- core: ensure task environments are processed properly in dte (#30862)
- gradle: make sure v1 hash file is named differently to prevent compatability errors (#30846)
- graph: disable primary CTA for Migrate UI when approval is required first (#30836)
- module-federation: remove disabling runtimeChunk (#30637)
❤️ Thank You
- Craigory Coppola @AgentEnder
- Jack Hsu @jaysoo
- Jason Jean @FrozenPandaz
- MaxKless @MaxKless
- Nicholas Cunningham @ndcunningham
- 21.0.0-beta.724 Apr 2025pre-release
Release notes
Open source →21.0.0-beta.7 (2025-04-24)
🚀 Features
- core: stream task output for all tasks except for direct output… (#30822)
- java: add gradle kotlin plugin (#29464)
- nx-dev: tutorial landing page and improvements (#30757)
🩹 Fixes
- core: allow disabling output streaming with NX_STREAM_OUTPUT (#30834)
- js: remove check that ts plugin is used for ts sync generator (#30743)
❤️ Thank You
- Altan Stalker
- Emily Xiong @xiongemi
- Isaac Mann @isaacplmann
- Jack Hsu @jaysoo
- Jason Jean @FrozenPandaz
- 21.0.0-beta.623 Apr 2025pre-release
Release notes
Open source →21.0.0-beta.6 (2025-04-23)
🩹 Fixes
- core: wait for exit before getting terminal output (#30816)
- core: fix issue with summary missing outputs (#30819)
❤️ Thank You
- Jason Jean @FrozenPandaz
- 21.0.0-beta.522 Apr 2025pre-release
Release notes
Open source →21.0.0-beta.5 (2025-04-22)
🚀 Features
- angular: update angular-rspack to 20.7 (#30737)
- ⚠️ angular: remove deprecated functionalities for v21 (#30769)
- core: clean up unneeded continuous tasks after tasks are done (#30746)
- graph: Create Migrate UI (#30734)
- misc: remove generation of target defaults for atomized e2e tasks (#30730)
- nx-dev: add React landing page (#30612)
- nx-dev: add course preview component (4f8b407a75)
- webpack: set default sassImplementation to sass-embedded (#30580)
🩹 Fixes
- angular: handle ssr with convert-to-rspack (#30752)
- angular: convert-to-rspack correctly migrating existing custom webpack configs (#30778)
- core: improve flaky ci test (#30738)
- core: disable tui when CI=true (#30754)
- core: migrate-ui-api should always use its own migrate module (#30779)
- graph: ensure deps from graph-client->migrate-ui exists so taliwind styles are compiled correctly (#30762)
- nx-dev: refer to the youtube video instead of storing the videos… (#30739)
- nx-dev: toc should only include headings from the article body (4dbc3c7156)
- react: mark react-router dev/start targets as continuous (#30776)
⚠️ Breaking Changes
- angular: Remove the deprecated data persistence operators
❤️ Thank You
- Colum Ferry @Coly010
- Jack Hsu @jaysoo
- Jason Jean @FrozenPandaz
- Juri @juristr
- Leosvel Pérez Espinosa @leosvelperez
- Mike Hartington @mhartington
- Nicholas Cunningham @ndcunningham
- 21.0.0-beta.415 Apr 2025pre-release
Release notes
Open source →21.0.0-beta.4 (2025-04-15)
🩹 Fixes
- angular: remove deprecated standaloneConfig from generators (#30578)
- core: only register forced shutdown when tui is enabled (#30735)
- testing: fix cypress and playwright atomized targetDefaults so they match correctly (#30717)
❤️ Thank You
- Colum Ferry @Coly010
- Jack Hsu @jaysoo
- Jason Jean @FrozenPandaz
- 21.0.0-beta.315 Apr 2025pre-release
Release notes
Open source →21.0.0-beta.3 (2025-04-15)
🚀 Features
- core: introduce continuous tasks (#29750)
- core: share continuous tasks (#29901)
- core: add the experimental Terminal UI for tasks (#30565)
- core: enable dte to execute continuous tasks (#29993)
- core: add shared status for tui (#30679)
- js: infer continuous for watch-deps task (#29976)
- module-federation: add continuous tasks support to react rspack (#30644)
- node: generate new apps with continuous: true (#30148)
- remix: add continuous task support (#29905)
- rspack: add continous inference support (#29973)
- storybook: infer continuous tasks for storybook serve and serve-static (#30069)
- testing: add continuous tasks support for jest e2e with node (#30675)
- testing: support continuous tasks (#30632)
- vite: infer continuous tasks for dev (#30043)
- webpack: add continuous inference support (#29974)
🩹 Fixes
- core: ensure fileworker is cleaned up when workspace context is … (#30683)
- core: copy native file atomically to avoid hanging graph creation (#30695)
- core: clean up batch process after post run (#30687)
- core: schedule tasks and release waiting threads when continuous task is already running (#30673)
- core: improve tui exit consistency and summary (#30678)
- core: use dev tty for crossterm (#30696)
- js: ensure the tsconfig files cache is correctly busted when implementation changes (#30689)
- linter: remove empty entry in typescript eslint flat config (#30727)
- rspack: do not reuse existing ts-node compiler options when inferring tasks (#30703)
- testing: do not inherit existing env (#30688)
- testing: unset
customConditionswhen running cypress tasks (#30709)
❤️ Thank You
- Colum Ferry @Coly010
- Emily Xiong @xiongemi
- James Henry @JamesHenry
- Jason Jean @FrozenPandaz
- Leosvel Pérez Espinosa @leosvelperez
- 21.0.0-beta.211 Apr 2025pre-release
Release notes
Open source →21.0.0-beta.2 (2025-04-11)
🚀 Features
- angular: add release option to angular publishable libraries (#29869)
- angular: support angular 19.2.0 (#30088)
- angular: update angular eslint packages (#30245)
- angular: add convert-to-rspack generator (#29860)
- angular: add --bundler=rspack option to app generator (#30623)
- bundling: support rollup.config.ts (#29983)
- bundling: add buildLibsFromSource option to @nx/rollup:rollup executor (#30417)
- core: update CNW defaults so they generate a useful workspace by default (#29915)
- core: add multi hash fn (#29935)
- core: support bun's new text-based lockfile and use bun publish within nx release (#30064)
- core: display perpetual version information in nx report for powerpack (#30110)
- core: add activate key (#30250)
- core: add activate key " (#30250, #30295)
- core: add maxCacheSize option to limit local artifact size (#29654)
- core: add
nx register(#30321) - core: provide default value for max cache size (#30351)
- core: handle yarn resolutions and patches when parsing and pruning lock file (#30546)
- core: add --bundler=rspack option to angular stack cnw (#30629)
- core: add support for http based caches (#30593)
- core: add filter for git checkouts in generated pipelines and docs (#30547)
- core: allow globs in project config to extend atomized targets (#30630)
- core: introduce continuous tasks (#29750)
- core: share continuous tasks (#29901)
- core: add the experimental Terminal UI for tasks (#30565)
- core: enable dte to execute continuous tasks (#29993)
- core: add shared status for tui (#30679)
- graph: update graph lib to latest nx graph (#29768)
- js: upgrade verdaccio to 6 (#30015)
- js: add
typechecktask to generated ci workflow file when using the ts solution setup (#30219) - js: infer continuous for watch-deps task (#29976)
- linter: add
runtimeHelpersoption to@nx/dependency-checksrule (#29954) - linter: support eslint-config-prettier v10 (#30480)
- misc: add
useProjectJsonflag to project generators (#30319) - misc: enable ts solution setup by default for new workspaces (#30372)
- misc: set a
developmentconditional export for buildable libraries when using the ts solution setup (#30451) - misc: add
--useProjectJsonflag to CNW (#30475) - module-federation: add NxModuleFederationPlugin for inferred usage (#30003)
- module-federation: Update to the latest version of @module-federation (#30147)
- module-federation: add ssr support to rspack crystal plugin (#30437)
- module-federation: add continuous tasks support to react rspack (#30644)
- node: generate new apps with continuous: true (#30148)
- nx-dev: add quote component for enterprise articles (13b9c23e3b)
- nx-dev: add metrics and related blogs section (541acf536b)
- nx-dev: webinar page (#29913)
- nx-dev: add company video (c8072fa20e)
- nx-dev: add Faro for observability (#30021)
- nx-dev: expose docs embedding search via endpoint (#30050)
- nx-dev: allow sampling rate to be configured through env var (#30193)
- nx-dev: update workspace conformance rule to check md files in general (d428eec060)
- nx-dev: add angular architecture blog post (#30400)
- nx-dev: add java landing page (#30508)
- nx-dev: tutorialkit project (#29992)
- react: Update react-router-dom to latest (#29919)
- react: add react-router plugin (#29965)
- react: Add react-router to create-nx-workspace and react app generator (#30316)
- react: add crystal mf support to host and remote (#30424)
- release: configure when all branches should be checked for a matching releaseTagPattern (#30044)
- release: revamped nx release version implementation (#30418)
- remix: add continuous task support (#29905)
- repo: replace explicit matrix with dynamic parsed from json (#30120)
- rspack: use ts-checker-rspack-plugin instead of fork-ts-checker-webpack-plugin (#30121)
- rspack: infer ts-node compiler options in rspack task env when using a typescript config file (#30345)
- rspack: alias convert-webpack to convert-to-rspack (#30367)
- rspack: add support for non-buildable libraries in external dependencies (#30606)
- rspack: add continous inference support (#29973)
- storybook: migrate to latest storybook 8 version (#30584)
- storybook: infer continuous tasks for storybook serve and serve-static (#30069)
- testing: support vitest 3 (#29908)
- testing: disable jest runtime by default when inferring targets (#29917)
- testing: add type annotation for Jest configuration export (#30059)
- testing: add support for cypress v14 (#30618)
- testing: add continuous tasks support for jest e2e with node (#30675)
- vite: add support for vite 6 (#29871)
- vite: infer continuous tasks for dev (#30043)
- vue: add release option to vue publishable libraries (#29867)
- webpack: add option to opt out of watching buildable dependencies (#29984)
- webpack: use sass-embedded and modern-compiler for sass (#29999)
- webpack: add continuous inference support (#29974)
🩹 Fixes
- angular: do not generate
@nx/dependency-checksblock in flat root eslint config (#29980) - angular: correct nx angular migration requirement for 19.2 (#30234)
- angular: directory type is not optional (#30354)
- angular: include
@angular/google-mapsin package updates (#30530) - angular: use latest version of @analogjs/vitest-angular #30423 (#30560, #30423)
- angular: ensure crystal targets for testing when bundler=rspack (#30631)
- bundling: use projectRoot for assets (#29978)
- bundling: remove migration always adding sass-embedded (#30276)
- bundling: fix esbuild to work with ts project references (#30230)
- bundling: webpack and rspack builds respect output.clean config option (#30573)
- bundling: Lock webpack version to be compatible with @angular-devkit (#30676)
- core: create multi-glob function (#29880)
- core: fix plugin error indexes (#29936)
- core: handle nullable
lockwhen creating project graph (#30000) - core: tweaks to nx init (#30002)
- core: change to use init generator during import (#30029)
- core: add the
extendsfield to nx-schema.json (#30027) - core: respect
extendswhen reading tsconfig options (#30062) - core: make hash_array resilient to None values (#30090)
- core: NX_PLUGIN_NO_TIMEOUTS should also remove timeout on plugin worker connection (#30095)
- core: update custom task runner deprecation message (#30093)
- core: fix typescript dependency calculation (#30131)
- core: task runner should match on full segments (e.g. foo does not match foo-e2e) (#30129)
- core: improve packages recognition when the package version is an external package (#29529)
- core: re-enable CRA migration to Vite (#30082)
- core: standardize useGitHub param (#30173)
- core: ensure daemon enabled check is unchanged (#30228)
- core: change graph node type and name to string (#29610)
- core: annotate daemon logs w/ nx version (#30262)
- core: handle nx config in package.json in move generator (#30270)
- core: run init generators from extended collections during nx add (#30280)
- core: handle package manager workspaces configuration in move generator (#30268)
- core: only add keep existing versions if init generator supports it (#30352)
- core: make 'key' parameter optional in register command (#30365)
- core: handle null outputs in native cache (#30398)
- core: simplify key registration process (#30405)
- core: legacy cache users should get artifacts when remote cache is hit (#30442)
- core: pass the project graph into the batch instead of recreating (#30455)
- core: fix local registry not being considered when using
bun(#30459) - core: init should use pr version when specified (#30497)
- core: ensure local plugin is transpiled when using index files (#30133)
- core: add more detection for ci platforms (#30507)
- core: fixup error handling for get generator info (#30525)
- core: handle windows drive letter in a case-insensitive manner when normalizing paths (#30535)
- core: ensure rust code is able to handle null terminal outputs (#30494)
- core: update resolution of ts path mappings with patterns in target project locator (#30533)
- core: resolve subpath patterns in package exports correctly when constructing graph (#30511)
- core: do not run sync generators when running tasks in ci (#30591)
- core: angular rspack should not prompt for SSG (#30647)
- core: wasm build should build (#30655)
- core: log more information when
ProjectConfigurationsErroris thrown (#30661) - core: schedule tasks and release waiting threads when continuous task is already running (#30673)
- core: improve tui exit consistency and summary (#30678)
- devkit: handle missing
includeandexcludein tsconfig options when updating tsconfig to support js (#30073) - devkit: formatFiles should check for root prettier config before using prettier (#30426)
- esbuild: update peerDep range (#30167)
- eslint: ensure that packages in the same group as updated together (#30187)
- gradle: fix gradle undefined dependency target (#29943)
- gradle: log gradlew output for verbose (#29966)
- gradle: exlude htmlDependencyReport (#30300)
- gradle: build nx graph for gradle projects regardless of build gradle file location (#29783, #29802)
- graph: fix target details header tooltips in collapsed state (#30287)
- graph: focus via --focus command should work (#30576)
- js: generate pacakge.json for non-buildable nest and expo libs (#29891)
- js: allow publishable library to run release command (#29775)
- js: improve the
@nx/js/typescriptplugin performance (#30024) - js: invalidate tsconfig files cache in the
@nx/js/typescriptplugin when extended files change (#30071) - js: identify correct circular dependecies (#29759)
- js: use uuid when generating tmp tsconfig (#30118)
- js: use absolute filetorun path (#30091)
- js: normalize paths correctly in
@nx/js/typescriptplugin (#30216) - js: handle plugin correctly for non-buildable libs and don't add duplicated pattern to workspaces config (#30209)
- js: do not add typecheck target if tsc is used for build (#30211)
- js: update
outDirin runtime tsconfig files to matchtypesexport in package.json (#30217) - js: update tinyglobby to speed up shallow file matching (#30415)
- js: normalize tsconfig include paths correctly in
@nx/js/typescriptplugin (#30496) - js: infer
typechecktask for buildable libraries with tsc (#30505) - js: infer dependency between
typecheckandbuildtasks and more granular outputs fortypecheck(#30549) - js: handle extending from multiple config files and from local workspace packages in plugin (#30486)
- js: update @swc/cli version to fix vulnerability (#30575)
- js: Use correctly resolved path to tsconfig in readTsConfigWithRemappedPaths() (#30156)
- js: handle when there are no package manager workspaces' patterns (#30666)
- linter: install @eslint/eslintrc package as necessary (#29933)
- linter: dependency-check-support-catalogs (#29923)
- linter: restore package update group for
@typescript-eslint/eslint-pluginrequirement (#30204) - misc: fix misc issues in project generators for the ts solution setup (#30111)
- misc: update axios and webpack (#30379)
- misc: override
customConditionswhen using an incompatible module resolution (#30477) - misc: handle outputs with globs when normalizing tsconfig path mappings for buidable libraries (#30506)
- misc: init should prompt for cloud when using dot nx folder (#30501)
- misc: add missing flag to azure devops ci workflow generator (#30482)
- misc: update project directory validation to only account for the derived name (#30532)
- module-federation: handle remote output paths (#30119)
- module-federation: handle parsing static remote config correctly (#30168)
- module-federation: the module federation package depends on rspack (#30520)
- nest: fix library generator (#30157)
- nextjs: enhance support for custom server with SWC configuration (#29895)
- nextjs: add support for @testing-library/dom in application and library generators (#30189)
- nextjs: add setup generator for Tailwind CSS fixes absolute pathing (#30192)
- nextjs: enhance glob pattern (#30260)
- nextjs: update documentation for buildable libraries and bundler configuration (#30500)
- nextjs: bumped to eslintConfigNextVersion to v15 (#30537)
- nextjs: update Next.js versions to patch vulnerability (#30574)
- nextjs: add eslint plugin dependencies in application and library generators (#30592)
- nx-dev: Update customers carousel subtitle (#29920)
- nx-dev: error on course detail page on mobile (ef4398eb60)
- nx-dev: remove OTel-based tracing for now to remove local dev erros (#30096)
- nx-dev: sidebar should not always show angular-rs* links (#30448)
- nx-dev: adjust alignment on the pricing addon descriptions (50561ff009)
- nx-dev: add data-document attribute to improve search (#30524)
- nx-dev: fix blog post links (#30553)
- nx-dev: nx homebrew install cmd (ebd39bb2ae)
- nx-dev: update markdoc component to exclude h1 headers (d1ee41793f)
- react: add release option for @nx/react:lib --publishable (#29776)
- react: only add release config for publishable librarires (#30474)
- react: update react router logic with selected bundler (#30399)
- react: react-router should work with jest out of the box (#30487)
- react-native: change build target to be crystalized (#30151)
- release: ensure tags for version match stable variant before prerelease (#30047)
- release: allow preid option in release command (#29264)
- release: properly terminate case in switch statement (#30114)
- repo: fix nightly reporting (#30104)
- rspack: should be inferred by default (#29736)
- rspack: pin rspack 1.2.2 (#29997)
- rspack: handle potentially missing lockfile in
@nx/rspack/pluginplugin (#30086) - rspack: remove unused plugin-minify (#30521)
- rspack: allow typechecking during serve #29267 (#30558, #29267)
- storybook: fix package.json updates so @storybook packages are in sync during migration (#30191)
- testing: remove dependency on @nx/vite and @nx/webpack from @nx/playwright (#30023)
- testing: enforce commonjs module for ts-jest (#30681)
- vite: ignore vite temp files in eslint config (#29909)
- vite: prevent asset copying when NX_GRAPH_CREATION is enabled (#30037)
- vite: allow force ignore of logs from nxViteTsPaths plugin #29320 (#30200, #29320)
- vite: ensure paths with explicit extensions are resolved #29948 (#30202, #29948)
- vite: environments api support in executor (#30183)
- vite: copy assets plugin not copying files in watch mode #30141 (#30208, #30141)
- vite: correct mapping for reportsDirectory when using executors (#30232)
- vite: ensure test target dependency is not duplicated (#30289)
- vite: ensure nxCopyAssetsPlugin outputs assets to correct location #28786 (#30585, #28786)
- vue: upgrade vite plugin vue to v5 to avoid install errors (#30559)
- webpack: allow baseHref to not be set #30291 (#30519, #30291)
- webpack: add extension alias support for handling ESM libs (#30513)
- webpack: nestjs workspace libs referencing when using ts solution (#30538)
- webpack: migrate to latest version to prevent security vulnerabilities #29755 (#30590, #29755)
- webpack: enable legacy decorators and metadata in base config for compatibility (#30605)
❤️ Thank You
- Alejandro Forero @focusaway
- Chau Tran
- Colum Ferry @Coly010
- Craigory Coppola @AgentEnder
- Denis Akiyakov @newsiberian
- Denis Bendrikov
- Dron Bhattacharya
- Emily Xiong @xiongemi
- Ethan Koenig @ethantkoenig
- Gustavo Perdomo
- Hikari Hayashi @latin-1
- Isaac Mann @isaacplmann
- Jack Hsu @jaysoo
- Jack Stevenson
- James Henry @JamesHenry
- Jason Jean @FrozenPandaz
- Jonathan Cammisuli @Cammisuli
- Joshua Carter @JoshuaCWebDeveloper
- Juri @juristr
- Juri Strumpflohner @juristr
- Kevin Hallmark @khallmark
- Leosvel Pérez Espinosa @leosvelperez
- MaxKless @MaxKless
- Mike Hartington @mhartington
- Miroslav Jonaš @meeroslav
- MisterPandaPooh
- Nicholas Cunningham @ndcunningham
- Nicolas Beaussart @beaussan
- Petr Plenkov
- Richard Roozenboom @Roozenboom
- Roman Lorenzo Balayan @romanbalayan
- Ryan Bas @ryanbas21
- Tine Kondo @tinesoft
- Tristan Zander @tristanzander
- 21.0.0-beta.15 Feb 2025pre-release
Nothing published for this version
- 21.0.0-beta.05 Feb 2025pre-release
Nothing published for this version
- 20.9.0-canary.20250415-bc685ce15 Apr 2025pre-release
Nothing published for this version
- 20.8.412 Jan 2026
Release notes
Open source →20.8.4 (2026-01-12)
🩹 Fixes
- linter: handle variable references in replaceOverride (#34026)
❤️ Thank You
- Jack Hsu @jaysoo
- 20.8.321 Nov 2025
Release notes
Open source →20.8.3 (2025-11-21)
🩹 Fixes
- linter: handle various flat config override structures (#33548)
❤️ Thank You
- Jack Hsu @jaysoo
- 20.8.216 May 2025
Release notes
Open source →20.8.2 (2025-05-16)
🚀 Features
- angular: update angular-rspack to 20.7 (#30737)
- linter: add support for package based secondary entry points (#30809)
- rspack: use custom WriteIndexHtmlPlugin to handle variable interpolation (#30805)
🩹 Fixes
- core: error when restoring http cache with no outputs (#30961)
- module-federation: remove disabling runtimeChunk (#30637)
- release: ensure generatorOptions and rootVersionActionsOptions are passed to updateLockfile function (#30796)
- release: ensure versionData is always populated even when no bumps (#30866)
❤️ Thank You
- Colum Ferry @Coly010
- Craigory Coppola @AgentEnder
- James Henry @JamesHenry
- Miroslav Jonaš @meeroslav
- Nicholas Cunningham @ndcunningham
- Thomas Dekiere @thdk
- 20.8.125 Apr 2025
Release notes
Open source →20.8.1 (2025-04-25)
🚀 Features
- nx-dev: add React landing page (#30612)
- nx-dev: add course preview component (83b235e9dd)
🩹 Fixes
- angular: remove deprecated standaloneConfig from generators (#30578)
- angular: handle ssr with convert-to-rspack (#30752)
- angular: convert-to-rspack correctly migrating existing custom webpack configs (#30778)
- core: improve flaky ci test (#30738)
- core: allow disabling output streaming with NX_STREAM_OUTPUT (#30834)
- js: remove check that ts plugin is used for ts sync generator (#30743)
- linter: remove empty entry in typescript eslint flat config (#30727)
- nx-dev: refer to the youtube video instead of storing the videos… (#30739)
- nx-dev: toc should only include headings from the article body (56e18a0d24)
- testing: fix cypress and playwright atomized targetDefaults so they match correctly (#30717)
❤️ Thank You
- Altan Stalker
- Colum Ferry @Coly010
- Jack Hsu @jaysoo
- Jason Jean @FrozenPandaz
- Juri @juristr
- Leosvel Pérez Espinosa @leosvelperez
- Mike Hartington @mhartington
- Nicholas Cunningham @ndcunningham
- 20.8.014 Apr 2025
Release notes
Open source →20.8.0 (2025-04-14)
🚀 Features
- angular: add --bundler=rspack option to app generator (#30623)
- core: handle yarn resolutions and patches when parsing and pruning lock file (#30546)
- core: add --bundler=rspack option to angular stack cnw (#30629)
- core: add support for http based caches (#30593)
- core: add filter for git checkouts in generated pipelines and docs (#30547)
- core: allow globs in project config to extend atomized targets (#30630)
- nx-dev: tutorialkit project (#29992)
- react: add crystal mf support to host and remote (#30424)
- release: revamped nx release version implementation (#30418)
- rspack: add support for non-buildable libraries in external dependencies (#30606)
- storybook: migrate to latest storybook 8 version (#30584)
- testing: add support for cypress v14 (#30618)
🩹 Fixes
- angular: use latest version of @analogjs/vitest-angular #30423 (#30560, #30423)
- angular: ensure crystal targets for testing when bundler=rspack (#30631)
- bundling: webpack and rspack builds respect output.clean config option (#30573)
- bundling: Lock webpack version to be compatible with @angular-devkit (#30676)
- core: ensure rust code is able to handle null terminal outputs (#30494)
- core: update resolution of ts path mappings with patterns in target project locator (#30533)
- core: resolve subpath patterns in package exports correctly when constructing graph (#30511)
- core: do not run sync generators when running tasks in ci (#30591)
- core: angular rspack should not prompt for SSG (#30647)
- core: wasm build should build (#30655)
- core: log more information when
ProjectConfigurationsErroris thrown (#30661) - core: ensure fileworker is cleaned up when workspace context is … (#30683)
- core: copy native file atomically to avoid hanging graph creation (#30695)
- core: clean up batch process after post run (#30687)
- graph: focus via --focus command should work (#30576)
- js: infer dependency between
typecheckandbuildtasks and more granular outputs fortypecheck(#30549) - js: handle extending from multiple config files and from local workspace packages in plugin (#30486)
- js: update @swc/cli version to fix vulnerability (#30575)
- js: Use correctly resolved path to tsconfig in readTsConfigWithRemappedPaths() (#30156)
- js: handle when there are no package manager workspaces' patterns (#30666)
- js: ensure the tsconfig files cache is correctly busted when implementation changes (#30689)
- misc: add missing flag to azure devops ci workflow generator (#30482)
- misc: update project directory validation to only account for the derived name (#30532)
- nextjs: bumped to eslintConfigNextVersion to v15 (#30537)
- nextjs: update Next.js versions to patch vulnerability (#30574)
- nextjs: add eslint plugin dependencies in application and library generators (#30592)
- nx-dev: fix blog post links (#30553)
- nx-dev: nx homebrew install cmd (ebd39bb2ae)
- nx-dev: update markdoc component to exclude h1 headers (d1ee41793f)
- rspack: allow typechecking during serve #29267 (#30558, #29267)
- rspack: do not reuse existing ts-node compiler options when inferring tasks (#30703)
- testing: enforce commonjs module for ts-jest (#30681)
- testing: do not inherit existing env (#30688)
- testing: unset
customConditionswhen running cypress tasks (#30709) - vite: ensure nxCopyAssetsPlugin outputs assets to correct location #28786 (#30585, #28786)
- vue: upgrade vite plugin vue to v5 to avoid install errors (#30559)
- webpack: nestjs workspace libs referencing when using ts solution (#30538)
- webpack: migrate to latest version to prevent security vulnerabilities #29755 (#30590, #29755)
- webpack: enable legacy decorators and metadata in base config for compatibility (#30605)
❤️ Thank You
- Chau Tran
- Colum Ferry @Coly010
- Craigory Coppola @AgentEnder
- Dron Bhattacharya
- Emily Xiong @xiongemi
- Isaac Mann @isaacplmann
- Jack Hsu @jaysoo
- James Henry @JamesHenry
- Jason Jean @FrozenPandaz
- Joshua Carter @JoshuaCWebDeveloper
- Juri @juristr
- Leosvel Pérez Espinosa @leosvelperez
- Miroslav Jonaš @meeroslav
- Nicholas Cunningham @ndcunningham
- 20.8.0-rc.011 Apr 2025pre-release
Release notes
Open source →20.8.0-rc.0 (2025-04-11)
🩹 Fixes
- core: copy native file atomically to avoid hanging graph creation (#30695)
- js: ensure the tsconfig files cache is correctly busted when implementation changes (#30689)
❤️ Thank You
- Jason Jean @FrozenPandaz
- Leosvel Pérez Espinosa @leosvelperez
- 20.8.0-canary.20250412-07ad2d712 Apr 2025pre-release
Nothing published for this version
- 20.8.0-canary.20250409-7b85d919 Apr 2025pre-release
Nothing published for this version
- 20.8.0-canary.20250408-32b48a38 Apr 2025pre-release
Nothing published for this version
- 20.8.0-canary.20250405-32b48a35 Apr 2025pre-release
Nothing published for this version
- 20.8.0-canary.20250404-6e50a014 Apr 2025pre-release
Nothing published for this version
- 20.8.0-canary.20250403-6e50a013 Apr 2025pre-release
Nothing published for this version
- 20.8.0-canary.20250402-2d210b82 Apr 2025pre-release
Nothing published for this version
- 20.8.0-canary.20250401-b8e43251 Apr 2025pre-release
Nothing published for this version
- 20.8.0-beta.211 Apr 2025pre-release
Release notes
Open source →20.8.0-beta.2 (2025-04-11)
🩹 Fixes
- core: ensure fileworker is cleaned up when workspace context is … (#30683)
- testing: do not inherit existing env (#30688)
❤️ Thank You
- Jason Jean @FrozenPandaz
- 20.8.0-beta.111 Apr 2025pre-release
Release notes
Open source →20.8.0-beta.1 (2025-04-11)
🚀 Features
- core: allow globs in project config to extend atomized targets (#30630)
🩹 Fixes
- bundling: Lock webpack version to be compatible with @angular-devkit (#30676)
- testing: enforce commonjs module for ts-jest (#30681)
❤️ Thank You
- Leosvel Pérez Espinosa @leosvelperez
- Miroslav Jonaš @meeroslav
- Nicholas Cunningham @ndcunningham
- 20.8.0-beta.010 Apr 2025pre-release
Release notes
Open source →20.8.0-beta.0 (2025-04-10)
🚀 Features
- angular: add --bundler=rspack option to app generator (#30623)
- core: handle yarn resolutions and patches when parsing and pruning lock file (#30546)
- core: add --bundler=rspack option to angular stack cnw (#30629)
- core: add support for http based caches (#30593)
- core: add filter for git checkouts in generated pipelines and docs (#30547)
- nx-dev: tutorialkit project (#29992)
- react: add crystal mf support to host and remote (#30424)
- release: revamped nx release version implementation (#30418)
- rspack: add support for non-buildable libraries in external dependencies (#30606)
- storybook: migrate to latest storybook 8 version (#30584)
- testing: add support for cypress v14 (#30618)
🩹 Fixes
- angular: use latest version of @analogjs/vitest-angular #30423 (#30560, #30423)
- angular: ensure crystal targets for testing when bundler=rspack (#30631)
- bundling: webpack and rspack builds respect output.clean config option (#30573)
- core: ensure rust code is able to handle null terminal outputs (#30494)
- core: update resolution of ts path mappings with patterns in target project locator (#30533)
- core: resolve subpath patterns in package exports correctly when constructing graph (#30511)
- core: do not run sync generators when running tasks in ci (#30591)
- core: angular rspack should not prompt for SSG (#30647)
- core: wasm build should build (#30655)
- core: log more information when
ProjectConfigurationsErroris thrown (#30661) - graph: focus via --focus command should work (#30576)
- js: infer dependency between
typecheckandbuildtasks and more granular outputs fortypecheck(#30549) - js: handle extending from multiple config files and from local workspace packages in plugin (#30486)
- js: update @swc/cli version to fix vulnerability (#30575)
- js: Use correctly resolved path to tsconfig in readTsConfigWithRemappedPaths() (#30156)
- js: handle when there are no package manager workspaces' patterns (#30666)
- misc: add missing flag to azure devops ci workflow generator (#30482)
- misc: update project directory validation to only account for the derived name (#30532)
- nextjs: bumped to eslintConfigNextVersion to v15 (#30537)
- nextjs: update Next.js versions to patch vulnerability (#30574)
- nextjs: add eslint plugin dependencies in application and library generators (#30592)
- nx-dev: fix blog post links (#30553)
- nx-dev: nx homebrew install cmd (ebd39bb2ae)
- nx-dev: update markdoc component to exclude h1 headers (d1ee41793f)
- rspack: allow typechecking during serve #29267 (#30558, #29267)
- vite: ensure nxCopyAssetsPlugin outputs assets to correct location #28786 (#30585, #28786)
- vue: upgrade vite plugin vue to v5 to avoid install errors (#30559)
- webpack: nestjs workspace libs referencing when using ts solution (#30538)
- webpack: migrate to latest version to prevent security vulnerabilities #29755 (#30590, #29755)
- webpack: enable legacy decorators and metadata in base config for compatibility (#30605)
❤️ Thank You
- Chau Tran
- Colum Ferry @Coly010
- Craigory Coppola @AgentEnder
- Dron Bhattacharya
- Isaac Mann @isaacplmann
- Jack Hsu @jaysoo
- James Henry @JamesHenry
- Joshua Carter @JoshuaCWebDeveloper
- Juri @juristr
- Leosvel Pérez Espinosa @leosvelperez
- Miroslav Jonaš @meeroslav
- Nicholas Cunningham @ndcunningham
- 20.7.28 Apr 2025
Nothing published for this version
- 20.7.12 Apr 2025
Nothing published for this version
- 20.7.031 Mar 2025
Nothing published for this version
- 20.7.0-canary.20250329-bf8848d29 Mar 2025pre-release
Nothing published for this version
- 20.7.0-canary.20250328-4a3a82428 Mar 2025pre-release
Nothing published for this version
- 20.7.0-canary.20250327-1a235d727 Mar 2025pre-release
Nothing published for this version
- 20.7.0-canary.20250326-9dd476626 Mar 2025pre-release
Nothing published for this version
- 20.7.0-canary.20250325-30781f725 Mar 2025pre-release
Nothing published for this version
- 20.7.0-canary.20250322-1c238c022 Mar 2025pre-release
Nothing published for this version
- 20.7.0-canary.20250321-cad4d2621 Mar 2025pre-release
Nothing published for this version
- 20.7.0-canary.20250320-2a0d89d20 Mar 2025pre-release
Nothing published for this version
- 20.7.0-canary.20250319-59624c219 Mar 2025pre-release
Nothing published for this version
- 20.7.0-canary.20250318-f248d1618 Mar 2025pre-release
Nothing published for this version
- 20.7.0-canary.20250315-214552e15 Mar 2025pre-release
Nothing published for this version
- 20.7.0-beta.319 Mar 2025pre-release
Nothing published for this version
- 20.7.0-beta.217 Mar 2025pre-release
Nothing published for this version
- 20.7.0-beta.117 Mar 2025pre-release
Nothing published for this version
- 20.7.0-beta.014 Mar 2025pre-release
Nothing published for this version
- 20.6.425 Mar 2025
Nothing published for this version
- 20.6.325 Mar 2025
Nothing published for this version
- 20.6.219 Mar 2025
Nothing published for this version
- 20.6.117 Mar 2025
Nothing published for this version
- 20.6.014 Mar 2025
Nothing published for this version
- 20.6.0-canary.20250314-beb178414 Mar 2025pre-release
Nothing published for this version
- 20.6.0-canary.20250313-7f1e1cf13 Mar 2025pre-release
Nothing published for this version
- 20.6.0-canary.20250312-e4f522412 Mar 2025pre-release
Nothing published for this version
- 20.6.0-canary.20250311-d1a7ac911 Mar 2025pre-release
Nothing published for this version