Skip to content

nx

23.3.2
nrwl/nx

The Monorepo Platform that amplifies both developers and AI agents. Nx optimizes your builds, scales your CI, and fixes failed PRs automatically. Ship in half the time.

Version of nrwl/nx you run

CompareView on GitHub

Breaking changes

What to check before upgrading, taken from the notes of the last 30 releases.

  • 24.0.0Oct 21, 2026
    • ⚠️ angular: remove deprecated SCAM generators (#37508)
    • ⚠️ core: remove deprecated nx watch --includeDependentProjects alias (#37311)
    • ⚠️ core: deprecate executor custom hashers (#37310)
    • ⚠️ core: let tasks wait for a continuous dependency to be ready (#37224)
    • ⚠️ core: remove the legacy target-name cache fallback (#37313)
    • ⚠️ core: support ?? fallbacks in Nx tokens (#37410)
    • ⚠️ core: finish v24 release-tag and pnpm prune cleanups (#37446)
    • ⚠️ core: remove deprecated NX_MIGRATE_SKIP_REGISTRY_FETCH env var (#37507)
    • ⚠️ dotnet: make the inferred restore target opt-in (#36991)
    • ⚠️ gradle: remove @nx/gradle/plugin-v1 and migrate to @nx/gradle (#37325)
    • ⚠️ linter: remove deprecated setParserOptionsProject generator option (#37509)
    • ⚠️ misc: remove no-op createDependencies exports from first-party plugins (#37253)
    • ⚠️ misc: migrate removed config helpers with loadable stubs (#37156)
    • ⚠️ module-federation: remove nx module federation and migrate to official plugins (#37221)
    • ⚠️ remix: remove generators and executors in v24 (e31a37ad31)
    • ⚠️ core: remove the dependsOn 'self' / 'dependencies' magic-string shim (#37312)
    • ⚠️ core: keep inferred project names when project.json omits a name (#37365)
    • ⚠️ js: framework plugins defer typecheck to @nx/js/typescript (#37342, #36744)

    ⚠️ Breaking Changes

    • linter: remove deprecated setParserOptionsProject generator option (#37509)

    the setParserOptionsProject generator option is

    removed. Use enableTypedLinting instead. nx migrate rewrites

    generator defaults that set it, but not scripts that pass

    --setParserOptionsProject to nx g.

Release history

All releases on GitHub
Atom feed/feed/nrwl/nx
BadgeLatest version of nrwl/nx[![version](/badge/nrwl/nx)](/p/nrwl/nx)

24.1.0-beta.1 (2026-11-13)

🚀 Features

  • core: move @nx/conformance and @nx/owners into the nx repo (#37636)
  • linter: add @nx/directive-checks to lint Nx file directives (#37725)
  • nx-dev: serve the ci plan cost calculator from the blog site (#37792)
  • nx-dev: show nx.dev site banner as top bar in docs (#37853)

🩹 Fixes

  • angular-rspack: turn off lazy compilation by default on rspack 2 (#37799)
  • angular-rspack: limit dev server CORS access to localhost origins (#37818)
  • angular-rspack: validate options and delete output only when a task runs (#37821)
  • core: read overrides from pnpm-workspace.yaml for affected (#37364)
  • core: stop workspace and package lookups at directories the user controls (#37669)
  • core: filter remote cache terminal output before storing and replaying it (#37662)
  • core: add missing properties to the nx.json and project.json schemas (#37720)
  • core: keep a directory's files listed when a sibling extends its name (#37825)
  • core: settle daemon graph requests when computations claim out of order (#37794)
  • core: stop readyWhen command probes from leaving processes behind (#37844)
  • core: flush task output before the task process exits (#37827)
  • core: explain when nx import fails because a folder is not a git repository (#37847)
  • core: recompute cached import edges when the lock file changes (#37796)
  • core: warn when run-commands drops object or array options (#37749)
  • core: use a real require when node hands commonjs a stand-in (#37370)
  • core: update dependsOn entries in move generator (#37450, #37449)
  • core: respect --aiAgents=none in the template flow (#37494, #37437)
  • core: resolve package roots when exports hide package.json (#37497, #37488)
  • devkit: skip uninferred targets in convert-to-inferred --project mode (#37772)
  • devkit: report plugin-created targets that use removed executors (#37752)
  • js: parse each extended tsconfig once per typescript-sync run (#37813)
  • js: support Verdaccio 7 in the local registry tooling (#37824)
  • release: push release commit and tags after they are created (#37568, #37427)
  • storybook: make @nx/cypress an optional peer dependency (#37062, #37005)
  • testing: quote spec and output paths in atomized playwright targets (#37822)

❤️ Thank You

  • Cestercian @cestercian
  • Craigory Coppola @AgentEnder
  • Ethan Koenig @ethantkoenig
  • Jack Hsu @jaysoo
  • Leosvel Pérez Espinosa @leosvelperez
  • Louie Weng @lourw
  • MaxKless @MaxKless
  • Nicole Oliver
  • Rahul Kashyap @itisrmk
  • Rares Matei
  • Zachary DeRose @ZackDeRose

Full release notesCompare with previous