Skip to content

21.0.0

Compare
Choose a tag to compare
@FrozenPandaz FrozenPandaz released this 05 May 20:18
382bd6e

21.0.0 (2025-05-05)

🚀 Features

  • angular: update angular-rspack to 20.7 (#30737)
  • ⚠️ angular: remove deprecated functionalities for v21 (#30769)
  • core: introduce continuous tasks (#29750, #29025)
  • 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)
  • core: clean up unneeded continuous tasks after tasks are done (#30746)
  • core: stream task output for all tasks except for direct output… (#30822)
  • core: add flaky task detection to tui summary (#30835)
  • core: allow executors to specify if they are continuous (#30821)
  • ⚠️ core: remove usage of cli property from migration definitions (#30855)
  • ⚠️ core: remove deprecated readWorkspaceConfig (#30868)
  • core: add enter and q keybindings (#30786)
  • ⚠️ 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)
  • core: disable tui when output style is set to an incompatible style (#30873)
  • ⚠️ core: drop support for node versions prior to 20.19.0 (#30818)
  • core: support reading NX_TUI_AUTO_EXIT env var (#30971)
  • core: bump devkit support range and remove some deprecated APIs (#30840)
  • core: add continuous option to targets for Detox, Expo, and React Native (#30988)
  • ⚠️ core: remove outputStyle=compact (#31016)
  • gradle: add batch runner (#30457)
  • gradle: set gradle task continuous for bootRun (#30931)
  • graph: Create Migrate UI (#30734)
  • graph: add undo migration option when one is pending approval (#30878)
  • graph: show next steps for successful migrations (307c45542a)
  • graph: show next steps for successful migrations (#30934)
  • java: add gradle kotlin plugin (#29464)
  • js: infer continuous for watch-deps task (#29976)
  • linter: add support for package based secondary entry points (#30809, #18552)
  • misc: remove generation of target defaults for atomized e2e tasks (#30730)
  • misc: remove migrations prior to v19 in preparation for v21 (#30839)
  • module-federation: add continuous tasks support to react rspack (#30644)
  • node: generate new apps with continuous: true (#30148)
  • nuxt: enable continuous tasks (#30925)
  • nx-dev: add React landing page (#30612)
  • nx-dev: add course preview component (4f8b407a75)
  • nx-dev: tutorial landing page and improvements (#30757)
  • nx-dev: add conformance rule to verify blog post cover images (5651270b33)
  • react: undeprecate svgr option for Next.js apps since --turbo supports it (#30909)
  • react: replace deprecated babel classProperties.loose option in .babelrc files (#30912)
  • react-native: update executor and schema files for expo and react-native to be continuous (#30985)
  • ⚠️ release: useLegacyVersioning is false by default, migrate config (#30838)
  • ⚠️ release: support gitlab releases (#30802)
  • remix: add continuous task support (#29905)
  • ⚠️ remix: remove deprecated static-serve target name from inferred targets (#30982)
  • rspack: add continous inference support (#29973)
  • rspack: use custom WriteIndexHtmlPlugin to handle variable interpolation (#30805)
  • 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)
  • ⚠️ testing: remove deprecated getJestProjects (#30844)
  • ⚠️ testing: remove tsConfig option from the @nx/jest:jest executor (#30888)
  • ⚠️ testing: remove tsConfig and copyFiles options from the @nx/cypress:cypress executor (#30870)
  • vite: infer continuous tasks for dev (#30043)
  • webpack: add continuous inference support (#29974)
  • webpack: set default sassImplementation to sass-embedded (#30580)
  • webpack: remove isolatedConfig option for @nx/webpack:webpack (#30910)

🩹 Fixes

  • check if dependencies & devDependencies exist before deleting dep (#30224, #30222)
  • 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)
  • angular: convert-to-rspack should ensure zone.js is not treated as local file (#30966)
  • 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)
  • core: only register forced shutdown when tui is enabled (#30735)
  • 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)
  • core: wait for exit before getting terminal output (#30816)
  • core: fix issue with summary missing outputs (#30819)
  • core: allow disabling output streaming with NX_STREAM_OUTPUT (#30834)
  • core: add continuous to the project.json schema (#30853)
  • core: ensure task environments are processed properly in dte (#30862)
  • 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)
  • core: properly print errors coming from js when tui is enabled (#30885)
  • 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)
  • 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, #30940, #29184)
  • core: error when restoring http cache with no outputs (#30961)
  • core: return results after NodeChildProcessWithNonDirectOutput has already exited (#30943)
  • core: don't display fork script path in tui (#30970)
  • core: prioritize --output-style flag over tui env vars (#30969)
  • core: use process#kill instead of tree-kill for windows and macos (#30976)
  • core: Disable the macOS job to prevent PRs from being blocked by its long runtime. (#30984)
  • core: send signals when killing child process on unix (#30987)
  • core: fix windows native build (#30990)
  • core: run discrete tasks using batches if possible (#30991)
  • core: improve tui task_list bottom section responsive design (#30993)
  • core: update fork task runner so it propagates exit signals (#30998)
  • core: remove unnecessary corepack defaults (#30992)
  • core: skip vt100 parsing if tui disabled (#31010)
  • core: tui summary should not show canceled during run-one because tasks are skipped (#31014)
  • core: ensure the terminal is restored when cloud exits (#31013)
  • core: Update nightly tests to work with continuous local-registry (#31007)
  • core: enable E2E tests for macOS in CI workflow (#30986)
  • core: reset should clear cloud light client (#31021)
  • core: nx init should configure plugins for encapsulated workspaces (#31020)
  • core: more tui summary updates and unit tests (#31019)
  • core: exit the command with sigint if it is interrupted (#31028)
  • core: Disable e2e matrix as macos is still hanging at install (#31041)
  • core: tui summary should show cancelled when interrupting dev server (#31042)
  • core: q should exit tui immediately if all tasks complete (#31040)
  • core: improve tui selected task contrast (#31039)
  • core: update ci-workflow generator package manager installation (#31018)
  • core: switch to tui-term fork to support dimmed content (#31044)
  • core: kill tasks run via run-commands (#31045)
  • gradle: make sure v1 hash file is named differently to prevent compatability errors (#30846)
  • gradle: add gradle migration to change ciTargetName (#30965)
  • gradle: fix workflow to run assemble check with batch (#31022)
  • graph: ensure deps from graph-client->migrate-ui exists so taliwind styles are compiled correctly (#30762)
  • graph: disable primary CTA for Migrate UI when approval is required first (#30836)
  • graph: make migrate ui future migration circles cleaner (#30898)
  • js: remove check that ts plugin is used for ts sync generator (#30743)
  • linter: remove empty entry in typescript eslint flat config (#30727, #30725)
  • ⚠️ misc: only provide default value for object properties if object already has value (#28838, #23153)
  • module-federation: remove disabling runtimeChunk (#30637, #9582)
  • module-federation: check the remote project targets for buildTarget to use #30808 (#30867, #30808)
  • 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)
  • nx-dev: update blog posts with avif cover images (d6ea3ab45f)
  • react: mark react-router dev/start targets as continuous (#30776)
  • react: migration for babel supports configs that do not use @nx/react/babel (#30962)
  • release: ensure generatorOptions and rootVersionActionsOptions are passed to updateLockfile function (#30796)
  • release: ensure versionData is always populated even when no bumps (#30866)
  • release: only error on missing manifestsToUpdate if a project is being directly processed (#31004)
  • repo: don't cancel running jobs on master when new branch merged (#30871)
  • testing: fix cypress and playwright atomized targetDefaults so they match correctly (#30717, #28842)
  • testing: use correct server process reference when killing the server in the cypress preset (#30994)
  • testing: ignore test outputs from playwright when linting (#31015)
  • vue: install @typescript-eslint/parser when generating project using it (#31008)

⚠️ Breaking Changes

  • ⚠️ core: remove outputStyle=compact (#31016)
  • remix: Remove deprecated static-serve target name from Remix
  • misc: Currently if an executor's schema provides some default
  • core: We are updating our minimum node version to 20.19.0
  • ⚠️ core: respect packageManager field in package.json when detecting version (#29249)
  • ⚠️ release: support gitlab releases (#30802)
  • testing: The previously deprecated and unused tsConfig and
  • testing: The previously deprecated and unused tsConfig option
  • ⚠️ 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)
  • core: The previously deprecated readWorkspaceConfig
  • core: The cli property from migration generator definitions
  • testing: The previously deprecated getJestProjects function
  • ⚠️ release: useLegacyVersioning is false by default, migrate config (#30838)
  • angular: Remove the deprecated data persistence operators

❤️ Thank You