Compare commits

...

284 Commits

Author SHA1 Message Date
Craigory Coppola 4fc0a47a7a fix(core): add registerExitHandler utility 2025-05-08 13:30:32 -04:00
Colum Ferry 0bf114eb11 docs(nx-dev): blog post for improved module federation experience (#31072)
Add a blog post detailing the new module federation experience

---------

Co-authored-by: Philip Fulcher <philip@nrwl.io>
Co-authored-by: Mike Hartington <mhartington@users.noreply.github.com>
2025-05-08 10:16:29 -06:00
James Henry 76b3f57823 chore(repo): update to nx 21.0.2 (#31118) 2025-05-08 10:55:47 -04:00
Jonathan Cammisuli 525bcca0a0 fix(core): replace posix.relative with relative for path resolution (#30783)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->
Whenever using the new Typescript style repos (using package.json
instead of project.json for typescript projects), we get incorrect paths
when using `resolveImportWithRequire` on Windows. Currently when trying
to find a path, we end up with a path similar to
`../C:\\dev\\nx\\file.ts` which is incorrect.

## Expected Behavior
Changing `posix.relative` to just relative, allows us to get the proper
path on Windows like so: `.\\file.ts`

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #

Co-authored-by: Jack Hsu <jack.hsu@gmail.com>
Co-authored-by: Jason Jean <jasonjean1993@gmail.com>
2025-05-08 13:49:13 +00:00
Leosvel Pérez Espinosa 6176d3a504 chore(repo): update self hosted cache packages (#31120)
## Current Behavior

Running commands in the Nx repo panic due to a wrong published version
of `@nx/powerpack-license` package.

## Expected Behavior

Running commands in the Nx repo should not panic.

## Related Issue(s)

Fixes #
2025-05-08 13:05:58 +00:00
Jason Jean c19e6b8ce0 chore(repo): update to v2 of self hosted cache packages (#31094) 2025-05-08 12:15:21 +04:00
Jason Jean d8ad991ae7 chore(repo): enforce clippy (#31093) 2025-05-08 11:29:18 +04:00
Craigory Coppola 98d3354855 fix(core): tui summary should capture more terminal outputs (#31113)
## Current Behavior
Some task outputs are missing in terminal outputs

## Expected Behavior
Task outputs are present

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-05-07 18:37:21 -04:00
Jason Jean 6f9cce78ac fix(core): tui should not exit when underlying process is cancelled (#31112)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

Entire TUI exits when any process exits with a SIGINT

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

TUI stays alive when a process exits with a SIGINT

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-05-07 20:52:40 +00:00
Jason Jean 0d53604b5a fix(core): clearer tui colors on light themes (#31095)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

Light themes are not super clear with the new TUI.

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

Light themes are much clearer with the new TUI.

Internal loom shared on slack for full details.

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #

---------

Co-authored-by: JamesHenry <james@henry.sc>
2025-05-07 16:29:36 -04:00
Robby Rabbitman b65216387e chore(core): nx plugin submission @robby-rabbitman/nx-plus-web-test-runner (#30419)
<!-- 
_[Please make sure you have read the submission guidelines before
posting an
PR](https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#submit-pr)_

# Community Plugin Submission

Thanks for submitting your Nx Plugin to our community plugins list. Make
sure to follow these steps to ensure that your PR is approved in a
timely manner.

## Plugin Requirements

Before you submit your plugin to be listed in our registry, it needs to
meet the following requirements:
- Run some kind of automated e2e tests in your repository
- Include `@nx/devkit` as a `dependency` in the plugin's `package.json`
- List a `repository.url` in the plugin's `package.json`

i.e.

```
{
  "repository": {
    "type": "git",
    "url": "https://github.com/nrwl/nx.git",
    "directory": "packages/web"
  }
}
```

Note: We reserve the right to remove unmaintained plugins from the
registry. If the plugins become maintained again, they can be
resubmitted to the registry.

## Steps to Submit Your Plugin
- Use the following commit message template: `chore(core): nx plugin
submission [PLUGIN_NAME]`
- Update the `community/approved-plugins.json` file with a new entry for
your plugin that includes `name`, `url`, `description`:

Example:

```json
// community/approved-plugins.json

[{
    "name": "@community/plugin",
    "url": "https://github.com/community/plugin",
    "description": "This plugin provides the following capabilities."
}]
```

Once merged, your plugin will be available when running the `nx list`
command, and will also be available in the Plugin Registry on
[nx.dev](https://nx.dev/plugin-registry)
-->

# Community Plugin Submission

## @robby-rabbitman/nx-plus-web-test-runner

A plugin to infer [Web Test
Runner](https://modern-web.dev/docs/test-runner/overview) in a Nx
workspace.

<!-- 
Describe what your plugin is and what is its goal or issues it
addresses. If you don't provide a description, we will not merge your
PR.
Is it focused on a technology, tooling or behaviour? Does the plugin
provide generators, executors or graph support?
Do you know who is already using the plugin? Mention who is the author
of the plugin.
-->

Co-authored-by: robby rabbitman <robby.rabbitman@gmail.com>
Co-authored-by: Isaac Mann <isaacplmann@users.noreply.github.com>
2025-05-07 19:25:16 +00:00
James Henry 9b2eed2662 fix(core): resolve excessive CPU consumption via child_process.rs (#31110)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-05-07 15:05:16 -04:00
Jason Jean 68426f6adb fix(core): run script should exit the process when kill signals are r… (#31109) 2025-05-07 13:42:27 -04:00
Nicholas Cunningham 3b3b320ff7 fix(core): add keepExistingVersions to jest option to preserve dependency versions (#30652)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->
Currently, when we use the jest configuration generator it will forcibly
update the jest version if the package already exist.


## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
Now, the jest version will be preserved unless the option is passed to
update the version.

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-05-07 10:01:10 -06:00
Jason Jean 480a20e3c5 fix(core): explicitly cleanup forked process task runner (#31106)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

Forked process task runner cleanup is not explicitly invoked.

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

Forked process task runner cleanup is explicitly invoked.

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-05-07 11:29:35 -04:00
Jack Hsu 3b19cf6811 docs(misc): add blog post for migrate ui (#31086)
This PR adds a blog post for the new Migrate UI.

Preview:
https://nx-dev-git-blog-migrate-ui-nrwl.vercel.app/blog/migrate-ui

---------

Co-authored-by: Philip Fulcher <philip@nrwl.io>
2025-05-07 15:29:13 +00:00
Caleb Ukle e118210e7f docs(nx-dev): add Nx Cloud terms link in footer (#31105)
before: no link to nx cloud terms in footer

after: 
make terms easier to find for people by adding a link in the docs footer
![WKMac
2025-05-07T13-54-56](https://github.com/user-attachments/assets/74c618c1-aa0b-4c98-8a69-fad2fb5f1f3c)
2025-05-07 10:54:14 -04:00
Leosvel Pérez Espinosa e6a3d77db3 fix(js): handle ${configDir} in tsconfig files when inferring tasks (#31098)
## Current Behavior

The `${configDir}` template variable in tsconfig files is incorrectly
handled when inferring tasks with the `@nx/js/typescript` plugin.

## Expected Behavior

The `${configDir}` template variable in tsconfig files should be
correctly handled when inferring tasks with the `@nx/js/typescript`
plugin.

## Related Issue(s)

Fixes #30883
2025-05-07 10:15:56 +00:00
Isaac Mann 30a7709d71 chore(nx-dev): block linking to preview urls (#31081)
Catch links to preview urls
2025-05-06 18:43:57 -04:00
Nicolas Beaussart a944c8cd54 fix(core): fail nx release cli when publish step fails (#31088) 2025-05-06 19:17:10 +00:00
Benjamin Cabanes 05c9d0d24f docs(nx-dev): set new GTM ID (#31090)
Replaced the GA Measurement ID with the new GTM Measurement ID.
2025-05-06 14:13:44 -04:00
Benjamin Cabanes 42a9a2c51a docs(nx-dev): clarify enterprise security (#31089)
Updated content to specify vulnerabilities in community-built and Nx self-hosted cache solutions, highlighting risks like cache poisoning and lack of compliance with regulated industry security standards.
2025-05-06 18:12:31 +00:00
James Henry 71de122579 fix(core): send up and down arrows to pty in interactive mode (#31084) 2025-05-06 15:58:47 +00:00
Colum Ferry ba6d324645 docs(angular): update angular rspack docs to reflect recent updates (#31074)
## Current Behavior
The docs on Angular Rspack's supported features are outdated

## Expected Behavior
Update the supported features for Angular Rspack
2025-05-06 16:33:21 +01:00
Isaac Mann ea40d04e70 fix(nx-dev): webinar list page shows event date (#30953)
/webinar page should show the event date not the publish date
2025-05-06 11:24:58 -04:00
Nacho Vazquez 9ae68a7c0d chore(core): nx plugin submission @naxodev/gonx (#31034)
# Community Plugin Submission

Thanks for submitting your Nx Plugin to our community plugins list. Make
sure to follow these steps to ensure that your PR is approved in a
timely manner.

## Plugin Requirements

Before you submit your plugin to be listed in our registry, it needs to
meet the following requirements:
- Run some kind of automated e2e tests in your repository
- Include `@nx/devkit` as a `dependency` in the plugin's `package.json`
- List a `repository.url` in the plugin's `package.json`

i.e.

```
{
  "repository": {
    "type": "git",
    "url": "https://github.com/nrwl/nx.git",
    "directory": "packages/web"
  }
}
```

Note: We reserve the right to remove unmaintained plugins from the
registry. If the plugins become maintained again, they can be
resubmitted to the registry.

## Steps to Submit Your Plugin
- Use the following commit message template: `chore(core): nx plugin
submission [PLUGIN_NAME]`
- Update the `community/approved-plugins.json` file with a new entry for
your plugin that includes `name`, `url`, `description`:

Example:

```json
// community/approved-plugins.json

[{
    "name": "@community/plugin",
    "url": "https://github.com/community/plugin",
    "description": "This plugin provides the following capabilities."
}]
```

Once merged, your plugin will be available when running the `nx list`
command, and will also be available in the Plugin Registry on
[nx.dev](https://nx.dev/plugin-registry)
-->

# Community Plugin Submission

## @naxodev/gonx

GoNx is an opinionated Nx plugin for Go/Golang development, forked from
the original nx-go plugin. It enables developers to manage Go projects
within an Nx ecosystem through a non-invasive approach that heavily
relies on inferred tasks and modern Nx features.

The plugin provides generators for applications and libraries with
customizable module setup, executors for building, testing, running, and
managing dependencies, and full Nx integration, including cacheable
tasks, GraphV2 support, and release capabilities. GoNx utilizes official
Go commands in the background, delivering efficient caching and
dependency graph tools for Go projects.
2025-05-06 10:16:08 -04:00
Colum Ferry 678965da21 feat(rspack): upgrade to version 1.3.8 (#31070)
## Current Behavior
We currently install Rspack at `^1.2`. The latest version of Rspack is
`1.3.8`
Angular Rspack now requires at least `1.3.5`

## Expected Behavior
Rspack installations should use latest version of `1.3.8`
2025-05-06 09:30:01 -04:00
Philip Fulcher d8cf187dbc docs(nx-dev): add link to release notes in nx21 article (#31079) 2025-05-06 13:06:26 +00:00
Colum Ferry ee276413b8 docs(gradle): fix link in overview doc (#31073)
## Current Behavior
The link to Continuous Tasks is pointing to a preview site.

## Expected Behavior
The link should remain on the production site.
2025-05-06 08:50:17 -04:00
Philip Fulcher a36aaacef6 docs(nx-dev): add nx 21 release article (#31036)
Co-authored-by: Juri <juri.strumpflohner@gmail.com>
2025-05-06 06:44:42 -06:00
Isaac Mann 72a0ef541f chore(core): fix docs release script for single version (#31060)
Fixes an issue with the docs release script when there is only one
version in a particular major version.

The `npm show [version] --json` command normally returns an array of
strings, but if there is only one version returned, it tries to be
helpful by returning a string instead. This fix normalizes that
behavior.
2025-05-05 20:34:01 -04:00
Jack Hsu 382bd6eb2c docs(misc): update version picker to include v21 (#31053)
This PR updates docs to show v21 in the version picker.

Currently, it shoulds v17, v18, v19, and v20.

<img width="611" alt="Screenshot 2025-05-05 at 3 34 26 PM"
src="https://github.com/user-attachments/assets/baee6f00-8db2-4300-ac80-944b8a6b760a"
/>

It should show v21, v20, and v19 according to our LTS policy.
2025-05-05 16:16:45 -04:00
Jason Jean 5eefe8575a chore(repo): update nx to 21.0.0-rc.4 (#31046)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

This repo uses Nx 21.0.0-rc.3

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

This repo uses Nx 21.0.0-rc.4

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-05-05 15:59:37 -04:00
Jason Jean 5cd09f97ff fix(core): kill tasks run via run-commands (#31045)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

Tasks run via `run-commands` are not cleaned up properly.

`nx serve-docs nx-dev` in this repo did not cleanup the running server
when cancelled.

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

Tasks run via `run-commands` are cleaned up properly.

`nx serve-docs nx-dev` in this repo does clean up the running server
when cancelled.

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-05-05 13:47:18 -04:00
James Henry e2b27b849b fix(core): switch to tui-term fork to support dimmed content (#31044) 2025-05-05 17:30:34 +00:00
Nicholas Cunningham 265bb0b4bb fix(core): update ci-workflow generator package manager installation (#31018)
This pull request updates the CI workflow configuration to replace the
use of `pnpm/action-setup` with `corepack enable` for package manager
setup.

- NPM versions greater than 8 has an error which has been [fixed in Node
22.5.1](https://github.com/npm/cli/issues/7639), since we are still
using Node 20 we need to pin the installed npm version to 8.
- Now we are conditionally handling different package managers based on
how the repo has been configured.
Should the repository specify the package manager's version for `pnpm`
and `yarn` those versions will be respected, else it will fallback to a
`9.8` for `pnpm` and `1.22` for `yarn`.

---------

Co-authored-by: Jason Jean <jasonjean1993@gmail.com>
2025-05-05 16:25:36 +00:00
James Henry 37dea94062 fix(core): improve tui selected task contrast (#31039) 2025-05-05 12:11:01 -04:00
James Henry 0402e85d87 fix(core): q should exit tui immediately if all tasks complete (#31040) 2025-05-05 12:08:55 -04:00
Craigory Coppola 9fe487c0f3 fix(core): tui summary should show cancelled when interrupting dev server (#31042)
## Current Behavior
Interrupting a serve task with `Control + C` displays a "Success"
message, which isn't quite accurate.

<img width="1077" alt="image"
src="https://github.com/user-attachments/assets/b7e7086d-2725-4c65-b1f6-9f8a5db5196a"
/>


## Expected Behavior
Interrupting a serve task displays a "Cancelled" message

<img width="1077" alt="image"
src="https://github.com/user-attachments/assets/698e6e43-a376-473a-ab4f-7d514026ff02"
/>


## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-05-05 12:08:02 -04:00
Nicholas Cunningham ce64f85069 fix(core): Disable e2e matrix as macos is still hanging at install (#31041)
Disabling the schedule run for e2e matrix job as macos is still hanging.
 
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-05-05 09:56:48 -04:00
Jordan fb6c2ca5f0 docs(core): add briebug to partners and update pushbased (#30904)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
- Adds Briebug as an Nx Partner
- Updates Pushbased partner slogan and tags

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-05-05 08:35:45 -04:00
Jason Jean cc1f655e99 chore(repo): update nx to 21.0.0-rc.3 (#31035)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

This repo uses Nx `21.0.0-rc.2`

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

This repo uses Nx `21.0.0-rc.3`

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-05-05 07:59:36 +00:00
Jason Jean 02ba546ad7 fix(core): exit the command with sigint if it is interrupted (#31028)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

When tasks are still running but the user exits the TUI, Nx returns exit
code 0 (success)

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

When tasks are still running but the user exits the TUI, Nx returns exit
code 130 (SIGINT)

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-05-05 03:45:22 -04:00
Isaac Mann 2cb0fa2b55 docs(core): publish tutorial kit tutorials (#30973)
- Migrate Gradle tutorial to tutorial kit section (not as an interactive
tutorial)
- remove `npx` from online tutorial instructions
- Update sidebar tutorial links to point to new tutorials

---------

Co-authored-by: Jack Hsu <jack.hsu@gmail.com>
2025-05-03 10:58:02 -04:00
Josh VanAllen 675e6ed8ec docs(nx-cloud): add gradle references (#31025)
Update references in "task splitting" to link the Gradle testing task
splitting.
2025-05-02 19:24:02 -06:00
Emily Xiong 70cec4b41a fix(gradle): fix workflow to run assemble check with batch (#31022)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->
currently, the command in ci workflow is `nx affected -t build`

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
change to run `nx affected -t assemble, check` with batch turned on for
gradle

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-05-02 19:55:12 -04:00
Craigory Coppola 6e12a821df feat(core)!: remove outputStyle=compact (#31016) 2025-05-02 23:05:59 +00:00
Craigory Coppola c2321a3489 fix(core): more tui summary updates and unit tests (#31019) 2025-05-02 18:34:49 -04:00
Craigory Coppola b95621f42e fix(core): nx init should configure plugins for encapsulated workspaces (#31020) 2025-05-02 18:17:20 -04:00
Craigory Coppola 32ec0aee0c fix(core): reset should clear cloud light client (#31021) 2025-05-02 18:01:57 -04:00
Nicholas Cunningham 90d4446f1a fix(core): enable E2E tests for macOS in CI workflow (#30986)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-05-02 17:52:22 -04:00
Nicholas Cunningham 516febf436 fix(core): Update nightly tests to work with continuous local-registry (#31007)
Currently, when the Nightly E2E Matrix job is ran it gets stuck at:
```
Waiting for Local registry to start on http://localhost:4873...
Waiting for Local registry to start on http://localhost:4873...
Waiting for Local registry to start on http://localhost:4873...
Waiting for Local registry to start on http://localhost:4873...
Waiting for Local registry to start on http://localhost:4873...
Waiting for Local registry to start on http://localhost:4873...
```

Which blocks other jobs and they will be queued for an unnecessary long
period.

![image](https://github.com/user-attachments/assets/bc9e0993-423b-4fb6-9fa0-4e4a1d0a5bb7)

This change should ensure that the local-registry is ran first before
attempting to run the test suite.

Results:
https://github.com/nrwl/nx/actions/runs/14799474928/job/41554727471
No longer hanging.
2025-05-02 17:30:12 -04:00
Jack Hsu e30b5fa7d4 chore(repo): mark vite as cacheable (#31017)
This PR makes sure that `vite:build-base` is cacheable. It's a
long-standing issue because vite is the only package using SWC to build,
thus the `targetDefaults` using TSC is not being applied. We don't
actually need to specify the executor, as `build-base` using
`@nx/next:build` (nx-dev) and `@nx/js:swc` (vite) are both cacheable.
2025-05-02 16:48:34 -04:00
James Henry 8b3e9f7d5b fix(release): only error on missing manifestsToUpdate if a project is being directly processed (#31004) 2025-05-02 16:37:06 -04:00
Leosvel Pérez Espinosa ada3f47338 fix(vue): install @typescript-eslint/parser when generating project using it (#31008)
## Current Behavior

Vue and Nuxt projects using ESLint with flat config generate projects
using the `@typescript-eslint/parser` but don't install the package.
This can result in an error if the package has not been installed
before.

## Expected Behavior

Vue and Nuxt project generators should install the
`@typescript-eslint/parser` if they generate ESLint configuration that
uses it.

## Related Issue(s)

Fixes #
2025-05-02 16:36:41 -04:00
James Henry 49e71817f2 fix(core): ensure the terminal is restored when cloud exits (#31013) 2025-05-02 16:36:06 -04:00
Jack Hsu d57086b5ab fix(testing): ignore test outputs from playwright when linting (#31015)
Currently if Playwright runs with trace on, it'll generate `.js` files
in `test-output` folder. Trace is turned on automatically whenever a e2e
test retries, or if the user sets `trace: 'on'`, or if `--trace on` is
passed to the CLI.

These trace `.js` files are being linted, and is failing the lint task.

## Current Behavior
Lint fails when trace is on

## Expected Behavior

Lint should ignore trace files
<!-- This is the behavior we should expect with the changes in this PR
-->

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-05-02 16:35:31 -04:00
Craigory Coppola 0a4f682ef7 fix(core): tui summary should not show canceled during run-one because tasks are skipped (#31014) 2025-05-02 16:17:53 -04:00
Craigory Coppola 6e1f304898 fix(core): skip vt100 parsing if tui disabled (#31010) 2025-05-02 14:35:03 -04:00
Jason Jean 7059d6f17b chore(repo): update nx to 20.8.0-rc.2 (#31006)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

This repo uses Nx `21.0.0-rc.1`

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

This repo uses Nx `21.0.0-rc.2`

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-05-02 12:58:37 -04:00
Nicholas Cunningham 1191caa203 fix(core): remove unnecessary corepack defaults (#30992)
These defaults are unnecessary and can be removed.

<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-05-02 12:20:04 -04:00
Jack Hsu a5c104406b docs(core): add a callout that Windows support for TUI is coming soon (#31005)
This PR updates the TUI page to mention Windows support is coming soon.

Preview:
https://nx-dev-git-docs-tui-windows-nrwl.vercel.app/recipes/running-tasks/terminal-ui
2025-05-02 12:04:35 -04:00
Jack Hsu aa92b3361c fix(core): update fork task runner so it propagates exit signals (#30998)
This is a fix when using the TUI `forked process-task-runner`. The
`SIGINT` and other signals are not handled, which causes the underlying
process (in this case `run-executor`) to be left hanging.

## Current Behavior
TUI leaves processes hanging when using `forked-process-task-runner`

## Expected Behavior

TUI should kill processes
<!-- This is the behavior we should expect with the changes in this PR
-->

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-05-02 13:52:58 +00:00
James Henry ed3788fd2b fix(core): improve tui task_list bottom section responsive design (#30993) 2025-05-02 09:30:54 -04:00
James Henry 87a00da7e5 docs(core): add terminal-ui recipe (#30918) 2025-05-02 16:55:55 +04:00
Jack Hsu 3688ef58b9 chore(misc): fix npm version badge in generated readme files (#30996)
This PR fixes the badge on package readmes, e.g.
https://www.npmjs.com/package/nx.

It currently shows the latest for `@nrwl/workspace`, which is `19.8.4`,
but we should show the latest nx (`20.8.1`).
2025-05-02 08:36:30 -04:00
Leosvel Pérez Espinosa 80e6edd707 fix(testing): use correct server process reference when killing the server in the cypress preset (#30994)
## Current Behavior

Cypress e2e tasks fail when trying to kill the web server with:

```bash
TypeError: Cannot read properties of undefined (reading 'childProcess')
    at /<repo path>/node_modules/@nx/cypress/plugins/cypress-preset.js:65:30
    ...
```

## Expected Behavior

Cypress e2e tasks should not fail when trying to kill the web server.

## Related Issue(s)

Fixes #
2025-05-02 10:43:03 +00:00
Jason Jean 51168a7c38 chore(repo): update nx to 21.0.0-rc.1 (#30989)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

This repo uses Nx 21.0.0-beta.12

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

This repo uses Nx 21.0.0-rc.1

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-05-02 05:09:40 +00:00
Josh VanAllen 2db85fc8b0 docs(gradle): polish gradle docs (#30983)
Updating docs to reflect the new way approach in the gradle plugin
2025-05-01 23:44:12 -04:00
Jason Jean cd2e35d402 fix(core): run discrete tasks using batches if possible (#30991)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

Discrete tasks are not run with batches.

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

Discrete tasks are run as batches if possible.

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-05-02 03:37:47 +00:00
Jason Jean 110614da07 fix(core): fix windows native build (#30990)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

Native build is broken on Windows.

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

Native build is fixed on windows.

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-05-02 02:35:56 +00:00
Nicholas Cunningham 54cbbb9135 feat(core): add continuous option to targets for Detox, Expo, and React Native (#30988)
Adds continuous support for Detox, Expo and React Native
 
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-05-01 20:58:25 -04:00
Craigory Coppola e29909e71f fix(core): send signals when killing child process on unix (#30987)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
rspack and next do not get killed when using the tui. This appears to be
caused by them not responding correctly to SIGTERM, so we need a way to
pass signals with our `kill` call.

## Expected Behavior
We properly shutdown rspack and next servers

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-05-01 20:48:52 -04:00
Colum Ferry 5f488947dc feat(remix)!: remove deprecated static-serve target name from inferred targets (#30982)
This commit also contains various changes to ensure serve-static tasks
depend on their build.

BREAKING CHANGE: Remove deprecated static-serve target name from Remix
Inferred Tasks in favour of serve-static.
2025-05-01 18:52:57 -04:00
Nicholas Cunningham f9d461e663 feat(react-native): update executor and schema files for expo and react-native to be continuous (#30985)
WIP

<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-05-01 18:47:35 -04:00
James Henry 157a1f1168 chore(core): tui polish and tasks_list unit tests (#30972) 2025-05-01 18:42:32 -04:00
Nicholas Cunningham e013125136 fix(core): Disable the macOS job to prevent PRs from being blocked by its long runtime. (#30984)
MacOs CI job is taking a lot longer than expected and it blocks PRs
statues from being generated.

We should keep working on it so it can be re-enabled.

<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-05-01 18:39:40 -04:00
Craigory Coppola 79b89fb7a7 fix(misc)!: only provide default value for object properties if object already has value (#28838)
Defaults causing an object to be defined causes some confusing behavior
when a schema has defaults and required properties for a given object
prop. If the required prop doesn't have a default value, and another
property does, it becomes invalid to not pass the object when it would
be valid had that default not been specified.

BREAKING CHANGE: Currently if an executor's schema provides some default
values for an object's properties, those defaults cause the object to be
defined. This changes that, such that the defaults are only applied if
the object exists in the first place.

Fixes #23153
2025-05-01 20:37:50 +00:00
Jack Hsu 7b9add5582 fix(core): use process#kill instead of tree-kill for windows and macos (#30976)
Prefer `process#kill` instead of `tree-kill` for Mac and Windows. This
fixes an issue on Windows where the `taskkill` is unsuccessful.

## Current Behavior
Windows does not always run successfully

## Expected Behavior
Windows runs successfully

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-05-01 16:35:22 -04:00
MaxKless 1029ecb9fd fix(graph): make migrate ui future migration circles cleaner (#30898)
we put a lot of focus on making the migrate ui clean and easy to parse. 
The repeated icons were more distracting than valuable so let's remove
them.
2025-05-01 16:19:43 -04:00
Benjamin Cabanes 413a01159f docs(nx-dev): remove unused external script loader (#30978)
Removed the external JS script loader for a third-party B2B script as it is no longer required. This simplifies the `_app.tsx` file and avoids unnecessary script management during route changes.
2025-05-01 20:13:31 +00:00
Benjamin Cabanes a3415309b9 docs(nx-dev): add Google Tag Manager script (#30977)
Integrated Google Tag Manager (GTM) with both script and noscript tags for analytics tracking. Ensured the script uses `afterInteractive` loading strategy and includes dynamic `gaMeasurementId` for proper configuration.
2025-05-01 20:07:08 +00:00
Craigory Coppola 95652aef88 fix(core): prioritize --output-style flag over tui env vars (#30969)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-05-01 16:00:59 -04:00
Jason Jean e5dc244e66 feat(core): bump devkit support range and remove some deprecated APIs (#30840) 2025-05-01 14:48:40 -04:00
Craigory Coppola ac6d2beac0 feat(core): support reading NX_TUI_AUTO_EXIT env var (#30971)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
--tuiAutoExit doesn't support env vars

## Expected Behavior
NX_TUI_AUTO_EXIT can set --tuiAutoExit

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-05-01 14:08:28 -04:00
Craigory Coppola 958985a182 fix(core): don't display fork script path in tui (#30970)
## Current Behavior
The tui displays the path to the fork script in the pty pane

## Expected Behavior
The tui displays a command that would be "close enough" to what is being
ran in the pty pane

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-05-01 14:03:43 -04:00
Emily Xiong 3877a43a47 fix(gradle): add gradle migration to change ciTargetName (#30965)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->
this pr address comments in https://github.com/nrwl/nx/pull/30457

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
- update executor description
- use pseudo terminal when run batch command
- add an e2e test to run gradle command in batch
- add migration script to change ciTargetName to ciTestTargetName

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-05-01 13:21:39 -04:00
Colum Ferry 11ca6fc685 fix(angular): convert-to-rspack should ensure zone.js is not treated as local file (#30966)
## Current Behavior
The `@nx/angular:convert-to-rspack` relies on `require.resolve` to check
if entries listed in the `polyfills` array is an npm package.
However, in some circumstances such as generating a new app, `zone.js`
is not yet installed and therefore require.resolve will not resolve the
package.

## Expected Behavior
Ensure that `zone.js` is special cased as it is a polyfill that is
always needed to be treated as a package.
This is also the only polyfill that is set during generation of an app
and therefore is the only package that should run into this issue.
2025-05-01 13:18:32 -04:00
Juri Strumpflohner e239a15052 docs(nx-dev): write blog post about integrating Nx MCP with Nx Cloud (#30948)
adds a new blog post draft for the Nx MCP + Cloud integration.

https://nx-dev-git-blog-nx-mcp-integrates-ci-nrwl.vercel.app/blog/nx-editor-ci-llm-integration
2025-05-01 11:36:49 -04:00
Emily Xiong d13e4df147 feat(gradle): set gradle task continuous for bootRun (#30931)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->
non of the gradle tasks is set as continuous

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
set only bootRun task as continuous

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-05-01 10:47:14 -04:00
Craigory Coppola 981dd94671 chore(core): format rust code (#30954)
## Current Behavior
Rust formatting isn't checked in CI

## Expected Behavior
Rust formatting is checked in CI

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-05-01 12:49:50 +00:00
Tine Kondo d9cb931116 chore(repo): remove bun's workaround to make it work with verdaccio (#30468) 2025-05-01 12:16:25 +04:00
James Garbutt da8baa95da cleanup(misc): migrate to picomatch (#30485) 2025-05-01 11:07:06 +04:00
James Garbutt 1ab8bdbe98 cleanup(vite): migrate to picomatch (#30484) 2025-05-01 11:06:39 +04:00
James Garbutt 6d36be0d24 cleanup(vue): migrate to picomatch (#30483) 2025-05-01 11:05:48 +04:00
Prasanth Louis 0eef86ee20 docs(core): update sync-generators.md (#30812) 2025-05-01 11:04:30 +04:00
Mahtis Michel 545405ac26 chore(nx): fixed typo (#30941) 2025-05-01 11:03:30 +04:00
Nicholas Cunningham 28ddb8e9e7 feat(core)!: drop support for node versions prior to 20.19.0 (#30818)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

BREAKING CHANGE: We are updating our minimum node version to `20.19.0`
which drops support for all prior versions.

---------

Co-authored-by: Jack Hsu <jack.hsu@gmail.com>
2025-05-01 02:13:50 -04:00
Jason Jean 06873bba25 chore(repo): update nx to 21.0.0-beta.11 (#30959)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

This repo uses Nx `21.0.0-beta.10`

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

This repo uses Nx `21.0.0-beta.11`

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-05-01 03:30:53 +00:00
Jack Hsu 8f503581b6 fix(react): migration for babel supports configs that do not use @nx/react/babel (#30962)
This PR fixes an issue where the updated `.babelrc` is undefined if the
`@nx/react/babel` preset is missing.
2025-04-30 22:04:27 -04:00
Craigory Coppola 5222a067b4 feat(core): disable tui when output style is set to an incompatible style (#30873) 2025-05-01 01:00:46 +00:00
Jason Jean 912a257982 fix(core): return results after NodeChildProcessWithNonDirectOutput has already exited (#30943)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

For some mysterious reason, calling `getResults` after killing a
continuous task causes the DTE agent process.. to exit.

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

For some mysterious reason, allowing `getResults` to return results
after the Task has completed fixes the DTE agent process exiting.

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-05-01 00:25:22 +00:00
Craigory Coppola 91f5249fbf fix(core): error when restoring http cache with no outputs (#30961) 2025-05-01 00:19:45 +00:00
Craigory Coppola cf81286421 fix(core): include nx version in native file cache (#30963)
## Current Behavior
The native file cache doesn't check NX_VERSION when determining its key

## Expected Behavior
The native cache is invalidated when updating Nx

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #30940
Fixes #29184
2025-04-30 23:58:52 +00:00
Jason Jean fa92c4025e fix(core): fix terminal output for non-tui (#30957)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

vt100 does not work for non TUI

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

do not use vt100 for printing to stdout. vt100 is still used for the TUI
terminal panes.

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-04-30 18:43:01 -04:00
James Henry 0f4c085297 chore(core): add tui layout manager (#30947) 2025-05-01 01:43:11 +04:00
Juri d6ea3ab45f fix(nx-dev): update blog posts with avif cover images 2025-04-30 23:12:17 +02:00
Juri 5651270b33 feat(nx-dev): add conformance rule to verify blog post cover images 2025-04-30 23:12:17 +02:00
Jacob Ley 6610f3d632 fix(core)!: respect packageManager field in package.json when detecting version (#29249)
Attept to read package manager version from config before invoking
package manager CLI

BREAK CHANGE: If you have a mismatch between the `packageManager` field
in `package.json` and the actual version installed in the environment,
it may lead to unexpected behavior when installing. This should not be a
problem if you are using corepack already.

## Related Issue(s)
https://github.com/nrwl/nx/issues/29244

---------

Co-authored-by: Jack Hsu <jack.hsu@gmail.com>
2025-04-30 16:59:24 -04:00
Craigory Coppola d89b7743c6 chore(repo): cleanup nx setup around lint-lockfile (#30861) 2025-04-30 14:34:49 -04:00
Jason Jean 7a62c7374b fix(core): fix logging when directory does not exist (#30944) 2025-04-30 14:34:36 -04:00
Jack Hsu 766d1b32e0 docs(misc): remove installation instructions for Nx < 18 (#30950)
This PR removes installation instructions for Nx < 18 since it has
fallen out of support window. Users can always `npm install <plugin>` as
usual if they are on an unsupported Nx version, but the docs will assume
`nx add` moving forward.

The changes are on the plugin overview page:
https://nx-dev-git-docs-remove-nx-pre-18-install-nrwl.vercel.app/nx-api
2025-04-30 14:34:28 -04:00
Benjamin Cabanes cdbd97e98e docs(nx-dev): disable display of webinar banner (#30951)
Commented out the `WebinarNotifier` in `_app.tsx` and removed the live event banner in the `hero.tsx` component.
2025-04-30 13:34:51 -04:00
Craigory Coppola d1f5a570f9 chore(repo): bump @monodon/rust to latest (#30928)
## Current Behavior
`@monodon/rust` is outdated

## Expected Behavior
`@monodon/rust` is updated

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #

Co-authored-by: Jason Jean <jasonjean1993@gmail.com>
2025-04-30 13:13:14 -04:00
Craigory Coppola e273dec53f chore(repo): adjust concurrency to use unique groups for push events (#30946) 2025-04-30 12:50:10 -04:00
Benjamin Cabanes bd27fb00f3 docs(nx-dev): normalize casing in text for consistency (#30945)
Updated "Learn more" to "learn more" and "SOC-2" to "SOC 2" to ensure uniform text formatting and alignment with standard practices.
2025-04-30 12:46:28 -04:00
Edouard Maleix 1d1d32c0f1 chore(core): nx plugin submission @getlarge/nx-node-sea plugin (#30323)
# Community Plugin Submission

## @getlarge/nx-node-sea
2025-04-30 12:28:14 -04:00
Craigory Coppola 8f2c11c9ee fix(core): dont cache default plugins as all plugins if loading plugins fails (#30927) 2025-04-30 15:54:58 +00:00
Jack Hsu dcef5c7cf2 feat(graph): show next steps for successful migrations (#30934)
This PR updates Migration UI to display "next steps" when they are
provided by a migration. This works by writing `nextSteps` into the Nx
Console meta in `migrations.json`.

If the `nextSteps` is missing or it's empty, then nothing will be shown.

<img width="1555" alt="Screenshot 2025-04-29 at 5 16 49 PM"
src="https://github.com/user-attachments/assets/88491632-9b33-421a-887a-b6fbb5676098"
/>

See: https://www.loom.com/share/c0a4a7dce9df46b5b023fce5e0a3bd2f
2025-04-30 08:16:30 -04:00
James Henry 9dcab79b10 feat(release)!: support gitlab releases (#30802) 2025-04-30 12:41:03 +04:00
Jason Jean d5a1918eb6 fix(core): write keybindings with control to terminal panes in intera… (#30938)
…ctive mode

<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

Ctrl Keybindings are not sent to terminal panes when it's interactive
mode, only single key presses are sent.

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

Ctrl Keybindings are sent to the terminal panes when it is in
interactive mode. This means that editors like `nano` and `nvim`
somewhat work in interactive mode. The rendering is still broken right
now but the keypresses work.

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-04-30 12:36:23 +04:00
Leosvel Pérez Espinosa e75eeabac5 cleanup(angular): update ng-packagr nested import paths (#30897)
Update the nested import paths from `ng-packagr` to handle the different
paths in the upcoming Angular v20.

We must update and release `@nx/angular` and update the Nx repo with the
new version to handle the path changes in the upcoming `ng-packagr` v20
before updating the version in the Angular v20 branch. Otherwise, a
compilation error is thrown when building the v20 branch because the
installed `@nx/angular` version does not support the new paths needed in
`ng-packagr` v20.
2025-04-30 10:28:11 +02:00
Jason Jean 07b881d9ed fix(core): kill child processes when pseudo terminal shutsdown (#30935)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

The PseudoTerminal does not kill it's child processes when it shuts
down.

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

The PseudoTerminal will kill it's child processes when it shuts down.

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-04-29 20:58:36 -04:00
Jason Jean 94803fbf53 chore(module-federation): disable test that is causing agents to run … (#30936)
…out of memory

<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

Many pipelines are stuck because this task is causing agents to run out
of memory.

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

This test is disabled so that pipelines can complete.

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-04-29 23:30:37 +00:00
Jason Jean 84c4dc55d2 fix(core): throw errors when task graph has invalid continuous tasks (#30924)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

1. The continuous property is not present in the nx.json schema.
2. When tasks which do not support parallelism depend on a continuous
task, task execution is deadlocked.
3. Circular dependencies between continuous dependencies are allowed.

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

1. The continuous property is added to the nx.json schema.
2. An error is thrown when tasks which do not support parallelism
depends on a continuous task.
3. Circular dependencies between continuous tasks are caught and thrown
as an error.

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-04-29 18:51:52 -04:00
Craigory Coppola 15d20f925c chore(repo): move concurrency check and add debug logs (#30929)
Concurrency still isn't quite right
2025-04-29 17:10:32 -04:00
Jack Hsu 6451f66492 Revert "feat(graph): show next steps for successful migrations" (#30933)
This reverts commit 307c45542a.

<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-04-29 17:09:19 -04:00
Emily Xiong 624f0359e3 feat(gradle): add batch runner (#30457)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

Gradle tasks are run by invoking the Gradle CLI

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

Gradle tasks are run through the Gradle Tooling API and is more
performant.

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #

---------

Co-authored-by: Jason Jean <jasonjean1993@gmail.com>
2025-04-29 16:57:16 -04:00
Colum Ferry 57724d3df9 feat(nuxt): enable continuous tasks (#30925)
## Current Behavior
The tasks inferred by the `@nx/nuxt/plugin` do not set `continuous:true`
for serve-like tasks.

## Expected Behavior
The tasks should be correctly inferred with `continuous:true`.
2025-04-29 16:44:00 -04:00
Jack Hsu 307c45542a feat(graph): show next steps for successful migrations 2025-04-29 16:29:52 -04:00
Jack Hsu 13f57d6c04 docs(core): add continuous task to task pipeline and project config pages (#30919)
This PR adds information about `continuous` option for tasks. Also
removes references to Nx <16 examples on the project configuration page.

**Preview:**
-
https://nx-dev-git-docs-continuous-tasks-nrwl.vercel.app/recipes/running-tasks/defining-task-pipeline#continuous-task-dependencies
- Add a section on continuous task and links to the project
configuration reference page (below)
-
https://nx-dev-git-docs-continuous-tasks-nrwl.vercel.app/reference/project-configuration#continuous
- Add section on continuous task with example of `e2e -> serve`
dependency
- Add a callout on `dependsOn` section for continuous/long-running tasks
(long-running is mentioned so it appears in the search)
  - Remove Nx <16 examples

**TODO:**
- [x] Update PDV that show e2e and serve targets
2025-04-29 15:44:05 -04:00
Benjamin Cabanes 5fc641012d docs(nx-dev): add nx cloud logos (#30926)
This commit introduces new SVG files with single color for Nx Cloud.
2025-04-29 15:28:23 -04:00
Benjamin Cabanes b3e7eee063 docs(nx-dev): add nx cloud logo (#30922)
This commit introduces a new SVG file, `nx-cloud-full.svg`, to the favicon directory.
2025-04-29 14:34:51 -04:00
Isaac Mann 13ebf4359a docs(core): tutorial preview bug (#30903)
- Fix tutorial bug with the preview pane
- Bump Nx version to 20.8 for all 3 tutorials
2025-04-29 13:49:03 -04:00
Jason Jean c1d375883f chore(repo): update nx to 21.0.0-beta.10 (#30906)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

This repo uses Nx 21.0.0-beta.8.

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

This repo uses Nx 21.0.0-beta.10

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-04-29 13:32:48 -04:00
Leosvel Pérez Espinosa f39c1f991e cleanup(linter): deprecate the Linter enum (#30875)
Properly deprecate the `Linter` enum in favor of the `LinterType` union
type and remove unneeded internal usages.
2025-04-29 12:39:36 -04:00
Benjamin Cabanes 8028eea824 docs(nx-dev): add NX Cloud favicon (#30921)
Introduce a new favicon specifically for NX Cloud in SVG format.
2025-04-29 12:09:49 -04:00
Leosvel Pérez Espinosa 8d0c7f6349 feat(testing): remove tsConfig and copyFiles options from the @nx/cypress:cypress executor (#30870)
Removes the previously deprecated and unused `tsConfig` and `copyFiles`
options from the `@nx/cypress:cypress` executor.

BREAKING CHANGE: The previously deprecated and unused `tsConfig` and
`copyFiles` options from the `@nx/cypress:cypress` executor were
removed.
2025-04-29 11:12:47 -04:00
Leosvel Pérez Espinosa 9ae691ede8 feat(testing): remove tsConfig option from the @nx/jest:jest executor (#30888)
Removes the previously deprecated and unused `tsConfig` option from the
`@nx/jest:jest` executor.

BREAKING CHANGE: The previously deprecated and unused `tsConfig` option
from the `@nx/jest:jest` executor was removed.
2025-04-29 11:08:59 -04:00
Craigory Coppola c8d89e2f2a feat(core)!: remove legacy cache flag from nx.json (#30787) 2025-04-29 10:39:36 -04:00
Louie Weng 4cca2ba062 docs(nx-cloud): address typos in assignment rules docs (#30901)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

1. remove unnecessary references to `runs-on`
2. fix ordering of rule precedence example so that it matches the
explanatory paragraph
3. modify the matrix github actions example so that agents of different
types do not have the same name

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-04-29 14:11:35 +00:00
Craigory Coppola 4b9eab994a fix(core): tui summary should handle in progress tasks properly (#30905)
## Current Behavior
When running via run-many failures that include a continuous task are
indicated as a cancellation on the tui summary

## Expected Behavior
Failures that run to completion are not cancelled, and should be
displayed as a failure

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-04-29 10:00:54 -04:00
Jack Hsu 147d0e1345 chore(js): bump some v21 removal to v22 (#30911)
This PR bumps two v21 removals to v22:
1. SWC inline feature -- some people still use it even though it's
experimental. We should rethink how to remove this.
2. Cypress component testing not relying on `@nx/webpack:webpack`
executor -- we need a separate `webpack.cy.config.js` that only
configures the plugins needed Cypress CT.

This PR also keeps the Webpack plugin exports of `@nx/react` and
`@nx/webpack` packages. The `convert-to-inferred` and app generators
have been using the `@nx/react/webpack-plugin` and
`@nx/webpack/app-plugin` already for a while, there's no harm to keep
the exports in the index for older projects if they haven't been
updated.
2025-04-29 09:58:06 -04:00
Jack Hsu e1b56f7c0a feat(webpack): remove isolatedConfig option for @nx/webpack:webpack (#30910)
This PR removes the `isolatedConfig` option that has been deprecated
since v17. Back when it was deprecated, we had a migration to remove the
option and set `webpackConfig` with a generate config file that matches
the executor's built-in behavior. Now that we're removing the option, a
similar migration is added to generate the config files for any projects
that skipped the migration the first time.
2025-04-29 09:57:24 -04:00
Jack Hsu e21c1a6010 feat(react): replace deprecated babel classProperties.loose option in .babelrc files (#30912)
This PR updates all `.babelrc` file that still uses the deprecated
`classProperties.loose` (deprecated since v18). The top-level `loose`
option does the same thing -- previously the two options handled
different cases because `@babel/preset-env` did not include class
properties.
2025-04-29 09:57:16 -04:00
Jack Hsu 9234fb30a6 feat(react): undeprecate svgr option for Next.js apps since --turbo supports it (#30909)
This PR delays deprecation of `svgr` for `@nx/next`, as Turbopack
supports it now.

This PR also deprecates all SVGR support for v22. It is not a well-used
feature, and the webpack plugin is not maintained. We'll ensure in v22
to add the SVGR webpack plugin to userland configs, but we'll not
maintain it ourselves moving forward.

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-04-29 08:44:21 -04:00
Jason Jean cf4a1f35e9 chore(repo): make local-registry continuous (#30789)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

No continuous tasks are used in CI.

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

The local-registry is a continuous task and it is used in CI.

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-04-28 20:45:34 -04:00
Benjamin Cabanes a3a17531d0 docs(nx-dev): update remote cache page (#30902)
Updates texts and remote cache UI with "recommended" label.
2025-04-28 16:20:17 -04:00
Craigory Coppola eb54b1d249 feat(core)!: drop support for create nodes v1 in favor of only calling create nodes v2 (#30616) 2025-04-28 15:47:44 -04:00
Emily Xiong bb8c727681 chore(gradle): disable gradle import (#30900)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->
gradle import e2e failed from time to time. i think it is flaky test
because it passed before.

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
disable this e2e test for now. will enable it later.

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-04-28 12:21:56 -04:00
Jason Jean 87e5e6bef8 fix(core): properly print errors coming from js when tui is enabled (#30885)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

When the TUI is enabled, JS errors during task running cause the process
to exit without printing out information about the error and also leave
the terminal in a broken state.

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

JS errors are printed before the process exits and the terminal is
restored to a good state.

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-04-28 11:58:59 -04:00
Jason Jean 2c8aba2fc2 feat(core): add enter and q keybindings (#30786)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

The TUI is missing some standard keybindings:

Q to quit
Enter to show task output

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

Q now triggers a confirmation to exit. Because Q is close to 1, users
might often accidentally hit Q so this gives them a chance to cancel the
exit.
Enter will show the task output.

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-04-28 10:40:34 -04:00
Jason Jean 85bc540a15 fix(core): quick fix to support trailing commas when reading hoisted … (#29436)
…versions

<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

Graph fails when there is a trailing comma in a package.json

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

Graph does not fail and works when there is a trailing comma in a
package.json

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-04-27 00:12:44 +00:00
François da4f55bca3 fix: check if dependencies & devDependencies exist before deleting dep (#30224)
## Current Behavior
`removeDependenciesFromPackageJson` tries to delete dep from `undefined`
if there is no `dependencies` or `devDependencies` in package.json

## Expected Behavior
First check if `dependencies` or `devDependencies` exists

## Related Issue(s)
Fixes #30222

Co-authored-by: Jason Jean <jasonjean1993@gmail.com>
2025-04-25 23:42:31 +00:00
Jack Hsu bde7315b0f docs(graph): update Migrate UI docs and link from the feature page (#30881)
This PR updates the Migrate UI recipe to match the experience.
Screenshots are added to provide previews of what it looks like prior to
users trying, and also makes the recipe easier to follow.

Future: It would be great to have a short video going over the process
rather than just text and screenshots. This is good enough for first
iteration, and we'll do a follow up on this.

Preview:
https://nx-dev-git-docs-migrate-ui-nrwl.vercel.app/recipes/nx-console/console-migrate-ui
Also updates:
https://nx-dev-git-docs-migrate-ui-nrwl.vercel.app/features/automate-updating-dependencies
2025-04-25 16:52:01 -04:00
Jack Hsu 0dc4dbf499 feat(graph): add undo migration option when one is pending approval (#30878)
This PR adds a button for user to undo a migration that's already been
applied and pending approval.

See: https://www.loom.com/share/97286bdc80ea4538af76a914ef8f0f8b

Also, fixes an existing issue where `migrations.json` did not record the
correct git sha for each commit.


## Current Behavior
When a migration is pending approval, the only option is to accept it.

## Expected Behavior
Allow user to undo a migration if they don't want the changes.

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-04-25 16:20:17 -04:00
Benjamin Cabanes 3b0c456bbe docs(nx-dev): add enterprise security page (#30852)
Introduce a new enterprise security page highlighting key features like cache poisoning protection, CI access, and personal access control.
2025-04-25 15:22:02 -04:00
Jason Jean 73da211694 feat(misc): remove migrations prior to v19 in preparation for v21 (#30839)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

Users migrating from Nx 17 can go up to Nx 20. 

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

Users migrating from Nx 19 can go up to Nx 21. Users migrating from Nx
17 or 18 should go to Nx 19 first.. then go to Nx 21.

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-04-25 15:06:02 -04:00
Craigory Coppola c17d43c6a4 fix(repo): don't cancel running jobs on master when new branch merged (#30871) 2025-04-25 14:01:18 -04:00
Craigory Coppola c21b606120 fix(core): error message when failing to fetch migrations is no good (#30874)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
We error when failing to find a package version via the install step,
but meant to warn. Additionally, the warning is hard to see.

## Expected Behavior
We don't error when failing to install the package, but the warning is
more visible.

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-04-25 13:40:10 -04:00
Jonathan Cammisuli 2f739e9fbf fix(core): do not clone screen on every render loop of the TUI (#30872)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->
Everytime the TUI is rendered with a terminal pane opened, we clone the
screen. This cloning is resource intensive as we would be creating a new
screen every couple of milliseconds.
 
## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
This has changes so that we can pass a reference to the screen to be
used in places where its needed. This avoids the cloning the screen.

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-04-25 17:25:53 +00:00
Jason Jean 8214ab49f2 chore(repo): assign proper outputs to build targets (#30865)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

`nx:build` cannot be run in parallel with any other tasks. It was an
improper fix for an issue we were facing in our task graph. This is also
not workable if any continuous tasks are running.. which I want
`local-registry` to be running while things are built.

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

The proper outputs are set on `build` targets. Most of them only need
`README.md` as the output. `nx`, `create-nx-workspace`, and
`create-nx-plugin` are different and need a few more files.

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-04-25 13:23:44 -04:00
Leosvel Pérez Espinosa 840aef802f feat(core): remove deprecated readWorkspaceConfig (#30868)
Remove the deprecated function `readWorkspaceConfig` from
`@nx/workspace`.

BREAKING CHANGE: The previously deprecated `readWorkspaceConfig`
function from `@nx/workspace` was removed.
2025-04-25 15:28:37 +00:00
Hyun Don Moon 858eb69207 docs(misc): fix typo in microfrontend architecture article (#29911)
## Current Behavior
There's a typo in the [microfrontend architecture
article](https://nx.dev/concepts/module-federation/micro-frontend-architecture#shared-libraries)
under the "Shared Libraries" section.

`The default the Nx setup configures`

## Expected Behavior
Should be `The default Nx setup configures`

Fixes #
2025-04-25 11:02:41 -04:00
Petr Plenkov cb5e7a24be docs(core): declarationMaps -> declarationMap typo fix (#29981)
Just fixing a typo in a docs.

declarationMaps ->
[declarationMap](https://www.typescriptlang.org/tsconfig/#declarationMap)
2025-04-25 11:01:48 -04:00
Colum Ferry 0c63624407 fix(module-federation): check the remote project targets for buildTarget to use #30808 (#30867)
## Current Behavior
Module Federation collectRemotes util looks for a hardcoded `build`
target.

## Expected Behavior
Read the remote's targets and find the correct `buildTarget` option for
the module-federation-dev-server to use

## Related Issue(s)

Fixes #30808
2025-04-25 16:00:00 +01:00
Yong-Yuan Chen 7affa87af9 docs(nx-dev): fix typo to prevent misleading the definition of production (#30244)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->
A small typo to make reader misunderstand the definition of `production`
## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-04-25 10:40:51 -04:00
James Henry c0426c1b35 fix(release): ensure versionData is always populated even when no bumps (#30866) 2025-04-25 09:13:37 -04:00
Leosvel Pérez Espinosa 73077fec66 feat(core): remove usage of cli property from migration definitions (#30855)
Removes the usage of the `cli` property from migration definitions.

BREAKING CHANGE: The `cli` property from migration generator definitions
is no longer used. The CLI to run the migration generator will be
identified based on whether the definition is contained in `generators`
(Nx) or `schematics` (Angular CLI).
2025-04-25 09:13:01 -04:00
Leosvel Pérez Espinosa c0aa245d9c feat(testing): remove deprecated getJestProjects (#30844)
Remove the deprecated function `getJestProjects`.

BREAKING CHANGE: The previously deprecated `getJestProjects` function
was removed in favor of `getJestProjectsAsync`.
2025-04-25 09:12:13 -04:00
Thomas Dekiere 69ea6327d3 fix(release): ensure generatorOptions and rootVersionActionsOptions are passed to updateLockfile function (#30796) 2025-04-25 12:41:03 +00:00
Miroslav Jonaš cd55dfcb3e feat(linter): add support for package based secondary entry points (#30809)
This PR adds support for package.json based secondary entry points and
implements fix for situation when package imports base entry point as
dynamic dependency and secondary entry point as static dependency.

## Current Behavior
When the package is imported from itself, check for a secondary entry
point checks only Angular-style secondary entry points.

When package is importing from the same library as dynamic import from
root and static import from secondary entry point we still get linter
errror.

## Expected Behavior
Check for secondary entry points should also support standard
package.json-based entry points.

Importing from the same library as dynamic import from root and static
import from secondary entry point should be allowed.

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #18552
2025-04-25 14:31:33 +02:00
Jason Jean dda740fd2d fix(core): handle skipped tasks and trigger finished state (#30864)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

When tasks are skipped due to a dependent task's failure, the TUI does
not recognize that the command is concluded and leaves the user in a
confusing state where Nx seems like it is still waiting for tasks.

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

When tasks are skipped due to a dependent task's failure, the TUI shows
that the command has concluded.

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-04-25 12:15:43 +00:00
Colum Ferry a65f0f421b feat(rspack): use custom WriteIndexHtmlPlugin to handle variable interpolation (#30805)
## Current Behavior
The `HtmlRspackPlugin` does not support interpolation of %VAR% in the
index.html.
This is supported with a custom Webpack Plugin for `@nx/webpack` for
generating index.html files.

## Expected Behavior
The `@nx/rspack` plugin should support the same feature set as webpack
for seamless migration.
Add a new `WriteIndexHtmlPlugin` for Rspack to support this.
It should only be used when `useLegacyHtmlPlugin` is set to true
2025-04-25 09:58:21 +01:00
Jason Jean 851196aaa5 chore(repo): update nx to 21.0.0-beta.8 (#30863)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

This repo is using Nx `21.0.0-beta.7`

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

This repo is using Nx `21.0.0-beta.8`

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-04-25 00:16:20 -04:00
James Henry ee097a8e10 feat(release)!: useLegacyVersioning is false by default, migrate config (#30838)
This PR updates `nx release` to use the revamped versioning
implementation by default. It also updates and adds relevant
documentation, and provides an automated migration for the new
configuration structure.

For anyone exclusively versioning TS/JS packages, there should be no
real difference to your experience (although a number of bugs have been
fixed and new features around updating multiple `package.json` files at
once are now available to you with this change).

For the lifecycle of Nx v21, `release.version.useLegacyVersioning` will
remain as a option that can be set to `true` to revert to the old
behavior and configuration structure.

NOTE: This should only be a temporary solution, for example if one of
the plugins you use does provide a `VersionActions` based versioning
implementation yet. The option and legacy implementation will be removed
entirely in Nx v22 (in ~6 months).

BREAKING CHANGE:

**⚠️ For any early adopters of `VersionActions` in Nx 20.8 when it was
opt-in, there are breaking changes to the abstract class here as well.**

`manifestRootsToUpdate` has gone from `string[]` to `manifestsToUpdate:
{ manifestPath: string; preserveLocalDependencyProtocols: boolean; }[]`
to support controlling the local dependency updates per manifest in
order to support advanced source vs dist scenarios, and correspondingly
`isLocalDependencyProtocol` has been removed from the abstract class and
the method will no longer be called from the core logic. It should be
thought of as an implementation detail of `updateProjectDependencies`
instead.
2025-04-24 22:09:38 -04:00
Jason Jean 053fc67e90 fix(core): ensure task environments are processed properly in dte (#30862)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

The new DTE APIs are missing a few things related to task environments.
Firstly, even though it processes task envs.. they are not stored on the
`processedTasks` map. Thus, the task env is not actually used to run
tasks. Secondly, some environment variables are not set during dte..
which used to.

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

The.2 things that are missing are now back. The map is populated with
the task envs and the environment variables are set based on the args.

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-04-24 20:08:34 -04:00
Craigory Coppola 4323302188 chore(repo): set concurrency group for macos (#30858)
## Current Behavior
macos ci runs are not cancelled on new CI push

## Expected Behavior
macos ci runs are cancelled on new CI push

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-04-24 18:20:23 -04:00
Jack Hsu 8397a95a7e fix(graph): disable primary CTA for Migrate UI when approval is required first (#30836)
This PR updates the Migrate UI such that the primary CTA always performs
an action. Previously, when there is a migration to approve, the primary
CTA says `Run Migrations`, but clicking it does nothing since we're
already in the middle of running migrations.

<img width="1093" alt="Screenshot 2025-04-23 at 9 36 05 AM"
src="https://github.com/user-attachments/assets/4d55e3d0-d16b-4c4b-9b16-551690be60ab"
/>

Now, with this PR, the primary CTA will be disabled and tell the user to
approve the current migration before continuing.

## Current Behavior
Primary CTA in Migrate UI does nothing when there is a migration to
approve

## Expected Behavior
Primary CTA should reflect the current action that the user must take,
in this case to approve the migration

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #

---------

Co-authored-by: Nicholas Cunningham <ndcunningham@gmail.com>
2025-04-24 17:31:13 -04:00
Jason Jean 4254c4bcce feat(core): allow executors to specify if they are continuous (#30821)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

The only way to set if a task is continuous is either directly in
`project.json` or via Project Graph Plugins.

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

Executors know if they are definitely continuous or not. Plenty of
existing continuous tasks are using executors. Executors are now able to
define if they are continuous in their `schema.json` files. Thus,
existing tasks configured with certain executors will automatically
become continuous.

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-04-24 16:41:17 -04:00
Jason Jean eb5138e858 fix(core): add continuous to the project.json schema (#30853)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

The `project.json` schema is missing `continuous`.

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

The `project.json` schema has `continuous` defined.

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-04-24 15:53:54 -04:00
Jason Jean 5fb9def379 chore(repo): ensure nx build does not run with other tasks (#30857)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

`nx:build` has `build/packages/nx` as an output. At the same time,
`build-base` tasks which depend on Nx.. are compiling based on
`build/pacakges/nx`. When `nx:build` is being restored from cache..
`build/packages/nx` gets deleted.. and then restored. While it is
deleted, `tsc` tasks are unable to find modules from `nx`.

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

This isn't necessarily the correct solution, but `nx:build` will no
longer support parallelism ensuring that it does not get restored from
the cache while other `build-base` `tsc` tasks are running. The proper
fix is to fix the outputs of `nx:build` to be more specific about the
files that it is actually modifying.

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-04-24 14:19:57 -04:00
Nicholas Cunningham 939cc732de fix(module-federation): remove disabling runtimeChunk (#30637)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->
When using Module Federation with an app that defines styles as a
separate entry point, HMR fails to update in the browser. Instead of
updating automatically, a warning is shown in the console related to a
missing chunk. A full-page reload is typically required, which is not
the intended behaviour.


## Expected Behavior
<!-- This is the behaviour we should expect with the changes in this PR
-->
HMR should work with styles as an entrypoint.

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->
The default is for `runtimeChunk` is `config.optimization.runtimeChunk =
{name: 'runtime'}` it is _not_ the same as `single` but the naming will
be the same.

Fixes #9582
2025-04-24 12:08:35 -06:00
Jason Jean 581291ced2 chore(repo): update nx to 21.0.0-beta.7 (#30845)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

This repo uses Nx `21.0.0-beta.6`

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

This repo uses Nx `21.0.0-beta.7`

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-04-24 11:42:29 -04:00
MaxKless ceddd44b8e fix(gradle): make sure v1 hash file is named differently to prevent compatability errors (#30846) 2025-04-24 16:57:32 +02:00
Benjamin Cabanes abd40db6bf docs(nx-dev): remove deprecated RFC references & update link (#30849)
Removed outdated references to RFC #30548 in FAQ and remote cache solutions components. Updated the link to point to the relevant documentation on building a custom caching server.
2025-04-24 14:44:49 +00:00
Benjamin Cabanes 1413abcff3 docs(nx-cloud): remove redundant max-lg rounded styles from CI cards (#30847)
The `max-lg` rounded styles were unnecessary as they were being overridden by `lg` styles.
2025-04-24 10:36:07 -04:00
Craigory Coppola 2961bce152 feat(core): add flaky task detection to tui summary (#30835)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
Flaky tasks are only shown when not using the tui

## Expected Behavior
Flaky tasks are printed at the end of the summary view
<img width="1053" alt="image"
src="https://github.com/user-attachments/assets/4b068a52-72c3-415e-af91-481c12bb3f12"
/>

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-04-24 01:14:05 -04:00
Jason Jean e23b25fcaf chore(repo): disable failing gradle test (#30841) 2025-04-23 21:09:17 -04:00
Jason Jean f40d015488 chore(repo): update nx to 21.0.0-beta.6 (#30837)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

This repo uses Nx `21.0.0-beta.4`

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

This repo uses Nx `21.0.0-beta.6`

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-04-23 17:41:33 -04:00
Jason Jean 2e1896e9f7 feat(core): stream task output for all tasks except for direct output… (#30822)
… tasks

<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

Currently, only running tasks which are a PseudoTTYProcess stream
outputs to the TUI.

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

Most running tasks have `onOutput` even if they are not a
`PseudoTTYProcess`. This method is used to stream outputs to the TUI.
The only sort of running task which does not have this `onOutput` are
tasks with direct output... Those remain unhandled.. for now.

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-04-23 17:41:14 -04:00
Isaac Mann 0e16f98c27 feat(nx-dev): tutorial landing page and improvements (#30757)
Updates the online tutorial experience

- Adds a landing page at
[/tutorials](https://nx-dev-git-docs-tutorial-landing-page-nrwl.vercel.app/tutorials)
- Terminal code blocks get a "run in terminal" button
- Code blocks get an "Apply file changes" button
- The apply file changes button currently only works for code blocks
that are showing the new file results (not showing the old file with
lines marked for deletion). There is nothing technical blocking this,
just time.
- Previous and next buttons do not go between tutorials
- The preview panel can be completely minimized
- Git is stubbed out
2025-04-23 15:08:51 -04:00
Altan Stalker 53ef31e18f fix(core): allow disabling output streaming with NX_STREAM_OUTPUT (#30834)
Previously NX_STREAM_OUTPUT only influenced the streaming behavior if it
were set to 'true', this ensures the negated case is also handled
2025-04-23 18:39:26 +00:00
Altan Stalker e70f64b290 chore(core): enable output flag for cloud (#30833)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
Flag not on

## Expected Behavior
Flag on

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-04-23 17:38:41 +00:00
Emily Xiong b377c96d99 feat(java): add gradle kotlin plugin (#29464)
- [x] change init to create `createNodes` instead
- [x] unit tests
- [x] test-ci
- [x] test on windows
- [x] help metadata
- [x] external nodes

TODO:
- add publish executor?
- publish to maven central?

<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->
currently, it uses [project report
plugin](https://docs.gradle.org/current/userguide/project_report_plugin.html).
- pro: no need to maintain this plugin
- con: this plugin gives limited information

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
change the project report plugin to @nxn/gradle/plugin-v1
now the @nx/gradle plugin will use project graph plugin
(dev.nx.gradle.project-graph) created in this pr.
this plugin will create json file that is exactly what nx project grpah
expected.

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-04-23 13:13:25 -04:00
Nicholas Cunningham 296f326b94 docs(nx-dev): fix node support matrix (#30829) 2025-04-23 20:34:17 +04:00
James Henry 8c4e8105e2 chore(core): add maxRetries to temp-fs cleanup (#30828) 2025-04-23 12:00:55 -04:00
Jack Hsu 121a42a417 fix(js): remove check that ts plugin is used for ts sync generator (#30743)
This PR ensures that when `@nx/js/typescript` is not used, we do not add
`@nx/js:typescript-sync` sync generator to targets such as build, serve,
etc.

It resolves issues where `nx init` into a repo that is compatible with
TS solution will add the sync generator, even if the plugin is unused.
It leads to errors everytime users run a task like build. The error is
like this:

```
[@nx/js:typescript-sync] The `@nx/js/typescript` plugin is not registered

...

> Would you like to ignore the sync failures and continue running the task?
Yes
No
```

It makes it confusing for users, especially new users that don't know
what sync generators are. They will always run into the error and have
to choose to continue despite the failure.

**Note:** In a future follow-up, we could consider adding better info
and prompts so we can let users know that Nx also helps keep workspace
up to date, and can learn more about it.

## Current Behavior
Users see an error when running `nx add @nx/vite` and then `nx build
<project>`.

## Expected Behavior


## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-04-23 08:10:00 -04:00
Juri d506c727d3 docs(nx-dev): add JPG version of hero img for social media 2025-04-23 12:00:54 +02:00
Juri Strumpflohner b11124a40d docs(nx-dev): some adjustments to the test splitting article (#30823)
quick updates to an upcomign blog post:
https://nx-dev-git-blog-fix-splitting-techniques-article-nrwl.vercel.app/blog/test-splitting-techniques
2025-04-23 10:27:21 +02:00
Jason Jean 16fc5517f0 fix(core): fix issue with summary missing outputs (#30819)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

Some tasks end but don't have their terminal outputs printed. When that
is the case, an error occurred where task terminal output was attempted
to be printed but did not exist.

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

Tracking terminal outputs is restored to being part of printing task
terminal output.. and printing task terminal output is guaranteed when
pseudo terminal is used.

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-04-22 21:47:42 -04:00
Jason Jean 59d92af548 fix(core): wait for exit before getting terminal output (#30816)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

An error is occurring where it cannot find the terminal output for a
task. Turns out this is because it is trying to get terminal output
basically immediately after the task has started instead of after it has
exited.

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

Terminal output is retrieved after the task has exited. At this point,
terminal output is available.

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-04-22 21:43:38 -04:00
Colum Ferry 745abdaecf fix(angular): convert-to-rspack correctly migrating existing custom webpack configs (#30778)
## Current Behavior
The `createConfig` helper from `@nx/angular-rspack` became an async
function.
This meant that the handling of custom webpack configs in the migration
done by `convert-to-rspack` was incorrect.

## Expected Behavior
Ensure the migration is handled correctly.
Ensure that Module Federation migrations work correctly.

## Related Issues
Fixes https://github.com/nrwl/angular-rspack/issues/53
2025-04-22 15:54:51 +01:00
Nicholas Cunningham 3f2a40ffec chore(rspack): update convert inferred generator description (#30799)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->
Currently, the `convert-to-inferred` generator description inside the
rspack package references Webpack when it should reference Rspack
instead.

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
The `convert-to-inferred` generator description should reference Rspack
instead of Webpack.

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes
2025-04-22 08:12:24 -06:00
Jason Jean 4e68270efd feat(core): clean up unneeded continuous tasks after tasks are done (#30746)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

Continuous tasks go until the process is done.

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

Continuous tasks are cleaned up after they're no longer needed. AKA once
their dependent tasks are done.

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-04-22 09:52:51 -04:00
D. Ror. 99d45a3dcd docs(misc): update add-dotnet.md (#27540)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

See
https://github.com/nx-dotnet/nx-dotnet/blob/1ff848c54bc2207a9c77fc31c7a9a62489a30a88/packages/core/src/generators/init/generator.ts#L30-L41

## Current Behavior
<!-- This is the behavior we have today -->

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Co-authored-by: Miroslav Jonaš <missing.manual@gmail.com>
2025-04-22 12:04:33 +00:00
Miroslav Jonaš 65f8e7fa80 docs(nx-dev): add blog post for test splitting techniques (#30621)
This PR creates a new enterprise blog post for test task-splitting
techniques

<img width="876" alt="image"
src="https://github.com/user-attachments/assets/1fe26716-e947-4c46-974c-d4d286e50d4e"
/>


## Current Behavior
<!-- This is the behavior we have today -->

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #

---------

Co-authored-by: Juri <juri.strumpflohner@gmail.com>
Co-authored-by: Isaac Mann <isaacplmann@gmail.com>
2025-04-22 13:50:34 +02:00
Philip Fulcher 7735cc2b12 docs(nx-dev): adjusting publish date 2025-04-22 11:24:18 +02:00
Philip Fulcher 117d655398 docs(nx-dev): updating youtube link for nx cloud update 2025-04-22 11:24:18 +02:00
Philip Fulcher e4793ee011 docs(nx-dev): fixing typoes in Nx Cloud update post 2025-04-22 11:24:18 +02:00
Philip Fulcher 54934de162 docs(nx-dev): add nx cloud update for april 2025 2025-04-22 11:24:18 +02:00
mauicode26 50a7859cc6 docs(core): update typo in mental-model.md (#30797)
## Current Behavior
Typo in `mental-model.md`.

## Expected Behavior
No typos in `mental-model.md`.

## Related Issue(s)
N/A
2025-04-22 11:08:11 +02:00
Jack Hsu 8619c1de90 fix(core): migrate-ui-api should always use its own migrate module (#30779)
This PR fixes an issue if the user is not updated to an Nx version that
provides the new Migrate UI API, then it will load the run version and
error out.

<img width="2672" alt="Screenshot 2025-04-17 at 10 18 45 AM"
src="https://github.com/user-attachments/assets/2720922b-6ef5-4162-a3f1-d1ccedb60acd"
/>

The fix is to always use the local `migrate.js` module.

## Current Behavior
<!-- This is the behavior we have today -->

## Expected Behavior
Migrate UI is broken if the migrated version does not have the new API

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->
Migrate UI should always work

Fixes #
2025-04-17 15:53:12 -04:00
Benjamin Cabanes 1a267aded9 docs(nx-dev): update nx in brand kits (#30781)
Replaced the existing nx-logos-assets.zip file with a new version.
2025-04-17 12:21:40 -04:00
Juri e73889f6b4 docs(nx-dev): add webinar link to AI article 2025-04-17 17:30:10 +02:00
Juri 4dbc3c7156 fix(nx-dev): toc should only include headings from the article body 2025-04-17 16:52:53 +02:00
Jack Hsu 178e6ef3c7 fix(react): mark react-router dev/start targets as continuous (#30776)
This PR marks dev/start from `@nx/react/router-plugin` as continuous.
Otherwise, running e2e will hang.

Repro: 
- `npx create-nx-workspace@next org --preset=react-monorepo
--appName=demo --e2eTestRunner=playwright` and pick RR For SSR
- Run `nx e2e demo-e2e`




## Current Behavior
<!-- This is the behavior we have today -->

e2e hangs because dev does not finish, and it is not marked as
continuous

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
dev and start from RR should work with e2e

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-04-17 10:27:48 -04:00
Jack Hsu 26489d1f50 fix(graph): ensure deps from graph-client->migrate-ui exists so taliwind styles are compiled correctly (#30762)
This PR removes the `// nx-ignore-next-line` from graph client to the
migrate lib import. Without the dep being there, the tailwind styles
will not include classes used by migrate UI.


<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
Styles are broken for migrate UI

## Expected Behavior
Styles should work

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-04-17 10:27:40 -04:00
Isaac Mann b67fa37598 docs(core): fix broken links (#30775)
Fix broken link to react router github repo
2025-04-17 13:58:37 +00:00
Leosvel Pérez Espinosa 3eb9f6a822 feat(angular): remove deprecated functionalities for v21 (#30769)
Remove the deprecated functionalities scheduled to be removed in Nx v21.

BREAKING CHANGE: Remove the deprecated data persistence operators
previously exported in `@nx/angular` and the deprecated testing utils
previously exported in `@nx/angular/testing`.
2025-04-17 09:12:32 -04:00
Jack Hsu 5c30d1b95a chore(repo): remove vite paths plugin from our own Storybook files (#30756)
This PR fixes an issue that blocks FreeBSD release for some reason.

When we use the `@nx/vite/plugins/nx-tsconfig-paths.plugin` plugin and
both `CI=1` and `NX_PREFER_TS_NODE=true` are set, then the graph fails
to compute. For example, running this will error out:

```shell
CI=1 NX_DAEMON=false NX_CACHE_PROJECT_GRAPH=false NX_PREFER_TS_NODE=true nx report
```

The error is like this:

```shell
⚠️ Unable to construct project graph.
Failed to process project graph.
     - graph/migrate/.storybook/main.ts: TypeError: Cannot set property level of [object Object] which has only a getter
      at Object.<anonymous> (/Users/jack/projects/nx/packages/nx/src/utils/output.ts:38:23)
      at Module._compile (node:internal/modules/cjs/loader:1554:14)
      at Module.m._compile (/Users/jack/projects/nx/node_modules/.pnpm/ts-node@10.9.1_@swc+core@1.5.7_@swc+helpers@0.5.11__@types+node@20.16.10_typescript@5.7.3/node_modules/ts-node/src/index.ts:1618:23)
      at node:internal/modules/cjs/loader:1706:10
      at Object.require.extensions.<computed> [as .ts] (/Users/jack/projects/nx/node_modules/.pnpm/ts-node@10.9.1_@swc+core@1.5.7_@swc+helpers@0.5.11__@types+node@20.16.10_typescript@5.7.3/node_modules/ts-node/src/index.ts:1621:12)
      at Module.load (node:internal/modules/cjs/loader:1289:32)
      at Function._load (node:internal/modules/cjs/loader:1108:12)
      at TracingChannel.traceSync (node:diagnostics_channel:322:14)
      at wrapModuleLoad (node:internal/modules/cjs/loader:220:24)
      at Module.require (node:internal/modules/cjs/loader:1311:12)
   - graph/ui-code-block/.storybook/main.ts: TypeError: Cannot set property level of [object Object] which has only a getter
      at Object.<anonymous> (/Users/jack/projects/nx/packages/nx/src/utils/output.ts:38:23)
      at Module._compile (node:internal/modules/cjs/loader:1554:14)
      at Module.m._compile (/Users/jack/projects/nx/node_modules/.pnpm/ts-node@10.9.1_@swc+core@1.5.7_@swc+helpers@0.5.11__@types+node@20.16.10_typescript@5.7.3/node_modules/ts-node/src/index.ts:1618:23)
      at node:internal/modules/cjs/loader:1706:10
      at Object.require.extensions.<computed> [as .ts] (/Users/jack/projects/nx/node_modules/.pnpm/ts-node@10.9.1_@swc+core@1.5.7_@swc+helpers@0.5.11__@types+node@20.16.10_typescript@5.7.3/node_modules/ts-node/src/index.ts:1621:12)
      at Module.load (node:internal/modules/cjs/loader:1289:32)
      at Function._load (node:internal/modules/cjs/loader:1108:12)
      at TracingChannel.traceSync (node:diagnostics_channel:322:14)
      at wrapModuleLoad (node:internal/modules/cjs/loader:220:24)
      at Module.require (node:internal/modules/cjs/loader:1311:12)
   - graph/ui-project-details/.storybook/main.ts: TypeError: Cannot set property level of [object Object] which has only a getter
      at Object.<anonymous> (/Users/jack/projects/nx/packages/nx/src/utils/output.ts:38:23)
      at Module._compile (node:internal/modules/cjs/loader:1554:14)
      at Module.m._compile (/Users/jack/projects/nx/node_modules/.pnpm/ts-node@10.9.1_@swc+core@1.5.7_@swc+helpers@0.5.11__@types+node@20.16.10_typescript@5.7.3/node_modules/ts-node/src/index.ts:1618:23)
      at node:internal/modules/cjs/loader:1706:10
      at Object.require.extensions.<computed> [as .ts] (/Users/jack/projects/nx/node_modules/.pnpm/ts-node@10.9.1_@swc+core@1.5.7_@swc+helpers@0.5.11__@types+node@20.16.10_typescript@5.7.3/node_modules/ts-node/src/index.ts:1621:12)
      at Module.load (node:internal/modules/cjs/loader:1289:32)
      at Function._load (node:internal/modules/cjs/loader:1108:12)
      at TracingChannel.traceSync (node:diagnostics_channel:322:14)
      at wrapModuleLoad (node:internal/modules/cjs/loader:220:24)
      at Module.require (node:internal/modules/cjs/loader:1311:12)
```

This is an issue for us only because we are pointing
`@nx/vite/plugins/nx-tsconfig-paths.plugin` to source. Normally, this
would already be in JS, and not need to go through `ts-node` or SWC.

I'm unsure what the exact cause is. There was nothing obvious in how we
register `ts-node`, and nothing in `ts-node` to suggest different
behavior with `CI=1`.

## Current Behavior
FreeBSD release is blocked

See: https://github.com/nrwl/nx/actions/runs/14500499978/job/40678818950

## Expected Behavior
FreeBSD release works

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-04-17 09:08:45 -04:00
Isaac Mann ca4c0762da docs(core): add april webinar (#30773)
Adds the 2025 April webinar to the webinar listing
2025-04-17 13:07:47 +00:00
Isaac Mann cd913a9221 docs(core): add migrate keyword to feature page (#30771)
Add migrate keyword to Automate Update Dependencies feature page
2025-04-17 08:42:16 -04:00
Leosvel Pérez Espinosa 46bd9e5eb4 chore(nx-dev): ignore the public directory in the eslint configuration (#30770)
## Current Behavior

The `nx-dev:lint` task is processing the `public` directory. That
directory is meant to contain assets that ESLint shouldn't process. It
results in extra time being spent linting the project, and it could
result in some errors due to linting some generated output that's copied
there (e.g. `documentation` and `tutorials` directories).

## Expected Behavior

The `nx-dev:lint` task should not process the `public` directory.

## Related Issue(s)

Fixes #
2025-04-17 07:59:45 -04:00
Colum Ferry 0749b76e50 docs(angular): add getting started document for angular-rspack (#30767)
## Current Behavior
There is no Getting Started document for helping people to get up and
running quickly with Angular Rspack applications.
There is only a blog post about scaffolding the applications.

## Expected Behavior
Add a Getting Started document to help people get up and running
2025-04-17 12:40:13 +01:00
Juri 701bbb1401 docs(nx-dev): article about Nx and AI 2025-04-17 13:35:58 +02:00
Leosvel Pérez Espinosa fed4da8651 feat(misc): remove generation of target defaults for atomized e2e tasks (#30730)
## Current Behavior

A target default (`dependsOn: [^build]`) for atomized e2e tasks is
always generated to work around a previous limitation where tasks
couldn't depend on continuous tasks. That meant we couldn't add the
dependency to the app's serve task and had to add it to the build task.

With continuous tasks now working, that limitation no longer exists.
We're now able to correctly infer the task dependency on the app's serve
task, and therefore, we can and need to remove the generation of
`dependsOn: [^build]` in target defaults so it doesn't override what the
Cypress and Playwright plugins infers.

## Expected Behavior

A target default (`dependsOn: [^build]`) for atomized e2e tasks should
not be generated. Instead, the Cypress and Playwright plugins will infer
the correct `dependsOn` for the task(s) run in the configured web server
command.

## Related Issue(s)

Fixes #
2025-04-17 13:27:24 +02:00
Benjamin Cabanes 1dd7d569e3 docs(nx-dev): enable WebinarNotifier for April 30th event (#30759)
Reactivated the `WebinarNotifier` component and updated references to reflect the new webinar scheduled for April 30th, 2025.
2025-04-16 21:55:20 +00:00
Jason Jean 9c9ddb571e fix(core): disable tui when CI=true (#30754)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

When `CI=true`, the TUI is still enabled by default.

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

When `CI=true`, the TUI is disabled unless it is explicitly enabled with
`NX_TUI=true`.

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-04-16 17:21:11 -04:00
Nicholas Cunningham 8dc057519f chore(misc): remove Node.js 18 version from nightly matrix (#30758)
This PR updates our nightly test configuration to align with the current
Node.js ecosystem.

Node.js v18 has reached end-of-life, so we're updating our nightly tests
to ensure compatibility with actively maintained Node.js versions.
2025-04-16 17:00:34 -04:00
Nicholas Cunningham 8b02fd48f7 fix(core): improve flaky ci test (#30738)
This PR updates `lerna-smoke-tests.test.ts` test file to improve the
consistency of the snapshots.
The serializer has been updated to reduce flakiness from spacing and
line breaks.
2025-04-16 15:08:16 -04:00
Colum Ferry 4b4226d2e0 docs(angular): add guide on i18n for Angular Rspack (#30732)
## Current Behavior
There is currently no documetation on how to configure i18n for Angular
Rspack applications

## Expected Behavior
Add documetation giving details on how to configure i18n for Angular
Rspack applications
2025-04-16 18:38:22 +01:00
Nicholas Cunningham a911318017 feat(graph): Create Migrate UI (#30734)
This PR introduces a new UI in Nx Console designed to assist users with
managing migrations more effectively.

Each migration is now presented with its status and actions, allowing
users to interact directly.
If any issues arise, users can address them in isolation without
disrupting the overall flow. The migrate ui provides a clear overview of
the migration state, helping users track progress and understand what
actions are required at each step.
2025-04-16 12:40:37 -04:00
Colum Ferry 67732d6217 feat(angular): update angular-rspack to 20.7 (#30737) 2025-04-16 11:59:21 -04:00
Colum Ferry c37007ec6c fix(angular): handle ssr with convert-to-rspack (#30752)
## Current Behavior
The `convert-to-rspack` generator for `@nx/angular` does not currently
handle SSR Webpack applications correctly.

## Expected Behavior
Ensure that the `convert-to-rspack` generator handles SSR correctly.
2025-04-16 16:31:51 +01:00
Juri 4f8b407a75 feat(nx-dev): add course preview component 2025-04-16 17:02:54 +02:00
MaxKless 5dcec84e63 docs(react): update react lib generator (#30527)
the examples are outdated, the new ones make more sense
2025-04-16 11:01:24 -04:00
Juri 8844e245fb docs(nx-dev): update PNPM article linking to Nx PNM course 2025-04-16 15:22:38 +02:00
Mike Hartington 68c481f7d1 feat(nx-dev): add React landing page (#30612)
Co-authored-by: Juri <juri.strumpflohner@gmail.com>
2025-04-16 07:59:43 -04:00
Colum Ferry 6b081363c1 feat(webpack): set default sassImplementation to sass-embedded (#30580)
## Current Behavior
The `sassImplementation` option for Webpack and Rspack is set to `sass`
by default.
`sass-embedded` offers a faster alternative.

## Expected Behavior
Switch the default `sassImplementation` option to `sass-embedded`.
2025-04-16 11:06:57 +01:00
Jason Jean caa26a781d chore(repo): update nx to 21.0.0-beta.4 (#30710)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

This repo uses Nx 20.8.0-rc.0

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

This repo uses Nx 21.0.0-beta.4

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-04-15 19:10:16 +00:00
Jason Jean 06eaf7a4fb fix(nx-dev): refer to the youtube video instead of storing the videos… (#30739)
… again ourselves

<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

This article has parts of a youtube video baked into it as mp4 files.

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

The article points to the youtube video instead of baking in mp4 files.


https://nx-dev-git-fix-docs-nrwl.vercel.app/blog/nx-made-cursor-smarter#lets-see-it-in-action


![image](https://github.com/user-attachments/assets/35ae025e-2632-4c32-9d1d-a6420d97d229)


## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-04-15 18:16:44 +00:00
Jason Jean 31548a1282 fix(core): only register forced shutdown when tui is enabled (#30735)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

The `registerForcedShutdownCallback` lifecycle hook does not exist if
the TUI is not enabled as it is not on CI. But Nx tries to invoke it
anyways so it causes an error in CI:
https://github.com/nrwl/nx/actions/runs/14471341199/job/40585817051?pr=30710#step:11:31

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

The `registerForcedShutdownCallback` is only utilized when the TUI is
enabled so it will not be invoked on CI where it does not exist.

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-04-15 16:13:01 +00:00
Isaac Mann e5ed477c5a docs(core): partners page (#30376)
Creates a
[/partners](https://nx-dev-git-nx-dev-partners-nrwl.vercel.app/partners)
page

---------

Co-authored-by: Jordan Powell <jordan@jpdesigning.com>
2025-04-15 11:54:03 -04:00
Leosvel Pérez Espinosa 1bd105256e docs(core): fix package manager workspaces' patterns in typescript project linking concept page (#30729)
## Current Behavior

The "Typescript Project Linking" concept page shows package manager
workspaces' patterns like `apps/**`. While this could be correct, it's
not what Nx generators will generate, and it can result in some nested
and non-expected directories being matched (e.g., fixtures).

## Expected Behavior

The "Typescript Project Linking" concept page should show package
manager workspaces' patterns like `apps/*` so it's aligned with what Nx
generators will generate. It would be a safer example, so it doesn't
match potentially undesired directories.

## Related Issue(s)

Fixes #
2025-04-15 17:07:02 +02:00
Jack Hsu 9ce301f30c fix(testing): fix cypress and playwright atomized targetDefaults so they match correctly (#30717)
Currently, we provide `targetDefaults` for atomized targets (e.g.
`e2e-ci`) with a glob pattern that may not match nested paths.

i.e.

```
"e2e-ci--**/*": {
  "dependsOn": [
    "^build",
  ],
},
```

The `e2e-ci--**/*` pattern should be `e2e-ci--**/**`.

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
The generated `e2e-ci` pattern in `nx.json` does not match nested paths
for split tasks.

## Expected Behavior
The generated `e2e-ci` pattern should apply to all split tasks.

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #28842
2025-04-15 11:03:52 -04:00
Colum Ferry be326624b7 docs(angular): add blog post for scaffolding angular rspack apps (#30667)
Add blog post on scaffolding new Angular Rspack applications
2025-04-15 15:52:30 +01:00
Juri de765b4fa7 docs(nx-dev): add blog post about MCP support for VSCode 2025-04-15 16:35:09 +02:00
Colum Ferry 4f14f9d5af fix(angular): remove deprecated standaloneConfig from generators (#30578)
## Current Behavior
The `standaloneConfig` option has long been deprecated as it is the only
behaviour that Nx now provides.
Using it is a no-op.

## Expected Behavior
Remove the `standaloneConfig` option.
2025-04-15 15:04:49 +01:00
Leosvel Pérez Espinosa 5aab4eb420 cleanup(testing): fix outdated test snapshot in cypress graph plugin tests (#30728)
## Current Behavior

A couple of unit tests for the `@nx/cypress` graph plugin are failing
due to outdated snapshots.

## Expected Behavior

The `@nx/cypress` graph plugin tests should succeed. The test snapshots
should be updated to match the new behavior.

## Related Issue(s)

Fixes #
2025-04-15 09:23:45 -04:00
Jason Jean 016e5fda2a chore(core): fix command info (#30720)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

"Printing" the command info before output causes `run-script` to hang
and not run. In addition, the screen was cleared.

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

The command in run-script runs without issues. The screen is not
cleared.

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-04-15 09:23:45 -04:00
Leosvel Pérez Espinosa 9a60dec0de feat(testing): support continuous tasks (#30632)
## Current Behavior

The Cypress and Playwright graph plugins do not infer tasks configured
to take advantage of continuous tasks (do not add the task they run to
start the app/server as a dependency of the e2e task).

## Expected Behavior

The Cypress and Playwright graph plugins should infer tasks configured
to take advantage of continuous tasks.

## Related Issue(s)

Fixes #
2025-04-15 09:23:45 -04:00
Jason Jean 46888b294c fix(core): use dev tty for crossterm (#30696)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

`git push -u origin HEAD` causes the following panic when the TUI is
enabled on macos:

```
Backtrace (most recent call last):
  File "<unknown>:0", in __pthread_cond_wait
  File "<unknown>:0", in std::sys::pal::unix::thread::Thread::new::thread_start
  File "<unknown>:0", in core::ops::function::FnOnce::call_once{{vtable.shim}}
  File "<unknown>:0", in std::sys::backtrace::__rust_begin_short_backtrace
  File "<unknown>:0", in tokio::runtime::task::raw::poll
  File "<unknown>:0", in tokio::runtime::scheduler::multi_thread::worker::Context::run_task
  File "<unknown>:0", in tokio::runtime::task::raw::poll
  File "<unknown>:0", in tokio::runtime::task::core::Core<T,S>::poll
  File "<unknown>:0", in nx::native::tui::tui::Tui::start::{{closure}}
  File "<unknown>:0", in core::option::expect_failed

The application panicked (crashed).
  reader source not set
in /Users/jason/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crossterm-0.29.0/src/event/read.rs:39
thread: tokio-runtime-worker

```

This is due to the fact that crossterm until recently did not use
/dev/tty on mac and thus could not read events correctly when forwarded
from another program such as husky.

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

This adds the `use-dev-tty` features so that `crossterm` utilizes
`/dev/tty` and works when forwarded from other programs such as husky on
macos.

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-04-15 09:23:45 -04:00
Jason Jean 9359490326 chore(core): fix wasm build (#30684)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

Wasm build is broken.

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

Wasm build is fixed.

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-04-15 09:23:45 -04:00
James Henry 3f9f2a78b7 fix(core): improve tui exit consistency and summary (#30678)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

- When a user presses `ctrl+c` to force kill the TUI/Nx, continuous
tasks that are running are not killed, and the terminal can get stuck or
leave the cursor hidden
- The summary is incomplete and messy

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

- When a user presses `ctrl+c` to force kill the TUI/Nx, continuous
tasks that are running are appropriately killed and everything in the
user's terminal is restored back to a good state.
- The summary looks good and contains the in progress logs for
continuous tasks that were killed

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-04-15 09:23:45 -04:00
Jason Jean 285211f98c feat(core): add shared status for tui (#30679)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

Shared continuous tasks are not shown as running in the TUI

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

There is a special status for Shared continuous tasks for the TUI where
it will say that it is running in a different nx process

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-04-15 09:23:45 -04:00
Colum Ferry e5c7f6db18 feat(testing): add continuous tasks support for jest e2e with node (#30675)
## Current Behavior
When generating `node` projects with an `e2e` project using Jest, we do
not supply any method for the node application to actually be started
before running the tests.

## Expected Behavior
Using Continuous Tasks, have the e2e project dependOn the serve of the
`node` project such that it is available for the e2e tests to run
against it.
2025-04-15 09:23:45 -04:00
Leosvel Pérez Espinosa a1cd4e31ad fix(core): schedule tasks and release waiting threads when continuous task is already running (#30673)
## Current Behavior

When a continuous task is already running, parent tasks are not
scheduled.

## Expected Behavior

When a continuous task is already running, the task orchestrator should
schedule the next tasks and release the waiting threads so parent tasks
can be scheduled.

## Related Issue(s)

Fixes #
2025-04-15 09:23:45 -04:00
Jason Jean 48a5d1987e feat(core): enable dte to execute continuous tasks (#29993)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

Continuous tasks are not supported in DTE and there is no good API for
Agents to utilize

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

There is an API for agents to utilize to run continuous tasks.

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-04-15 09:23:45 -04:00
FrozenPandaz 87badb0486 chore(core): regen native typings 2025-04-15 09:23:45 -04:00
James Henry 6541751aab feat(core): add the experimental Terminal UI for tasks (#30565) 2025-04-15 09:23:45 -04:00
Colum Ferry 3794c2f256 docs(module-federation): add sections covering continuous tasks change (#30645)
## Current Behavior
Module Federation Documentation talks about using `--devRemotes`
exclusively for serving remote applications that feature teams are
working on.
With Continuous Tasks this is no longer the case

## Expected Behavior
Add section mentioning Continuous Tasks and the change to the `serve`
flow
2025-04-15 09:23:45 -04:00
Colum Ferry 5f26c6811e feat(module-federation): add continuous tasks support to react rspack (#30644)
## Current Behavior
Continuous tasks are not set up for React Rspack Module Federation
Remote projects.
This is important because `--dev-remotes` is no longer supported with
Crystal Module Federation usage.

## Expected Behavior
Add Continuous Tasks support for React Rspack Module Federation Remote
Projects.
This replaces the need for `nx serve shell --dev-remotes=remote1`.

Instead, the command is simply `nx serve remote1` and continuous tasks
means that the `shell:serve` task is executed correctly.
2025-04-15 09:23:45 -04:00
Jason Jean c5fb467118 feat(core): share continuous tasks (#29901)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

<!-- This is the behavior we have today -->

<!-- This is the behavior we should expect with the changes in this PR
-->

<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #

---------

Co-authored-by: Leosvel Pérez Espinosa <leosvel.perez.espinosa@gmail.com>
2025-04-15 09:23:45 -04:00
Jason Jean dee4906f5e chore(repo): fix unit tests (#30431)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

Unit tests are broken after rebase

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

Unit tests are passing

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-04-15 09:23:45 -04:00
Colum Ferry 0d38ec4454 feat(node): generate new apps with continuous: true (#30148)
## Current Behavior
Node applications rely on the `@nx/js:node` executor to handle serving. 
Unfortunately, it can not be determined if existing usage of the
executor is used for a continuous or finite task.

## Expected Behavior
Generate new node applications with `continuous: true` for their serve
targets
2025-04-15 09:23:45 -04:00
Colum Ferry f5e124972a feat(storybook): infer continuous tasks for storybook serve and serve-static (#30069)
## Current Behavior
The `@nx/storybook/plugin` does not set `continuous:true` for serve-like
targets.

## Expected Behavior
The plugin should correctly set `continuous: true` for `serve` and
`serve-static`.
2025-04-15 09:23:45 -04:00
Colum Ferry 7989e39461 feat(vite): infer continuous tasks for dev (#30043)
## Current Behavior
The `dev`, `serve`, `preview` and `serve-static` targets inferred by the
`@nx/vite/plugin` do not infer `continuous:true` indicating to Nx that
these tasks are continuous.


## Expected Behavior
Infer `continuous: true` for the serve-like targets for Vite.
2025-04-15 09:23:45 -04:00
Colum Ferry 63282bc070 feat(webpack): add continuous inference support (#29974)
## Current Behavior
Webpack Inference Plugin does not currently infer `continuous` for
`serve, preview, serve-static` targets.

## Expected Behavior
Webpack Inference Plugin correctly infers `continuous: true`
2025-04-15 09:23:45 -04:00
Colum Ferry 9fc7ffdaf3 feat(rspack): add continous inference support (#29973)
## Current Behavior
Rspack and Rsbuild Inference Plugins do not infer `continuous` for serve
tasks.

## Expected Behavior
Correctly infer `continuous` true.
2025-04-15 09:23:45 -04:00
Colum Ferry 2cd3252365 feat(js): infer continuous for watch-deps task (#29976)
## Current Behavior
The `@nx/js` plugin exposes a helper to generate `build-deps` and
`watch-deps` tasks for inference plugins.
It does not currently infer `continuous` for the `watch-deps` task.

## Expected Behavior
Ensure `watch-deps` is infered with `continuous: true`
2025-04-15 09:23:45 -04:00
Colum Ferry 229cf28198 feat(remix): add continuous task support (#29905)
## Current Behavior
When `serve, dev, start` targets are inferred by the `@nx/remix` plugin,
they are not inferring `continuous`.


## Expected Behavior
When `NX_CONTINUOUS_TASKS_PREVIEW` env var exists, infer the
`continuous` property.
2025-04-15 09:23:45 -04:00
Jason Jean f326bfe52e feat(core): introduce continuous tasks (#29750)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

An RFC about this feature is happening here: #29025. This has the most
information about this feature.

<!-- This is the behavior we have today -->

Nx currently does not explicitly handle tasks which run continuously
until they are terminated.

<!-- This is the behavior we should expect with the changes in this PR
-->

This PR adds the initial support for continuous tasks which run
continuously until they are terminated. This adds the ability to depend
on continuous tasks. There is some more work to be done but this will be
enough as an MVP.

<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-04-15 09:23:45 -04:00
Leosvel Pérez Espinosa 0082d939eb fix(linter): remove empty entry in typescript eslint flat config (#30727)
## Current Behavior

The `flat/typescript` config contains a config block with the `files`
containing an invalid empty entry.

## Expected Behavior

The `flat/typescript` config should be correct.

## Related Issue(s)

Fixes #30725
2025-04-15 08:08:17 -04:00
Jack Stevenson bc685ce3c5 chore(core): nx plugin submission @aws/nx-plugin (#30545)
<!-- 
_[Please make sure you have read the submission guidelines before
posting an
PR](https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#submit-pr)_

# Community Plugin Submission

Thanks for submitting your Nx Plugin to our community plugins list. Make
sure to follow these steps to ensure that your PR is approved in a
timely manner.

## Plugin Requirements

Before you submit your plugin to be listed in our registry, it needs to
meet the following requirements:
- Run some kind of automated e2e tests in your repository
- Include `@nx/devkit` as a `dependency` in the plugin's `package.json`
- List a `repository.url` in the plugin's `package.json`

i.e.

```
{
  "repository": {
    "type": "git",
    "url": "https://github.com/nrwl/nx.git",
    "directory": "packages/web"
  }
}
```

Note: We reserve the right to remove unmaintained plugins from the
registry. If the plugins become maintained again, they can be
resubmitted to the registry.

## Steps to Submit Your Plugin
- Use the following commit message template: `chore(core): nx plugin
submission [PLUGIN_NAME]`
- Update the `community/approved-plugins.json` file with a new entry for
your plugin that includes `name`, `url`, `description`:

Example:

```json
// community/approved-plugins.json

[{
    "name": "@community/plugin",
    "url": "https://github.com/community/plugin",
    "description": "This plugin provides the following capabilities."
}]
```

Once merged, your plugin will be available when running the `nx list`
command, and will also be available in the Plugin Registry on
[nx.dev](https://nx.dev/plugin-registry)
-->

# Community Plugin Submission

## Nx Plugin for AWS (@aws/nx-plugin)

<!-- 
Describe what your plugin is and what is its goal or issues it
addresses. If you don't provide a description, we will not merge your
PR.
Is it focused on a technology, tooling or behaviour? Does the plugin
provide generators, executors or graph support?
Do you know who is already using the plugin? Mention who is the author
of the plugin.
-->
This plugin is for building cloud-native applications with AWS. At
present it provides the following generators:

- `ts#project` - Generate a new TypeScript library.
- `ts#infra` - Generate a Typescript AWS CDK infrastructure project for
your application.
- `ts#cloudscape-website` - Generate a new Cloudscape/React/Vite based
web application.
- `ts#cloudscape-website#auth` - Add AWS Cognito authentication to your
Cloudscape website.
- `ts#trpc-api` - Generate a tRPC backend service with Amazon API
Gateway/AWS Lambda integration and [AWS
Powertools](https://github.com/aws-powertools/powertools-lambda-typescript)
pre-configured.
- `py#project` - Generate a uv based Python project.
- `py#fast-api` - Generate a FastAPI backend service with [AWS
Powertools](https://github.com/aws-powertools/powertools-lambda-python)
pre-configured.
- `api-connection` - Connect frontend applications to backend APIs.
- `license` - Automatically manage LICENSE files and source code headers
in your workspace.

(Note that the ts/py project generators are our simplified/opinionated
generators for base projects in TypeScript and Python, eg enforcing ESM
for TypeScript etc)

Our prototyping organisation here at AWS uses the plugin to quickly
bootstrap and build prototypes for various AWS customers in different
industries.

The primary authors are Adrian Dimech @agdimech and myself (Jack
Stevenson).
2025-04-14 10:55:17 -04:00
Josh VanAllen 5f3e94655d docs(misc): add josh vanallen to company list (#30680)
Add myself to the company list as a DPE

Signed-off-by: Josh VanAllen <5290334+joshvanallen@users.noreply.github.com>
2025-04-14 10:52:40 -04:00
Leosvel Pérez Espinosa b3c1404b02 fix(testing): unset customConditions when running cypress tasks (#30709)
## Current Behavior

Cypress e2e tasks in a workspace with the `customConditions` TypeScript
compiler option set, fail with the error:

```bash
TSError: ⨯ Unable to compile TypeScript:
error TS5098: Option 'customConditions' can only be used when 'moduleResolution' is set to 'node16', 'nodenext', or 'bundler'.
```

This happens because Cypress forces ts-node to use `module: commonjs`
and `moduleResolution: node10`, which is not compatible with the
`customConditions` TypeScript compiler option.

## Expected Behavior

Cypress e2e tasks in a workspace with the `customConditions` TypeScript
compiler option set should work as expected.

## Related Issue(s)

Fixes #
2025-04-14 09:17:34 -04:00
Leosvel Pérez Espinosa 70f1e660c8 fix(rspack): do not reuse existing ts-node compiler options when inferring tasks (#30703)
## Current Behavior

The `@nx/rspack` graph plugin reuses the potentially existing
`TS_NODE_COMPILER_OPTIONS` to set the `env` property of the inferred
tasks for a TS config file. This is not correct since the env var could
have a different value (or not exist at all) when running tasks compared
to when the graph plugin runs.

## Expected Behavior

The `@nx/rspack` graph plugin should not reuse any existing
`TS_NODE_COMPILER_OPTIONS` when inferring tasks for a TS config file.

## Related Issue(s)

Fixes #
2025-04-14 14:36:20 +02:00
Jan Vincent Liwanag 4cc3a39794 doc(misc): fix declarationMap config (#30700)
Fixes a typo where `declarationMaps` should be `declarationMap`.
2025-04-13 12:02:35 +02:00
Emily Xiong 65752addb5 fix(core): clean up batch process after post run (#30687)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->
currently, the batch process is not being cleanup

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
need to kill the batch process after post run in task orchestrator,
otherwise, when kill it during the post run (store the output to cache),
it will cause the process to hang in DTE

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-04-12 08:36:45 -04:00
Jason Jean 07ad2d7b4a chore(repo): update nx to 20.8.0-rc.0 (#30697)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

This repo uses `20.8.0-beta.2`

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

This repo uses `20.8.0-rc.0`

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-04-12 02:35:14 +00:00
Jason Jean d66b663879 fix(core): copy native file atomically to avoid hanging graph creation (#30695)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

When copying the native file out of node_modules into tmp from multiple
processes (aka plugin workers)... this can result in Node deadlocking.

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

Copying the native file out of node_modules into tmp from multiple
processes will first copy to unique places in `/tmp` but then atomically
rename to the final location where it is still loaded from.

This at least fixes a flaky test in `nx:test` where the explicit
dependencies tests were timing out after 35 seconds

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-04-11 19:21:14 -04:00
Jason Jean b56df7ba7a chore(repo): update nx to 20.8.0-beta.2 (#30694)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

This repo uses Nx 20.7.0-beta.3

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

This repo uses Nx 20.8.0-beta.2

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2025-04-11 19:18:50 -04:00
Leosvel Pérez Espinosa ce41dedf01 fix(js): ensure the tsconfig files cache is correctly busted when implementation changes (#30689)
## Current Behavior

The `@nx/js/typescript` plugin sometimes throws an error due to a
mismatch between the cached information for the tsconfig files and a
newer implementation.

## Expected Behavior

The `@nx/js/typescript` plugin should correctly invalidate the cached
tsconfig files when the implementation changes.

## Related Issue(s)

Fixes #
2025-04-11 18:12:22 -04:00
1797 changed files with 75184 additions and 75058 deletions
+25 -3
View File
@@ -23,6 +23,9 @@ jobs:
NX_E2E_RUN_E2E: 'true'
NX_CI_EXECUTION_ENV: 'linux'
NX_CLOUD_NO_TIMEOUTS: 'true'
NX_ALLOW_NON_CACHEABLE_DTE: 'true'
NX_CLOUD_USE_NEW_TASK_APIS: 'true'
NX_CLOUD_USE_NEW_STREAM_OUTPUT: 'true'
steps:
- name: Checkout
@@ -65,6 +68,12 @@ jobs:
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
- name: Setup Java
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 17
- name: Check Documentation
run: pnpm nx documentation
timeout-minutes: 20
@@ -85,7 +94,7 @@ jobs:
pnpm nx run-many -t check-imports check-commit check-lock-files check-codeowners --parallel=1 --no-dte &
pids+=($!)
pnpm nx affected --targets=lint,test,build,e2e,e2e-ci &
pnpm nx affected --targets=lint,test,build,e2e,e2e-ci,format-native,lint-native &
pids+=($!)
for pid in "${pids[@]}"; do
@@ -95,12 +104,25 @@ jobs:
main-macos:
runs-on: macos-latest
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}${{ contains(github.event_name, 'push') && format('-{0}', github.sha) || '' }}
cancel-in-progress: true
env:
NX_E2E_CI_CACHE_KEY: e2e-github-macos
NX_PERF_LOGGING: 'false'
NX_CI_EXECUTION_ENV: 'macos'
SELECTED_PM: 'npm'
steps:
- name: Log concurrency info
run: |
echo "Concurrency group: ${{ github.workflow }}-${{ github.ref }}${{ contains(github.event_name, 'push') && format('-{0}', github.sha) || '' }}"
echo "Concurrency cancel-in-progress: ${{ !contains(github.event_name, 'push') }}"
echo "Concurrency cancel-event-name: ${{ github.event_name }}"
if: always()
- name: Checkout
uses: actions/checkout@v4
with:
@@ -115,7 +137,7 @@ jobs:
uses: actions/cache@v4
with:
path: |
/usr/local/Homebrew
/opt/homebrew
~/Library/Caches/Homebrew
key: nrwl-nx-homebrew-packages
@@ -130,7 +152,7 @@ jobs:
uses: actions/cache@v4
with:
path: |
/usr/local/Homebrew
/opt/homebrew
~/Library/Caches/Homebrew
key: nrwl-nx-homebrew-packages
+2 -7
View File
@@ -1,8 +1,8 @@
name: E2E matrix
on:
schedule:
- cron: "0 5 * * *"
# schedule:
# - cron: "0 5 * * *"
workflow_dispatch:
inputs:
debug_enabled:
@@ -26,20 +26,15 @@ jobs:
- macos-latest
- windows-latest
node_version:
- 18
- 20
- 22
# - 23
exclude:
# run just node v20 on macos and windows
- os: macos-latest
node_version: 18
- os: macos-latest
node_version: 22
# - os: macos-latest
# node_version: 23
- os: windows-latest
node_version: 18
- os: windows-latest
node_version: 22
# - os: windows-latest
+2 -2
View File
@@ -10,7 +10,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18]
node-version: ['20.19.0']
steps:
- name: Checkout
@@ -19,7 +19,7 @@ jobs:
- name: Install Node.js
uses: actions/setup-node@v3
with:
node-version: 18
node-version: '20.19.0'
- name: Install pnpm
uses: pnpm/action-setup@v4
+1 -1
View File
@@ -25,7 +25,7 @@ jobs:
- name: Use Node.js ${{ matrix.node_version }}
uses: actions/setup-node@v3
with:
node-version: '18'
node-version: '20.19.0'
cache: 'pnpm'
- name: Cache node_modules
+6 -6
View File
@@ -8,7 +8,7 @@ type MatrixDataOS = {
os_name: string, // short name that will be printed in the report and on the action
os_timeout: number, // 60
package_managers: string[], // package managers to run on this OS
node_versions: number[], // node versions to run on this OS
node_versions: Array<number | string>, // node versions to run on this OS
excluded?: string[], // projects to exclude from running on this OS
};
@@ -56,23 +56,23 @@ const matrixData: MatrixData = {
],
nodeTLS: 20,
setup: [
{ os: 'ubuntu-latest', os_name: 'Linux', os_timeout: 60, package_managers: ['npm', 'pnpm', 'yarn'], node_versions: [18, 20, 22], excluded: ['e2e-detox', 'e2e-react-native', 'e2e-expo'] },
{ os: 'macos-latest', os_name: 'MacOS', os_timeout: 90, package_managers: ['npm'], node_versions: [20] },
{ os: 'windows-latest', os_name: 'WinOS', os_timeout: 180, package_managers: ['npm'], node_versions: [20], excluded: ['e2e-detox', 'e2e-react-native', 'e2e-expo'] }
{ os: 'ubuntu-latest', os_name: 'Linux', os_timeout: 60, package_managers: ['npm', 'pnpm', 'yarn'], node_versions: ['20.19.0', "22.12.0"], excluded: ['e2e-detox', 'e2e-react-native', 'e2e-expo'] },
{ os: 'macos-latest', os_name: 'MacOS', os_timeout: 90, package_managers: ['npm'], node_versions: ['20.19.0'] },
{ os: 'windows-latest', os_name: 'WinOS', os_timeout: 180, package_managers: ['npm'], node_versions: ['20.19.0'], excluded: ['e2e-detox', 'e2e-react-native', 'e2e-expo'] }
]
};
const matrix: Array<{
project: string,
codeowners: string,
node_version: number,
node_version: number | string,
package_manager: string,
os: string,
os_name: string,
os_timeout: number
}> = [];
function addMatrixCombo(project: MatrixDataProject, nodeVersion: number, pm: number, os: number) {
function addMatrixCombo(project: MatrixDataProject, nodeVersion: number | string, pm: number, os: number) {
matrix.push({
project: project.name,
codeowners: project.codeowners,
+1 -1
View File
@@ -21,7 +21,7 @@ env:
DEBUG: napi:*
NX_RUN_GROUP: ${{ github.run_id }}-${{ github.run_attempt }}
CYPRESS_INSTALL_BINARY: 0
NODE_VERSION: 18
NODE_VERSION: 20.19.0
PNPM_VERSION: 9.8.0 # Aligned with root package.json (pnpm/action-setup will helpfully error if out of sync)
jobs:
+6
View File
@@ -66,3 +66,9 @@ target
/wasi-sdk*
vite.config.*.timestamp*
storybook-static
# Ignore Gradle project-specific cache directory
.gradle
.kotlin
+1 -4
View File
@@ -1,4 +1 @@
pnpm check-lock-files
pnpm check-commit
pnpm documentation
pnpm pretty-quick --check
pnpm nx prepush --parallel 8 --tuiAutoExit 0
+32 -12
View File
@@ -1,18 +1,22 @@
launch-templates:
linux-medium:
resource-class: 'docker_linux_amd64/medium+'
image: 'ubuntu22.04-node20.11-v10'
image: 'us-east1-docker.pkg.dev/nxcloudoperations/nx-cloud/nx-agents-base-images:ubuntu22.04-node20.19-v1'
env:
GIT_AUTHOR_EMAIL: test@test.com
GIT_AUTHOR_NAME: Test
GIT_COMMITTER_EMAIL: test@test.com
GIT_COMMITTER_NAME: Test
SELECTED_PM: 'pnpm'
NPM_CONFIG_PREFIX: '/home/workflows/.npm-global'
NX_NATIVE_LOGGING: 'nx::native::db'
init-steps:
- name: Checkout
uses: 'nrwl/nx-cloud-workflows/v5/workflow-steps/checkout/main.yaml'
- name: Check Node Version
script: node --version
- name: Cache restore
uses: 'nrwl/nx-cloud-workflows/v5/workflow-steps/cache/main.yaml'
inputs:
@@ -37,11 +41,8 @@ launch-templates:
script: |
sudo apt-get update
sudo apt-get install -y ca-certificates lsof libvips-dev libglib2.0-dev libgirepository1.0-dev
- name: Install Pnpm
script: |
npm install -g pnpm@9.8.0
- name: Pnpm Install
- name: Pnpm Install from lockfile
script: |
pnpm install --frozen-lockfile
@@ -64,20 +65,35 @@ launch-templates:
- name: Load Cargo Env
script: echo "PATH=$HOME/.cargo/bin:$PATH" >> $NX_CLOUD_ENV
- name: Setup Java 17
script: |
sudo apt update
sudo apt install -y openjdk-17-jdk
sudo update-alternatives --set java /usr/lib/jvm/java-17-openjdk-amd64/bin/java
java -version
- name: Setup Gradle
script: |
./gradlew wrapper
./gradlew --version
linux-extra-large:
resource-class: 'docker_linux_amd64/extra_large'
image: 'ubuntu22.04-node20.11-v10'
image: 'us-east1-docker.pkg.dev/nxcloudoperations/nx-cloud/nx-agents-base-images:ubuntu22.04-node20.19-v1'
env:
GIT_AUTHOR_EMAIL: test@test.com
GIT_AUTHOR_NAME: Test
GIT_COMMITTER_EMAIL: test@test.com
GIT_COMMITTER_NAME: Test
SELECTED_PM: 'pnpm'
NPM_CONFIG_PREFIX: '/home/workflows/.npm-global'
NX_NATIVE_LOGGING: 'nx::native::db'
init-steps:
- name: Checkout
uses: 'nrwl/nx-cloud-workflows/v5/workflow-steps/checkout/main.yaml'
- name: Check Node Version
script: node --version
- name: Cache restore
uses: 'nrwl/nx-cloud-workflows/v5/workflow-steps/cache/main.yaml'
inputs:
@@ -102,11 +118,8 @@ launch-templates:
script: |
sudo apt-get update
sudo apt-get install -y ca-certificates lsof libvips-dev libglib2.0-dev libgirepository1.0-dev
- name: Install Pnpm
script: |
npm install -g pnpm@9.8.0
- name: Pnpm Install
- name: Pnpm Install from lockfile
script: |
pnpm install --frozen-lockfile
@@ -128,3 +141,10 @@ launch-templates:
- name: Load Cargo Env
script: echo "PATH=$HOME/.cargo/bin:$PATH" >> $NX_CLOUD_ENV
- name: Setup Java 21
script: |
sudo apt update
sudo apt install -y openjdk-21-jdk
sudo update-alternatives --set java /usr/lib/jvm/java-21-openjdk-amd64/bin/java
java -version
+8
View File
@@ -1,6 +1,14 @@
distribute-on:
default: auto linux-medium, 1 linux-extra-large
assignment-rules:
- targets:
- e2e-ci**
run-on:
- agent: linux-medium
parallelism: 1
- agent: linux-extra-large
parallelism: 1
- projects:
- nx-dev
targets:
+1
View File
@@ -13,6 +13,7 @@ packages/express/src/schematics/**/files/**/*.json
packages/nest/src/schematics/**/files/**/*.json
packages/react/src/schematics/**/files/**/*.json
packages/jest/src/schematics/**/files/**/*.json
packages/gradle/project-graph/build/**/*.*
packages/nx/src/plugins/js/lock-file/__fixtures__/**/*.*
packages/**/schematics/**/files/**/*.html
packages/**/generators/**/files/**/*.html
Generated
+911 -74
View File
File diff suppressed because it is too large Load Diff
+6
View File
@@ -0,0 +1,6 @@
plugins {
id("dev.nx.gradle.project-graph") version("0.1.0")
id("com.ncorti.ktfmt.gradle") version("+")
}
group = "dev.nx"
+4
View File
@@ -0,0 +1,4 @@
disallowed-types = [
# We need to ensure adjustments for light and dark themes are applied appropriately
{ path = "ratatui::style::Color", reason = "Use our utils from crate::native::tui::colors instead to ensure appropriate light/dark theme support" },
]
+20
View File
@@ -464,6 +464,11 @@
"description": "Nx plugin for Cloudflare, in particular Cloudflare workers. It allows to generate build and run Cloudflare workers in your Nx workspace.",
"url": "https://github.com/naxodev/oss/tree/main/packages/nx-cloudflare"
},
{
"name": "@naxodev/gonx",
"description": "Modern Nx plugin to use Go in a Nx workspace. Forked from @nx-go/nx-go",
"url": "https://github.com/naxodev/oss/tree/main/packages/gonx"
},
{
"name": "@ziacik/azure-func",
"description": "Generating, serving and publishing Azure Functions 4 apps.",
@@ -494,6 +499,11 @@
"description": "Plugin to deploy and promote Nx apps on Heroku",
"url": "https://github.com/getlarge/nx-heroku"
},
{
"name": "@getlarge/nx-node-sea",
"description": "Plugin that provides integration with Node.js Single Executable Applications (SEA).",
"url": "https://github.com/getlarge/nx-node-sea"
},
{
"name": "@huge-nx/conventions",
"description": "Plugin to generate and manage Nx workspaces by adhering to established workspace conventions.",
@@ -513,5 +523,15 @@
"name": "nx-foundry",
"description": "Foundry generators and inferred tasks for Nx",
"url": "https://github.com/juliangsibecas/nx-foundry"
},
{
"name": "@robby-rabbitman/nx-plus-web-test-runner",
"description": "Web Test Runner plugin for Nx workspaces.",
"url": "https://github.com/RobbyRabbitman/nx-plus/tree/main/libs/web-test-runner"
},
{
"name": "@aws/nx-plugin",
"description": "Nx Plugin for AWS: Accelerate building cloud-native applications with AWS",
"url": "https://github.com/awslabs/nx-plugin-for-aws"
}
]
+8
View File
@@ -299,6 +299,14 @@ Have a more decent button-like widget that you can place below sections of a tut
{% video-link link="https://youtu.be/OQ-Zc5tcxJE?t=64" /%}
```
#### Course video embed
This is for embedding a video just like with the Youtube component, but in addition to have a link to a Nx Course (nx.dev/courses) video to improve the discoverability of these courses.
```markdown
{% course-video src="https://youtu.be/3hW53b1IJ84" courseTitle="From PNPM Workspaces to Distributed CI" courseUrl="/courses/pnpm-nx-next/lessons-01-nx-init" title="Initialize Nx in Your Project with nx init" /%}
```
#### Project Details View
Embed a Project Details View that is identical what is shown in Nx Console or `nx show project myproject --web`
@@ -2,7 +2,7 @@
title: 'Distributing CI: Binning and Distributed Task Execution'
slug: 'distributing-ci-binning-and-distributed-task-execution'
authors: ['Victor Savkin']
cover_image: '/blog/images/2021-06-15/jFVfKEglfQIM9QsP.png'
cover_image: '/blog/images/2021-06-15/jFVfKEglfQIM9QsP.avif'
tags: [nx]
description: "Learn how to scale your CI pipeline using two distribution strategies: binning for workload distribution and Nx Cloud's distributed task execution for optimal performance."
---
@@ -2,7 +2,7 @@
title: 'Step by Step Guide on Creating a Monorepo for React Native Apps using Nx'
slug: 'step-by-step-guide-on-creating-a-monorepo-for-react-native-apps-using-nx'
authors: ['Emily Xiong']
cover_image: '/blog/images/2021-10-14/92uzyqB8oJ8tZJB9wAdoWQ.png'
cover_image: '/blog/images/2021-10-14/92uzyqB8oJ8tZJB9wAdoWQ.avif'
tags: [nx, tutorial]
description: Learn how to set up a monorepo with Nx to manage React Native mobile and React web apps with shared libraries, demonstrated through a daily horoscope app example.
---
@@ -2,7 +2,7 @@
title: 'Taming Code Organization with Module Boundaries in Nx'
slug: 'mastering-the-project-boundaries-in-nx'
authors: ['Miroslav Jonaš']
cover_image: '/blog/images/2021-12-17/PIUl1QGk7mOpSFdEwFQ8OA.png'
cover_image: '/blog/images/2021-12-17/PIUl1QGk7mOpSFdEwFQ8OA.avif'
tags: [nx]
description: Learn how to organize growing Nx repositories using module boundaries and ESLint rules to enforce clean architecture and prevent unwanted dependencies between domains.
---
@@ -2,7 +2,7 @@
title: 'Single File Monorepo Config, Custom Workspace Presets, Improved Tailwind Support, and more in Nx 13.4!'
slug: 'single-file-monorepo-config-custom-workspace-presets-improved-tailwind-support-and-more-in-nx-13'
authors: ['Brandon Roberts']
cover_image: '/blog/images/2021-12-23/4u3Fw49H5U-sqgyBoGsqw.png'
cover_image: '/blog/images/2021-12-23/4u3Fw49H5U-sqgyBoGsqw.avif'
tags: [nx, release]
description: Nx 13.4 brings single file monorepo configuration, custom workspace presets, enhanced Tailwind support for Angular, and dedicated TypeScript/JavaScript support with @nrwl/js.
---
@@ -2,7 +2,7 @@
title: 'New Terminal Output & Performance Improvements in Nx 13.5'
slug: 'new-terminal-output-performance-improvements-in-nx-13-5'
authors: ['Juri Strumpflohner']
cover_image: '/blog/images/2022-01-25/PIUl1QGk7mOpSFdEwFQ8OA.png'
cover_image: '/blog/images/2022-01-25/PIUl1QGk7mOpSFdEwFQ8OA.avif'
tags: [nx]
description: Nx 13.5 brings a new dynamic terminal output, 2.3x faster operations, Chrome DevTools profiling support, and improved project graph visualization.
---
@@ -2,7 +2,7 @@
title: 'Set up Tailwind CSS with Angular in an Nx workspace'
slug: 'set-up-tailwind-css-with-angular-in-an-nx-workspace'
authors: ['Leosvel Pérez Espinosa']
cover_image: '/blog/images/2022-01-28/igoocYqr8gj8n9t8qr5cuA.png'
cover_image: '/blog/images/2022-01-28/igoocYqr8gj8n9t8qr5cuA.avif'
tags: [nx]
description: Learn how to integrate Tailwind CSS with Angular in an Nx monorepo, including setup, configuration, and best practices for applications and libraries.
---
@@ -2,7 +2,7 @@
title: 'Share code between React Web & React Native Mobile with Nx'
slug: 'share-code-between-react-web-react-native-mobile-with-nx'
authors: ['Emily Xiong']
cover_image: '/blog/images/2022-02-01/lL-fGNaIGYBC_eOBwSvdBw.png'
cover_image: '/blog/images/2022-02-01/lL-fGNaIGYBC_eOBwSvdBw.avif'
tags: [nx, tutorial]
description: Learn how to create and manage React web and React Native mobile apps in an Nx monorepo, with guidance on sharing code and handling platform differences.
---
@@ -2,7 +2,7 @@
title: 'Introducing Expo Support for Nx'
slug: 'introducing-expo-support-for-nx'
authors: ['Emily Xiong']
cover_image: '/blog/images/2022-03-23/yYc8g4ifk9RApSjAhQysag.png'
cover_image: '/blog/images/2022-03-23/yYc8g4ifk9RApSjAhQysag.avif'
tags: [nx, release]
description: Introducing @nrwl/expo for seamless Expo integration in Nx monorepos, with a tutorial on building a poetry app using Expo's development tools.
---
@@ -2,7 +2,7 @@
title: "The React CLI you always wanted but didn't know about"
slug: 'the-react-cli-you-always-wanted-but-didnt-know-about'
authors: ['Juri Strumpflohner']
cover_image: '/blog/images/2022-03-29/YR6QUEZel3nlNcTo6Pdlwg.png'
cover_image: '/blog/images/2022-03-29/YR6QUEZel3nlNcTo6Pdlwg.avif'
tags: [nx]
description: Discover Nx as a powerful CLI for React development with built-in project generation, build tools, and pre-configured integrations for modern tooling.
---
@@ -2,7 +2,7 @@
title: 'What is new in Nx 13.10?'
slug: 'what-is-new-in-nx-13-10'
authors: ['Juri Strumpflohner']
cover_image: '/blog/images/2022-04-08/PJ3SRAadq0DxGiC9mCIWsA.png'
cover_image: '/blog/images/2022-04-08/PJ3SRAadq0DxGiC9mCIWsA.avif'
tags: [nx, release]
description: Nx 13.10 brings core package consolidation, Nx Daemon by default, local plugin development, enhanced visualization, new lint rules, and React 18 support.
---
@@ -2,7 +2,7 @@
title: 'Use Storybook with Nx React Native'
slug: 'use-storybook-with-nx-react-native'
authors: ['Emily Xiong']
cover_image: '/blog/images/2022-04-25/64nWVfUBihlYTLGWOvnc1g.png'
cover_image: '/blog/images/2022-04-25/64nWVfUBihlYTLGWOvnc1g.avif'
tags: [nx, release]
description: Learn how to integrate and configure Storybook with Nx React Native apps, including solutions for common navigation and Redux store integration issues.
---
@@ -2,7 +2,7 @@
title: 'Nx v14 is out — Here is all you need to know!'
slug: 'nx-v14-is-out-here-is-all-you-need-to-know'
authors: ['Juri Strumpflohner']
cover_image: '/blog/images/2022-05-02/UAN1p_RMt38_IvB3CRpYTA.png'
cover_image: '/blog/images/2022-05-02/UAN1p_RMt38_IvB3CRpYTA.avif'
tags: [nx, release]
description: Nx v14 delivers enhanced performance, simplified core structure, improved terminal output, local plugins, automated CI, module federation, and React 18 support.
---
@@ -2,7 +2,7 @@
title: 'Lerna is dead — Long Live Lerna'
slug: 'lerna-is-dead-long-live-lerna'
authors: ['Juri Strumpflohner']
cover_image: '/blog/images/2022-05-11/gtsrJ-tMDZf9bvDLVSjQ.png'
cover_image: '/blog/images/2022-05-11/gtsrJ-tMDZf9bvDLVSjQ.avif'
tags: [nx]
description: Nrwl takes over Lerna.js stewardship, promising continued maintenance, critical updates, and future Nx integration while supporting the existing community.
---
@@ -2,7 +2,7 @@
title: 'How Lerna just got 10x faster!'
slug: 'lerna-used-to-walk-now-it-can-fly'
authors: ['Juri Strumpflohner']
cover_image: '/blog/images/2022-05-25/WPGHapKqT3IguWjeN5UgWg.png'
cover_image: '/blog/images/2022-05-25/WPGHapKqT3IguWjeN5UgWg.avif'
tags: [nx]
description: Lerna v5.1 introduces the useNx flag for dramatic performance gains, making it 5.3x faster than Turborepo with added caching and task execution features.
---
@@ -2,7 +2,7 @@
title: 'Nx 14.2 — Angular v14, Storybook update, lightweight Nx and more!'
slug: 'nx-14-2-angular-v14-storybook-update-lightweight-nx-and-more'
authors: ['Juri Strumpflohner']
cover_image: '/blog/images/2022-06-09/uScdSDGP4NgCKFrPdznbhw.png'
cover_image: '/blog/images/2022-06-09/uScdSDGP4NgCKFrPdznbhw.avif'
tags: [nx, release]
description: Nx 14.2 brings Angular v14 support, Storybook 6.5, improved Angular CLI migrations, optional nx.json configuration, and significant performance gains.
---
@@ -2,7 +2,7 @@
title: 'Nx 14.4 — Inputs, optional npm scope, project graph cache directory and more!'
slug: 'nx-14-4-inputs-optional-npm-scope-project-graph-cache-directory-and-more'
authors: ['Juri Strumpflohner']
cover_image: '/blog/images/2022-07-05/lpmHhIiE9v5yJI6nLi2dlw.png'
cover_image: '/blog/images/2022-07-05/lpmHhIiE9v5yJI6nLi2dlw.avif'
tags: [nx, release]
description: 'Nx 14.4 enhances build caching with configurable inputs, simplifies workspace setup with optional npm scope, and optimizes CI performance with project graph improvements.'
---
@@ -2,13 +2,22 @@
title: 'Setup a Monorepo with PNPM workspaces and speed it up with Nx!'
slug: 'setup-a-monorepo-with-pnpm-workspaces-and-speed-it-up-with-nx'
authors: ['Juri Strumpflohner']
cover_image: '/blog/images/2022-07-14/ABrBjQPg4SrYzFQQXFxY-Q.png'
cover_image: '/blog/images/2022-07-14/ABrBjQPg4SrYzFQQXFxY-Q.avif'
tags: [nx, tutorial]
description: Learn to set up a monorepo with PNPM workspaces for Remix and React projects, then enhance it with Nx's task scheduling and caching features.
---
In this article we're going to have a deep dive into setting up a new monorepo using [PNPM workspaces](https://pnpm.io/workspaces) that hosts a Remix application as well as a React-based library. We will learn how to run commands with PNPM, how to run them in parallel and finally we're going to add Nx for a more sophisticated task scheduling, including command caching and more.
{% callout type="warning" title="Updated video!" %}
We made a lot of improvements since we last wrote this article. Here's our **updated content**:
- [the full all-in-one video on Youtube](https://youtu.be/zX-1tpqUG5c)
- [our free course: From PNPM Workspaces to Distributed CI](/courses/pnpm-nx-next)
{% /callout %}
**Important:** If you are already familiar with the setup and configuration of a new PNPM workspace, feel free to skip to the part where we add Nx later in the article.
**Prefer a video walkthrough?**
@@ -2,7 +2,7 @@
title: 'Nx 14.5 — Cypress v10, output globs, linter perf, React Tailwind support'
slug: 'nx-14-5-cypress-v10-output-globs-linter-perf-react-tailwind-support'
authors: ['Juri Strumpflohner']
cover_image: '/blog/images/2022-08-02/ZUzLD-4JgrEBIZb3dXOvag.png'
cover_image: '/blog/images/2022-08-02/ZUzLD-4JgrEBIZb3dXOvag.avif'
tags: [nx, release]
description: 'Nx 14.5 adds Cypress v10 with component testing, glob-based outputs for better caching, and improved React Tailwind integration.'
---
@@ -2,7 +2,7 @@
title: 'Helping the Environment by Saving Two Centuries of Compute time'
slug: 'helping-the-environment-by-saving-two-centuries-of-compute-time'
authors: ['Juri Strumpflohner']
cover_image: '/blog/images/2022-08-18/FBQVoC9YXF7wlq3dhxfQMQ.png'
cover_image: '/blog/images/2022-08-18/FBQVoC9YXF7wlq3dhxfQMQ.avif'
tags: [nx]
description: "Discover how Nx's caching and computation-saving features have saved over 200 years of compute time, reducing CO2 emissions through efficient task execution."
---
@@ -2,7 +2,7 @@
title: "Lerna reborn — What's new in v6?"
slug: 'lerna-reborn-whats-new-in-v6'
authors: ['Juri Strumpflohner']
cover_image: '/blog/images/2022-10-12/RGQCNNO-SSQ8PHnIZ4BVTQ.png'
cover_image: '/blog/images/2022-10-12/RGQCNNO-SSQ8PHnIZ4BVTQ.avif'
tags: [nx, release]
description: Lerna v6 brings default Nx integration, remote caching, PNPM support, dynamic terminal output, and improved task management to speed up your monorepo builds.
---
+5 -5
View File
@@ -2,7 +2,7 @@
title: What's new in Nx 15?
slug: 'whats-new-in-nx-15'
authors: ['Juri Strumpflohner']
cover_image: '/blog/images/2022-10-14/ReZPz_brTiYN84yvR7Hi2w.png'
cover_image: '/blog/images/2022-10-14/ReZPz_brTiYN84yvR7Hi2w.avif'
tags: [nx, release]
description: 'Explore the major features and improvements introduced in Nx version 15, including enhanced performance and developer experience.'
---
@@ -50,8 +50,8 @@ There will be more content around choosing which style and even how to mix the t
We also updated our docs to have two super short tutorials that illustrate the two approaches:
- [/getting-started/tutorials/typescript-packages-tutorial](/getting-started/tutorials/typescript-packages-tutorial)
- [/getting-started/tutorials/react-monorepo-tutorial](/getting-started/tutorials/react-monorepo-tutorial)
- [/tutorials/1-ts-packages/1t-introduction/1-welcome](/tutorials/1-ts-packages/1t-introduction/1-welcome)
- [/tutorials/2-react-monorepo/1r-introduction/1-welcome](/tutorials/2-react-monorepo/1r-introduction/1-welcome)
You can also read more about the concept here: [/deprecated/integrated-vs-package-based](/deprecated/integrated-vs-package-based)
@@ -179,9 +179,9 @@ It is an ongoing process, and we have a lot of content to cover! We follow the [
- you want to learn something new ("Tutorial" section) or
- you want a solution to a specific problem ("Recipes" section).
Besides the two new [package-based](/getting-started/tutorials/typescript-packages-tutorial) and [integrated style tutorials](/getting-started/tutorials/react-monorepo-tutorial) we also have two brand new reworked tutorials
Besides the two new [package-based](/tutorials/1-ts-packages/1t-introduction/1-welcome) and [integrated style tutorials](/tutorials/2-react-monorepo/1r-introduction/1-welcome) we also have two brand new reworked tutorials
- [/getting-started/tutorials](/getting-started/tutorials)
- [/tutorials](/tutorials)
Stay tuned for more updates to come.
@@ -2,7 +2,7 @@
title: 'From Bootstrapped to Venture-Backed: Nx Raises $8.6M'
slug: 'from-bootstrapped-to-venture-backed'
authors: ['Jeff Cross']
cover_image: '/blog/images/2022-11-17/a3eT-mjLsXTiHU5m.png'
cover_image: '/blog/images/2022-11-17/a3eT-mjLsXTiHU5m.avif'
tags: [nx]
description: Nx raises $8.6M seed round led by Nexus Venture Partners and A16z to scale open source Nx, Nx Cloud, and Nx Enterprise, powering 75% of JavaScript monorepo tooling.
---
@@ -2,7 +2,7 @@
title: 'Nx 15.3 — Standalone Projects, Vite, Task Graph and more!'
slug: 'nx-15-3-standalone-projects-vite-task-graph-and-more'
authors: ['Juri Strumpflohner']
cover_image: '/blog/images/2022-12-06/VXYjjWhOUpNuHFGCoF63OQ.png'
cover_image: '/blog/images/2022-12-06/VXYjjWhOUpNuHFGCoF63OQ.avif'
tags: [nx, release]
description: Nx 15.3 introduces standalone projects, Vite and Vitest tooling, enhanced task graph visualization, and simplified project adoption, now reaching 3M weekly downloads.
---
@@ -2,7 +2,7 @@
title: 'Nx 15.4 — Vite 4 Support, a new Nx Watch Command, and more!'
slug: 'nx-15-4-vite-4-support-a-new-nx-watch-command-and-more'
authors: ['Zack DeRose']
cover_image: '/blog/images/2022-12-22/N4_XxtYFr-V2cF6fPoBO3g.png'
cover_image: '/blog/images/2022-12-22/N4_XxtYFr-V2cF6fPoBO3g.avif'
tags: [nx, release]
description: Nx 15.4 adds Vite 4.0 support, new Watch command for file watching, webpack-less Cypress support, SSR for Module Federation, and parallel target execution improvements.
---
@@ -2,7 +2,7 @@
title: 'Setting up Module Federation with Server-Side Rendering for Angular'
slug: 'setting-up-module-federation-with-server-side-rendering-for-angular'
authors: ['Colum Ferry']
cover_image: '/blog/images/2023-01-10/kyMChnJ-X6jK9sbuaOdOiw.png'
cover_image: '/blog/images/2023-01-10/kyMChnJ-X6jK9sbuaOdOiw.avif'
tags: [nx, tutorial]
description: Learn how to implement Webpack Module Federation with Server-Side Rendering in Angular applications using Nx for improved performance and micro-frontend architecture.
---
@@ -2,7 +2,7 @@
title: 'React, Vite and TypeScript: Get started in under 2 minutes'
slug: 'react-vite-and-typescript-get-started-in-under-2-minutes'
authors: ['Juri Strumpflohner']
cover_image: '/blog/images/2023-01-12/ucL7YQ2v8aaOy426soLPZA.png'
cover_image: '/blog/images/2023-01-12/ucL7YQ2v8aaOy426soLPZA.avif'
tags: [nx]
description: Learn how to quickly set up a modern React application with Vite and TypeScript using Nx, featuring built-in testing, linting, and development tools.
---
@@ -2,7 +2,7 @@
title: 'Nx Console meets Nx Cloud'
slug: 'nx-console-meets-nx-cloud'
authors: ['Max Kless']
cover_image: '/blog/images/2023-01-18/Mkqkadhkk7DydWvPg5L0bA.png'
cover_image: '/blog/images/2023-01-18/Mkqkadhkk7DydWvPg5L0bA.avif'
tags: [nx]
description: Nx Console 17.28.0 integrates Nx Cloud features directly into VSCode, bringing remote caching, distributed task execution, and VCS integration with streamlined setup.
---
@@ -2,7 +2,7 @@
title: 'Configuration Files and Potholes in Your Codebase'
slug: 'configuration-files-and-potholes-in-your-codebase'
authors: ['Isaac Mann']
cover_image: '/blog/images/2023-01-31/T-xiDccBOxMQpDrG.png'
cover_image: '/blog/images/2023-01-31/T-xiDccBOxMQpDrG.avif'
tags: [nx]
description: A guide to managing configuration files effectively in modern development, exploring Nx's approach to infrastructure code maintenance through generators and migrations.
---
@@ -2,7 +2,7 @@
title: 'Setup React and Tailwind — The Easy Way'
slug: 'setup-react-and-tailwind-the-easy-way'
authors: ['Juri Strumpflohner']
cover_image: '/blog/images/2023-02-09/TK4Kdj-cc890gQkgUtKNyA.png'
cover_image: '/blog/images/2023-02-09/TK4Kdj-cc890gQkgUtKNyA.avif'
tags: [nx, tutorial]
description: Learn how to quickly set up React with Tailwind CSS using Nx's code generators, including migration from Create React App and automated configuration tools.
---
@@ -59,7 +59,7 @@ You can pass `--vite=false` if you still want to keep the Webpack configuration
## Generating a Tailwind Setup
Once you have a [Nx-based React](/getting-started/tutorials/react-monorepo-tutorial) setup, adding Tailwind is as easy as running:
Once you have a [Nx-based React](/tutorials/2-react-monorepo/1r-introduction/1-welcome) setup, adding Tailwind is as easy as running:
```shell
$ npx nx g @nrwl/react:setup-tailwind
@@ -79,7 +79,7 @@ You'll get
You should be all setup and ready now! Here are some related resources to explore:
- [Nx docs: React Monorepo tutorial](/getting-started/tutorials/react-monorepo-tutorial)
- [Nx docs: React Monorepo tutorial](/tutorials/2-react-monorepo/1r-introduction/1-welcome)
- [Youtube: Is CRA Dead](https://youtu.be/fkTz6KJxhhE)
- [Nx docs: Migrate CRA to React and Vite](/recipes/adopting-nx/adding-to-existing-project)
@@ -2,7 +2,7 @@
title: 'Nx 15.7 — Node Support, Angular LTS, Lockfile Pruning'
slug: 'nx-15-7-node-support-angular-lts-lockfile-pruning'
authors: ['Juri Strumpflohner']
cover_image: '/blog/images/2023-02-16/2AAo-mng7QyJP9yC80zNFQ.png'
cover_image: '/blog/images/2023-02-16/2AAo-mng7QyJP9yC80zNFQ.avif'
tags: [nx, release]
description: Nx 15.7 introduces first-class Node.js support, detached Angular version support, enhanced lockfile parsing, and Storybook 7.0 beta integration.
---
@@ -2,7 +2,7 @@
title: 'Using NgRx Standalone APIs with Nx'
slug: 'using-ngrx-standalone-apis-with-nx'
authors: ['Colum Ferry']
cover_image: '/blog/images/2023-02-21/pJHhA04d6jIjOb5vpCDjyw.png'
cover_image: '/blog/images/2023-02-21/pJHhA04d6jIjOb5vpCDjyw.avif'
tags: [nx, tutorial]
description: A practical guide to integrating NgRx Standalone APIs in Angular applications using Nx, with automated setup for state management.
---
@@ -2,7 +2,7 @@
title: "What's New With Lerna 6.5?"
slug: 'whats-new-with-lerna-6-5'
authors: ['Zack DeRose']
cover_image: '/blog/images/2023-02-22/izlWzEYnkZ9myXi58Rmv8A.png'
cover_image: '/blog/images/2023-02-22/izlWzEYnkZ9myXi58Rmv8A.avif'
tags: [nx, release]
description: Lerna 6.5 introduces idempotent publishing, multi-script execution, private package handling, and codebase improvements, with updates on Nx team maintenance.
---
@@ -2,7 +2,7 @@
title: 'Bundling a Node API with Fastify, esbuild, and Nx'
slug: 'bundling-a-node-api-with-fastify-esbuild-and-nx'
authors: ['Jack Hsu']
cover_image: '/blog/images/2023-02-28/PADY_RKrkXj39p4nj79ESw.png'
cover_image: '/blog/images/2023-02-28/PADY_RKrkXj39p4nj79ESw.avif'
tags: [nx, tutorial]
description: Build and deploy a Node.js API with Fastify, Nx, esbuild, Docker, and Fly.io.
---
@@ -2,7 +2,7 @@
title: 'Expanding Nx Console to JetBrains IDEs'
slug: 'expanding-nx-console-to-jetbrains-ides'
authors: ['Max Kless']
cover_image: '/blog/images/2023-03-02/lEAhfd3d17hGichyT-oGbw.png'
cover_image: '/blog/images/2023-03-02/lEAhfd3d17hGichyT-oGbw.avif'
tags: [nx]
description: Explore the technical journey of bringing Nx Console to JetBrains IDEs, featuring Language Server integration and Generate UI implementation for IntelliJ.
---
@@ -2,7 +2,7 @@
title: 'Nx 15.8 — Rust Hasher, Nx Console for IntelliJ, Deno, Node and Storybook'
slug: 'nx-15-8-rust-hasher-nx-console-for-intellij-deno-node-and-storybook'
authors: ['Juri Strumpflohner']
cover_image: '/blog/images/2023-03-08/2gKrC6_Yx3hVkQaHxnw5xw.png'
cover_image: '/blog/images/2023-03-08/2gKrC6_Yx3hVkQaHxnw5xw.avif'
tags: [nx, release]
description: Nx 15.8 brings Rust-based hasher, IntelliJ IDE support, Deno integration, enhanced Node.js features, and Storybook CSF3 support for improved performance.
---
@@ -2,7 +2,7 @@
title: 'Rspack — Getting up to speed with Nx'
slug: 'rspack-getting-up-to-speed-with-nx'
authors: ['Juri Strumpflohner']
cover_image: '/blog/images/2023-03-10/fWQ53mw2itEs3SGAOJVonQ.png'
cover_image: '/blog/images/2023-03-10/fWQ53mw2itEs3SGAOJVonQ.avif'
tags: [nx]
description: Explore Nx's integration with Rspack, the Rust-based Webpack alternative that offers 5-10x faster compilation for React apps in your monorepo.
---
+1 -1
View File
@@ -2,7 +2,7 @@
title: Nx Cloud 3.0 — Faster Cache, More Powerful DTE, Better Ergonomics
slug: 'nx-cloud-3-0-faster-more-efficient-modernized'
authors: [Juri Strumpflohner]
cover_image: '/blog/images/2023-04-19/featured_img.webp'
cover_image: '/blog/images/2023-04-19/featured_img.avif'
tags: [nx, nx-cloud]
description: Nx Cloud 3.0 introduces a modern UI, faster cache management, enhanced DTE, VCS integrations, enterprise features, and a simplified pricing model.
---
+1 -1
View File
@@ -2,7 +2,7 @@
title: 'Nx 16 is Here!'
slug: 'nx-16-is-here'
authors: ['Zack DeRose']
cover_image: '/blog/images/2023-05-02/n8JTIcKSYkebBOl8zZuF9w.png'
cover_image: '/blog/images/2023-05-02/n8JTIcKSYkebBOl8zZuF9w.avif'
youtubeUrl: 'https://youtu.be/JIhOyJtuxEA'
tags: [nx, release]
description: Nx 16 brings package rescoping, enhanced Deno support, Cypress testing improvements, task graph visualization, and PNPM migration for better performance.
@@ -2,7 +2,7 @@
title: 'Introducing the Nx Champions Program'
slug: 'introducing-the-nx-champions-program'
authors: ['Isaac Mann']
cover_image: '/blog/images/2023-05-16/cVGLh0H-uOpy7-D6.png'
cover_image: '/blog/images/2023-05-16/cVGLh0H-uOpy7-D6.avif'
tags: [nx]
description: Introducing the Nx Champions program, recognizing and supporting community leaders in Nx expertise, content creation, and community bridging.
---
@@ -2,7 +2,7 @@
title: 'Determine your User Location with Netlify Edge Functions'
slug: 'determine-your-user-location-with-netlify-edge-functions'
authors: ['Nicholas Cunningham']
cover_image: '/blog/images/2023-05-26/G2ynKDm6DIKLcZ2fJlV0dw.png'
cover_image: '/blog/images/2023-05-26/G2ynKDm6DIKLcZ2fJlV0dw.avif'
tags: [nx, tutorial]
description: A guide to user location detection using Nx and Netlify Edge Functions, with serverless function setup, IP geolocation integration, and deployment for region-aware web apps.
---
@@ -2,7 +2,7 @@
title: 'Introducing Nx Ecosystem CI'
slug: 'introducing-nx-ecosystem-ci'
authors: ['Katerina Skroumpelou']
cover_image: '/blog/images/2023-06-20/EffyLKcVe5gE_x3MT8PJUQ.png'
cover_image: '/blog/images/2023-06-20/EffyLKcVe5gE_x3MT8PJUQ.avif'
tags: [nx]
description: Introducing Nx Ecosystem CI, a Vite-inspired automated testing framework for Nx ecosystem compatibility, pre-release testing, migration checks, and test suite management.
---
+1 -1
View File
@@ -2,7 +2,7 @@
title: Nx Console gets Lit
slug: 'nx-console-gets-lit'
authors: [Max Kless]
cover_image: '/blog/images/2023-06-29/featured_img.webp'
cover_image: '/blog/images/2023-06-29/featured_img.avif'
tags: [nx, nx-console]
description: Nx Console's Generate UI rebuilt with Lit for a faster, more maintainable experience across VSCode and JetBrains IDEs.
---
+1 -1
View File
@@ -2,7 +2,7 @@
title: 'Nx 16.5 Release!!!'
slug: 'nx-16-5-release'
authors: ['Zack DeRose']
cover_image: '/blog/images/2023-07-06/Gm3s_wLWrAf_uH2AzfJvvQ.png'
cover_image: '/blog/images/2023-07-06/Gm3s_wLWrAf_uH2AzfJvvQ.avif'
tags: [nx, release]
description: Nx 16.5 released with tag-based task targeting, NextJS 13 support, new recipes, Angular 16 compatibility, Verdaccio integration, custom CLI, external dependencies input, ESLint rule, and Rust integration for performance.
---
@@ -2,7 +2,7 @@
title: 'Evergreen Tooling — More than Just CodeMods'
slug: 'evergreen-tooling-more-than-just-codemods'
authors: ['Juri Strumpflohner']
cover_image: '/blog/images/2023-07-26/CPiI60mSguYXJzPfAHMbEQ.png'
cover_image: '/blog/images/2023-07-26/CPiI60mSguYXJzPfAHMbEQ.avif'
tags: [nx]
description: Nx's evergreen tooling approach automates migrations, updates code like a database, and uses plugins for seamless JavaScript ecosystem upgrades with backward compatibility and reduced maintenance.
---
@@ -2,7 +2,7 @@
title: 'Storybook Interaction Tests in Nx'
slug: 'storybook-interaction-tests-in-nx'
authors: ['Katerina Skroumpelou']
cover_image: '/blog/images/2023-08-03/NfJA7VBZvDwyyZHmV8qsiw.png'
cover_image: '/blog/images/2023-08-03/NfJA7VBZvDwyyZHmV8qsiw.avif'
tags: [nx]
description: Nx 16.6 introduces Storybook interaction tests, offering automated UI testing, Jest and Playwright integration, and a streamlined workflow.
---
@@ -2,7 +2,7 @@
title: 'Create Your Own create-react-app CLI'
slug: 'create-your-own-create-react-app-cli'
authors: ['Emily Xiong']
cover_image: '/blog/images/2023-08-10/j2QU-hjxt-1krFST8CGFiA.png'
cover_image: '/blog/images/2023-08-10/j2QU-hjxt-1krFST8CGFiA.avif'
tags: [nx]
description: Build a custom create-react-app CLI with Nx plugins, including workspace setup, Verdaccio testing, and project template customization for a branded React app scaffolding experience.
---
@@ -636,7 +636,7 @@ This should give you a good insight into how to get started. But there's more to
- We could also include "[executors](/extending-nx/recipes/local-executors)", which are wrappers around tasks to abstract the lower-level details of it
- etc.
Now clearly this was a simple example of how you could build your own CRA using Nx. If you want to see a real-world React setup powered by Nx, check out our React Tutorial: [/getting-started/tutorials/react-monorepo-tutorial](/getting-started/tutorials/react-monorepo-tutorial)
Now clearly this was a simple example of how you could build your own CRA using Nx. If you want to see a real-world React setup powered by Nx, check out our React Tutorial: [/tutorials/2-react-monorepo/1r-introduction/1-welcome](/tutorials/2-react-monorepo/1r-introduction/1-welcome)
## Learn more
+1 -1
View File
@@ -2,7 +2,7 @@
title: Qwikify your Development with Nx
slug: 'qwikify-your-development-with-nx'
authors: ['Colum Ferry']
cover_image: '/blog/images/2023-08-15/featured_img.png'
cover_image: '/blog/images/2023-08-15/featured_img.avif'
tags: [nx, changelog, release]
description: Learn how to integrate Qwik with Nx for a todo app, covering setup, routes, libraries, Qwik Context, and modular development best practices.
---
@@ -2,7 +2,7 @@
title: 'Step-by-Step Guide to Creating an Expo Monorepo with Nx'
slug: 'step-by-step-guide-to-creating-an-expo-monorepo-with-nx'
authors: ['Emily Xiong']
cover_image: '/blog/images/2023-08-24/IpM0kZdUNXoDWV4r8J5xXQ.png'
cover_image: '/blog/images/2023-08-24/IpM0kZdUNXoDWV4r8J5xXQ.avif'
tags: [nx, tutorial]
description: A comprehensive tutorial on building a multi-app Expo monorepo using Nx, featuring shared UI components, navigation setup, and deployment configurations, demonstrated through the creation of two mobile apps.
---
+1 -1
View File
@@ -2,7 +2,7 @@
title: 'Nx 16.8 Release!!!'
slug: 'nx-16-8-release'
authors: ['Zack DeRose']
cover_image: '/blog/images/2023-09-06/16gTRcKon8B4IKYQAY9V8w.png'
cover_image: '/blog/images/2023-09-06/16gTRcKon8B4IKYQAY9V8w.avif'
tags: [nx, release]
description: Nx 16.8 released with new project generator behavior, enhanced TypeScript library packaging, high-performance TypeScript compilation, Playwright support, Netlify integration, and interactive Nx Console features.
---
@@ -2,7 +2,7 @@
title: 'Introducing Playwright Support for Nx'
slug: 'introducing-playwright-support-for-nx'
authors: ['Emily Xiong']
cover_image: '/blog/images/2023-09-18/589bVpPTJ4D4IACBePXWQ.png'
cover_image: '/blog/images/2023-09-18/589bVpPTJ4D4IACBePXWQ.avif'
tags: [nx, release, tutorial]
description: 'Discover how to integrate Playwright, a powerful end-to-end testing tool, into your Nx workspaces with our new @nx/playwright plugin.'
---
+2 -2
View File
@@ -2,7 +2,7 @@
title: Nx Conf 2023 — Recap
slug: 'nx-conf-2023-recap'
authors: [Juri Strumpflohner]
cover_image: '/blog/images/2023-10-13/featured_img.webp'
cover_image: '/blog/images/2023-10-13/featured_img.avif'
tags: [nx, nx-conf]
description: 'Nx Conf 2023 recap - keynotes, tech talks, and community discussions on Nx ecosystem growth, tooling, and monorepo development.'
---
@@ -26,7 +26,7 @@ Juri also dives deeper into efforts from the team to provide high quality educat
![](/blog/images/2023-10-13/bodyimg2.webp)
This makes it easier to find keep the content organized and focused and makes it easier for the reader to choose between solution-oriented [recipes](/recipes) vs learning-oriented [tutorials](/getting-started/tutorials).
This makes it easier to find keep the content organized and focused and makes it easier for the reader to choose between solution-oriented [recipes](/recipes) vs learning-oriented [tutorials](/tutorials).
The Nx team not only produces written content, but also video content mainly on the [Nx YouTube Channel](https://www.youtube.com/@nxdevtools). Juri shows some of the growth stats, with the channel now having more than 14k subscribers and around 3.7k hours of watch time per month. The channel serves mostly short-form videos about new releases, highlighting new features as well as longer-form tutorial videos.
+1 -1
View File
@@ -2,7 +2,7 @@
title: 'Nx 17 has Landed'
slug: 'nx-17-release'
authors: ['Juri Strumpflohner', 'Zack DeRose']
cover_image: '/blog/images/2023-10-20/featured_img.png'
cover_image: '/blog/images/2023-10-20/featured_img.avif'
tags: [nx, release]
description: Nx 17 released with Vue.js support, Module Federation enhancements, generator path improvements, AI chatbot integration, and more.
---
+1 -1
View File
@@ -2,7 +2,7 @@
title: State Management Nx React Native/Expo Apps with TanStack Query and Redux
slug: 'state-management-nx-react-native-expo-apps-with-tanstack-query-and-redux'
authors: [Emily Xiong]
cover_image: '/blog/images/2023-11-08/featured_img.webp'
cover_image: '/blog/images/2023-11-08/featured_img.avif'
tags: [nx, React Native]
description: Implementing state management in Nx React Native/Expo apps with TanStack Query and Redux, covering setup, dev tools, and unit testing.
---
+1 -1
View File
@@ -2,7 +2,7 @@
title: Nx Docs AI Assistant
slug: 'nx-docs-ai-assistant'
authors: [Katerina Skroumpelou]
cover_image: '/blog/images/2023-11-21/featured_img.webp'
cover_image: '/blog/images/2023-11-21/featured_img.avif'
tags: [nx, docs, AI]
description: Explore the Nx Docs AI Assistant's architecture, user benefits, and how it enhances documentation accessibility through intelligent search and contextual responses.
---
+1 -1
View File
@@ -2,7 +2,7 @@
title: Unit Testing Expo Apps With Jest
slug: 'unit-testing-expo-apps-with-jest'
authors: [Emily Xiong]
cover_image: '/blog/images/2023-11-22/featured_img.webp'
cover_image: '/blog/images/2023-11-22/featured_img.avif'
tags: [nx, tutorial]
description: Learn how to unit test Expo apps using Jest and React Native Testing Library, with solutions for mocking AsyncStorage, Redux, and React Navigation.
---
+1 -1
View File
@@ -2,7 +2,7 @@
title: Nx 17.2 Update
slug: 'nx-17-2-release'
authors: [Zack DeRose]
cover_image: '/blog/images/2023-12-20/featured_img.png'
cover_image: '/blog/images/2023-12-20/featured_img.avif'
tags: [nx, changelog, release]
description: Nx 17.2 released with simplified project configuration, Rust-powered task hashing, enhanced Module Federation, expanded releases, Angular 17 support, and Nx Agents for faster CI.
---
+2 -2
View File
@@ -2,7 +2,7 @@
title: Nx — Highlights of 2023
slug: 'nx-highlights-of-2023'
authors: [Juri Strumpflohner, Victor Savkin, Zack DeRose]
cover_image: /blog/images/2023-12-28/featured_img.png
cover_image: /blog/images/2023-12-28/featured_img.avif
tags: [nx, nx-cloud]
description: "Nx's 2023 highlights - Rust for performance, Vite support, publishing improvements, new backend tools, expanded IDE support, Playwright integration, TypeScript enhancements, Vue plugin, and community growth."
---
@@ -315,7 +315,7 @@ We also poured a lot of [effort into the docs](/getting-started/intro). We restr
- [**Concept docs**](/concepts) — which explain some of the inner workings and mental model behind certain features. Like [how caching works](/concepts/how-caching-works).
- [**Recipes**](/recipes) — which are solution oriented. You already know how to cook, we provide the exact recipe for it.
- [**Tutorials**](/getting-started/tutorials) — for when you just want to sit down and follow along, step by step to learn how to use Nx in a certain context.
- [**Tutorials**](/tutorials) — for when you just want to sit down and follow along, step by step to learn how to use Nx in a certain context.
- [**Reference**](/reference) and [**API docs**](/nx-api) — pure, raw and to the point.
We created a brand new ["Why Nx"](/getting-started/why-nx) page explaining the overall architecture of Nx including a [brand new video](https://www.youtube.com/watch?v=-_4WMl-Fn0w) giving you a holistic overview of what Nx is capable of.
@@ -5,7 +5,7 @@ date: 2024-01-24
slug: 'monorepos-the-benefits-challenges-and-importance-of-tooling-support'
authors: ['Juri Strumpflohner']
tags: [webinar]
cover_image: /blog/images/2024-01-24/january-webinar-card.png
cover_image: /blog/images/2024-01-24/january-webinar-card.avif
status: Past - Gated
registrationUrl: https://go.nx.dev/january-webinar
---
@@ -2,7 +2,7 @@
title: What if Nx Plugins Were More Like VSCode Extensions
slug: 'what-if-nx-plugins-were-more-like-vscode-extensions'
authors: [Juri Strumpflohner]
cover_image: '/blog/images/2024-02-05/featured_img.png'
cover_image: '/blog/images/2024-02-05/featured_img.avif'
tags: [nx, releases]
reposts: []
description: Introducing Project Crystal in Nx 18, a transformative approach to Nx plugins that makes them more transparent and lightweight, featuring inferred targets, reduced configuration overhead, and improved monorepo adoption.
@@ -1,7 +1,7 @@
---
title: Introducing @nx/nuxt Enhanced Nuxt.js Support in Nx
slug: 'introducing-nx-nuxt-enhanced-nuxt-js-support-in-nx'
cover_image: '/blog/images/2024-02-06/featured_img.png'
cover_image: '/blog/images/2024-02-06/featured_img.avif'
authors: ['Katerina Skroumpelou']
tags: [devtools, javascript, monorepos, nuxt]
description: 'Explore how the new @nx/nuxt plugin enhances Nuxt.js development with automated task recognition and improved monorepo capabilities.'
+1 -1
View File
@@ -2,7 +2,7 @@
title: Fast, Effortless CI
slug: 'fast-effortless-ci'
authors: [Isaac Mann]
cover_image: '/blog/images/2024-02-07/featured_img.png'
cover_image: '/blog/images/2024-02-07/featured_img.avif'
tags: [nx, nx-cloud, release]
reposts: []
description: 'Discover how Nx Agents speeds up CI pipelines from 90 to 10 minutes by intelligently distributing tasks and managing resources.'
@@ -3,7 +3,7 @@ title: Versioning and Releasing Packages in a Monorepo
slug: 'versioning-and-releasing-packages-in-a-monorepo'
authors: [Juri Strumpflohner]
description: 'Learn how to use Nx Release to version and publish packages in your monorepo with conventional commits and automated changelog generation.'
cover_image: '/blog/images/2024-02-09/featured_img.png'
cover_image: '/blog/images/2024-02-09/featured_img.avif'
tags: [nx, nx-cloud, releases, changelog]
---
+1 -1
View File
@@ -2,7 +2,7 @@
title: Launch Nx Week Recap
slug: 'launch-nx-week-recap'
authors: [Zack DeRose]
cover_image: '/blog/images/2024-02-15/featured_img.png'
cover_image: '/blog/images/2024-02-15/featured_img.avif'
tags: [nx, nx-cloud, releases, changelog]
description: 'Explore the major announcements from Launch Nx Week, including Nx 18.0, Project Crystal, Nuxt plugin, Nx Agents, and Tusky AI integration.'
---
@@ -5,7 +5,7 @@ date: 2024-03-11
slug: 'nx-agents-walkthrough-effortlessly-fast-ci-built-for-monorepos'
authors: ['Rareș Matei']
tags: [webinar]
cover_image: /blog/images/2024-03-11/march-webinar.png
cover_image: /blog/images/2024-03-11/march-webinar.avif
status: Past - Gated
registrationUrl: https://go.nx.dev/march-webinar
---
+1 -1
View File
@@ -3,7 +3,7 @@ title: Monorepos - Why Speed Matters
slug: 'monorepos-why-speed-matters'
authors: ['Katerina Skroumpelou', 'Jeff Cross']
tags: [nx, nxdevtools, speed, ci]
cover_image: '/blog/images/2024-03-20/featured_img.png'
cover_image: '/blog/images/2024-03-20/featured_img.avif'
description: 'Discover how Nx enhances development speed through Rust integration, improved caching, Nx Agents, and test atomization features.'
---
+1 -1
View File
@@ -2,7 +2,7 @@
title: Reliable CI. A new execution model fixing both flakiness and slowness
slug: 'reliable-ci-a-new-execution-model-fixing-both-flakiness-and-slowness'
authors: [Victor Savkin]
cover_image: '/blog/images/2024-03-21/featured_img.png'
cover_image: '/blog/images/2024-03-21/featured_img.avif'
tags: [nx, nx-cloud, releases]
description: 'Learn how Nx Cloud revolutionizes CI with a task-based execution model that solves both flaky tests and slow pipelines.'
---
@@ -5,7 +5,7 @@ date: 2024-04-17
slug: 'making-the-argument-for-monorepos'
authors: ['Miroslav Jonaš']
tags: [webinar]
cover_image: /blog/images/2024-04-17/april-webinar.png
cover_image: /blog/images/2024-04-17/april-webinar.avif
status: Past - Gated
registrationUrl: https://go.nx.dev/april-webinar
---
+1 -1
View File
@@ -2,7 +2,7 @@
title: Manage Your Gradle Project using Nx
slug: 'manage-your-gradle-project-using-nx'
authors: ['Emily Xiong']
cover_image: '/blog/images/2024-04-19/featured_img.png'
cover_image: '/blog/images/2024-04-19/featured_img.avif'
tags: [nx, gradle, how-to]
description: 'Learn how to manage Gradle projects in Nx workspaces using the new @nx/gradle plugin for better library visualization and multi-tech stack support.'
---
+2 -2
View File
@@ -2,7 +2,7 @@
title: Nx 19.0 Release!!
slug: 'nx-19-release'
authors: ['Zack DeRose']
cover_image: '/blog/images/2024-05-08/nx-19-thumbnail.png'
cover_image: '/blog/images/2024-05-08/nx-19-thumbnail.avif'
tags: [nx, release]
description: 'Explore Nx 19.0, returning to our six-month release cycle with enhanced Project Crystal plugins that work seamlessly with minimal configuration.'
---
@@ -52,7 +52,7 @@ Emily, the engineer that worked on this effort, posted an entire article where y
Thanks to the benefits of Project Crystal - which allows us to determine information to create Nx Tasks based on the way your Gradle projects are setup - by adding this plugin, it makes it easy to add Gradle into an existing workspace without needing any Nx-specific configuration.
In addition, you can now find [a new tutorial on using Nx with Gradle](/getting-started/tutorials/gradle-tutorial) which will expand on the [Spring framework](https://spring.io/)'s tutorial for multi-module projects and show you how Nx further enhances the developer experience of that workspace. This tutorial takes you all the way through setting up your CI pipeline with Nx Cloud, so be sure to check it out!
In addition, you can now find [a new tutorial on using Nx with Gradle](/tutorials/4-gradle/1g-introduction/1-welcome) which will expand on the [Spring framework](https://spring.io/)'s tutorial for multi-module projects and show you how Nx further enhances the developer experience of that workspace. This tutorial takes you all the way through setting up your CI pipeline with Nx Cloud, so be sure to check it out!
As an editorial note, this Gradle plugin is a big step for Nx, as it represents the first major step we're taking outside of the Javascript ecosystem. This has always been the goal: to robustly support monorepos and full-stack development, even across language and ecosystem barriers. We're using this Gradle plugin internally for our closed-sourced projects (in particular Nx Cloud) and in [Nx Console](https://github.com/nrwl/nx-console/blob/master/package.json#L74) and we're very proud of this plugin and all that it represents.
@@ -3,7 +3,7 @@ title: 'Nx Enterprise Podcast Episode 1: Hicham El Hammouchi'
slug: 'hicham-el-hammouchi-podcast-1'
authors: ['Zack DeRose']
tags: [podcast]
cover_image: /blog/images/2024-06-18/ep-1-hicham.png
cover_image: /blog/images/2024-06-18/ep-1-hicham.avif
podcastYoutubeId: 8iiLB_2djZ8
podcastSpotifyId: 24yagCNpu9EGj0fCwSDQkj
podcastAmazonUrl: https://music.amazon.com/podcasts/a221fdad-36fd-4695-a5b4-038d7b99d284/episodes/899a2e4c-2e56-4dfa-a3e3-e69eb216f2b0/the-enterprise-software-podcast-by-nx-the-enterprise-software-podcast-by-nx-1-hicham-el-hamouchi
@@ -6,7 +6,7 @@ date: 2024-06-26
slug: 'monorepos-and-ci-can-be-a-mess-heres-how-nx-and-nx-cloud-fixed-it'
authors: ['Juri Strumpflohner']
tags: [webinar]
cover_image: /blog/images/2024-06-26/June-Webinar-card.png
cover_image: /blog/images/2024-06-26/June-Webinar-card.avif
status: Past - Gated
registrationUrl: https://go.nx.dev/june-webinar
---
@@ -3,7 +3,7 @@ title: 'Nx Enterprise Podcast Episode 2: Tine Kondo'
slug: 'tine-kondo-podcast-2'
authors: ['Zack DeRose']
tags: [podcast]
cover_image: /blog/images/2024-07-19/ep-2-tine.png
cover_image: /blog/images/2024-07-19/ep-2-tine.avif
podcastYoutubeId: Nzf3BmymfEo
podcastSpotifyId: 0CCQaWCln7rvwkkVvsyxsk
podcastAmazonUrl: https://music.amazon.com/podcasts/a221fdad-36fd-4695-a5b4-038d7b99d284/episodes/53934cd9-c521-441e-8523-8b947ed207ca/the-enterprise-software-podcast-by-nx-the-enterprise-software-podcast-by-nx-2-tine-kondo
+1 -1
View File
@@ -2,7 +2,7 @@
title: 'Nx 19.5 is here! Stackblitz, Bun, Incremental Builds for Vite, Gradle Test Atomizer'
slug: 'nx-19-5-adds-stackblitz-new-features-and-more'
authors: ['Zack DeRose']
cover_image: '/blog/images/2024-08-01/nx-19-5-thumbnail.png'
cover_image: '/blog/images/2024-08-01/nx-19-5-thumbnail.avif'
tags: [nx, release]
description: 'Nx 19.5 brings StackBlitz support, Bun and Pnpm v9 compatibility, local flaky task detection, and more.'
---
@@ -3,7 +3,7 @@ title: 'Nx Enterprise Podcast Episode 3: Ahmed Elsakaan'
slug: 'ahmed-elsakaan-podcast-3'
authors: ['Zack DeRose']
tags: [podcast]
cover_image: /blog/images/2024-08-14/ep-3-ahmed.png
cover_image: /blog/images/2024-08-14/ep-3-ahmed.avif
podcastYoutubeId: l_b6EOXqYRg
podcastSpotifyId: 4d4oE8B3y9BmECZ3P4uvDP
podcastAmazonUrl: https://music.amazon.com/podcasts/a221fdad-36fd-4695-a5b4-038d7b99d284/episodes/28209cf9-1b88-48b5-a798-7b24c843e9b1/the-enterprise-software-podcast-by-nx-the-enterprise-software-podcast-by-nx-3-ahmed-elsakaan
@@ -3,7 +3,7 @@ title: 'Nx Enterprise Podcast Episode 4: Cvent Platform Architecture Panel'
slug: 'cvent-podcast-3'
authors: ['Zack DeRose']
tags: [podcast]
cover_image: /blog/images/2024-08-21/ep-4-cvent.png
cover_image: /blog/images/2024-08-21/ep-4-cvent.avif
podcastYoutubeId: _7uK1V_xu9k
podcastSpotifyId: 1zWuMFxcnGy90AN41gkodx
podcastAmazonUrl: https://music.amazon.com/podcasts/a221fdad-36fd-4695-a5b4-038d7b99d284/episodes/7e19eb25-76f9-4d1e-89c0-c2fd1f585f9b/the-enterprise-software-podcast-by-nx-the-enterprise-software-podcast-by-nx-4-cvent-platform-architect-panel
+1 -1
View File
@@ -3,7 +3,7 @@ title: How to Fast-Track Your PRs with Trunk.io | Nx Live
slug: nx-live-trunk-io
authors: ['Zack DeRose']
tags: [livestream]
cover_image: /blog/images/2024-08-29/nx-live-trunk.png
cover_image: /blog/images/2024-08-29/nx-live-trunk.avif
youtubeUrl: https://youtube.com/live/E8Gh-Vkxok0
description: Live demo with Trunk.io's David on optimizing PR workflows using Nx and Trunk Merge Queues, featuring first-class Nx support for improved dev efficiency.
---
@@ -3,7 +3,6 @@ title: Introduction to Nx! | Nx Live
slug: nx-live-intro-to-nx
authors: ['Zack DeRose', 'Mike Hartington']
tags: [livestream]
cover_image: /blog/images/2024-09-05/thumbnail.png
youtubeUrl: https://youtube.com/live/dgtZ6GHZ-tA
description: Watch a live coding session where Zack guides Mike through building a full-stack app with Nx, showcasing key features and best practices.
---
@@ -3,7 +3,7 @@ title: Next-Gen Module Federation Deployments with Nx and Zephyr Cloud
slug: next-gen-module-federation-deployment
authors: ['Colum Ferry']
tags: [nx, module federation, rspack, zephyr cloud]
cover_image: /blog/images/2024-09-12/next-gen-module-federation-deployments.png
cover_image: /blog/images/2024-09-12/next-gen-module-federation-deployments.avif
published: true
description: Learn how Nx and Zephyr Cloud simplify deploying Micro Frontends with Module Federation, making it easier to manage multiple build artifacts.
---
@@ -3,7 +3,7 @@ title: Announcing your Monorepo World Speakers Part 2
slug: announcing-your-monorepo-world-speakers-pt-2
authors: ['Mike Hartington']
tags: [monorepo-world]
cover_image: /blog/images/2024-09-16/mw-blog-post.avif
cover_image: '/blog/images/2024-09-16/mw-blog-post.avif'
description: Meet the next group of Monorepo World speakers, including experts from Aspect Build Systems, Trunk.io, and more, discussing Python monorepos, Bazel, and large-scale merge queues.
---
@@ -3,7 +3,7 @@ title: '"The Pit of Success" w/ Ruben Casas of Postman | Nx Enterprise Podcast E
slug: 'pit-of-success-podcast-5'
authors: ['Zack DeRose']
tags: [podcast]
cover_image: /blog/images/2024-09-18/podcast-5-thumbnail.png
cover_image: /blog/images/2024-09-18/podcast-5-thumbnail.avif
podcastYoutubeId: oTZLTNtndxc
podcastSpotifyId: 7LJlqLGR708OccUwyzz9wT
podcastAmazonUrl: https://music.amazon.com/podcasts/a221fdad-36fd-4695-a5b4-038d7b99d284/episodes/352e8cef-b8df-4e81-be38-96a0cf62e0f5/the-enterprise-software-podcast-by-nx-the-enterprise-software-podcast-by-nx-5-ruben-casas-postman
+1 -1
View File
@@ -3,7 +3,7 @@ title: Nx 19.8 Update!!
slug: nx-19-8-update
authors: [Zack DeRose]
tags: [nx, release]
cover_image: /blog/images/2024-09-20/thumbnail.png
cover_image: /blog/images/2024-09-20/thumbnail.avif
youtubeUrl: https://youtu.be/Zgv4LHvwGx0
description: The final minor release before Nx v20 brings Nx Import, improved task scheduling, and Project Crystal support for Angular projects.
---
+1 -1
View File
@@ -3,7 +3,7 @@ title: Evolving Nx
slug: evolving-nx
authors: [Jeff Cross]
tags: [nx, release]
cover_image: /blog/images/evolving-nx/thumbnail.png
cover_image: /blog/images/evolving-nx/thumbnail.avif
description: Nx's journey from a side project to a tool for millions, including Nx Cloud and Nx Powerpack developments.
---
@@ -3,7 +3,7 @@ title: Introducing Nx Powerpack
slug: introducing-nx-powerpack
authors: [Juri Strumpflohner]
tags: [nx, release]
cover_image: /blog/images/introducing-powerpack/thumbnail.png
cover_image: /blog/images/introducing-powerpack/thumbnail.avif
description: Introducing Nx Powerpack, a paid extension suite for enterprise use cases, ensuring Nx remains open source and existing features are free.
---
@@ -130,7 +130,7 @@ Read all about how to [configure Codeowners for your project in our docs](/nx-en
We're releasing the `@nx/conformance` plugin in an early preview. This new package focuses specifically on the maintainability of your monorepo. It allows you to encode your organization's standards so they can be enforced automatically. In this first version, the workspace conformance package ships with:
- [Enforce Module Boundaries](/nx-api/conformance#enforce-module-boundaries): Similar to the Nx ESLint [Enforce Module Boundaries rule](https://nx-dev-git-docs-powerpack-nrwl.vercel.app/features/enforce-module-boundaries), but enforces boundaries on every project dependency, not just those created from TypeScript imports or `package.json` dependencies.
- [Enforce Module Boundaries](/nx-api/conformance#enforce-module-boundaries): Similar to the Nx ESLint [Enforce Module Boundaries rule](/features/enforce-module-boundaries), but enforces boundaries on every project dependency, not just those created from TypeScript imports or `package.json` dependencies.
- [Ensure Owners](/nx-api/conformance#ensure-owners): Requires every project to have an owner defined for the `@nx/owners` plugin.
To get started, install the following package:

Some files were not shown because too many files have changed in this diff Show More