Compare commits

...

315 Commits

Author SHA1 Message Date
FrozenPandaz 23a145ee4f chore(repo): test 2024-12-05 15:42:33 -05:00
Jack Hsu 7c25cf150d fix(remix): update lib generator to generate valid names in package.json (#29219)
<!-- 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
`nx g @nx/remix:lib packages/foo` generates invalid package names in new
TS setup. e.g. `@acme/packages/foo`.

## Expected Behavior
The name should be valid in `package.json`.

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

Fixes #
2024-12-05 11:04:47 -05:00
Jack Hsu f89fca98f3 fix(remix): update app generator with valid package.json without Prettier (#29218)
<!-- 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 -->
If you don't have Prettier installed, then `nx g @nx/remix:app
apps/myapp` will generate a `package.json` with trailing comma, and `npm
install` fails.

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
`package.json` should be valid without Prettier.

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

Fixes #
2024-12-05 10:27:53 -05:00
Leosvel Pérez Espinosa 625d8f3095 feat(angular): add migration to remove the tailwindConfig option from ng-packager executors (#29220)
Add migration to remove the `tailwindConfig` option from the ng-packagr
executors, which have been unused since Angular v17. Tailwind CSS
configurations located at the project or workspace root will be picked
up automatically.

<!-- 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 #29217
2024-12-05 16:18:50 +01:00
Thomas Dekiere b848bb3dba fix(release): skip changelog generation for projects without available version data (#29212) 2024-12-05 16:38:04 +04:00
Leosvel Pérez Espinosa 2fa3ce21d4 feat(angular): add migration to remove angular eslint rules removed in v19 (#29214)
Add migration to remove Angular ESLint rules that were removed in v19:

- `@angular-eslint/no-host-metadata-property`
- `@angular-eslint/sort-ngmodule-metadata-arrays`
- `@angular-eslint/prefer-standalone-component`

See Angular ESLint v19 changelog for reference:
https://github.com/angular-eslint/angular-eslint/blob/main/CHANGELOG.md#1900-2024-11-29

<!-- 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 #
2024-12-05 11:12:52 +01:00
Jason Jean 15060e3a4f fix(core): recreate db when unable to connect (#29207)
<!-- 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 Nx is unable to connect to the DB, nothing works and the user needs
to run `nx reset` to remove the db file.

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

When Nx is unable to connect to the DB, the db is destroyed and
recreated automatically within the same command.

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

Fixes #
2024-12-04 17:27:35 -05:00
Jason Jean 4773e35d01 chore(repo): update nx to 20.2.0-beta.7 (#29198)
<!-- 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.2.0-beta.3`

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

This repo uses Nx `20.2.0-beta.7`

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

Fixes #
2024-12-04 15:42:15 -05:00
Colum Ferry 7157e7a07c fix(rspack): align @rspack/core versions (#29199)
Align rspack versions amongst packages and update useLegacyNxPlugin
helper to match new API changes
2024-12-04 18:05:49 +00:00
Jack Hsu 6c5916a79f feat(rollup): use .cjs file extension for config files (#29196)
The `rollup.config.js` file will be resolved as ESM if the closest
`package.json` has `type: 'module`. This causes an error when computing
the project graph and when reading the file for builds.

```
  Original error: require is not defined in ES module scope, you can use import instead
```

<!-- 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 PR also updates the output directory to `{projectRoot}/dist` for
the new TS setup.

## Current Behavior
`nx g @nx/react:lib --bundler=rollup` has an error due to Node
resolution

## Expected Behavior
`nx g @nx/react:lib --bundler=rollup` works out of the box

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

Fixes #29193, #[29195](https://github.com/nrwl/nx/issues/29195)

---------

Co-authored-by: Leosvel Pérez Espinosa <leosvel.perez.espinosa@gmail.com>
2024-12-04 12:53:42 -05:00
Jack Hsu 972c01bd25 feat(storybook): add support for TS solutions file (#29194)
This PR adds support for the [new TS
setup](https://github.com/nrwl/nx/discussions/29099) with Storybook.
2024-12-04 17:44:07 +00:00
Leosvel Pérez Espinosa 59e3704fb3 fix(testing): force compatible module resolution when running the jest executor (#29189)
<!-- 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 #29139
2024-12-04 12:04:45 -05:00
Colum Ferry aefafc55ba feat(module-federation): alias host and remote generators to consumer and producer (#29190)
## Current Behavior
Our Module Federation support across Angular and React contains Host and
Remote generators.
The module-federation.io docs have started to shift towards Consumer and
Producer terminology for better translation of meanings across
languages.


## Expected Behavior
To stay consistent with official terminology, add aliases for the host
and remote generators to allow for the new terminology. i.e. host ->
consumer, remote -> producer.

Therefore the following are all valid

```shell
nx g host shell --remotes=remote1
nx g host shell --producers=producer1
nx g consumer shell --remotes=remote1
nx g consumer shell --producers=remote1

nx g remote remote1 --host=shell
nx g remote remote1 --consumer=shell
nx g producer producer1 --host=shell
nx g producer producer1 --consumer=shell
```
2024-12-04 16:45:27 +00:00
James Henry 67d03937b5 fix(release): set make_latest legacy during github release creation (#29197) 2024-12-04 11:32:52 -05:00
Leosvel Pérez Espinosa db5e2f63bf docs(core): update nx sync messaging in npm workspaces tutorial (#29188)
Update the npm workspaces tutorial to reflect the changes made in
https://github.com/nrwl/nx/pull/29149.

Updated doc:
https://nx-dev-git-docs-nx-sync-terminal-output-nrwl.vercel.app/getting-started/tutorials/npm-workspaces-tutorial

<!-- 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 #
2024-12-04 17:28:49 +01:00
Jason Jean bba941ab4d fix(core): move resolving plugins back to main thread (#29176)
<!-- 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 -->

Resolving custom plugins to their paths to be loaded involves loading
our default plugins. When plugin isolation, this loads the default
plugins for each and every plugin worker.

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

Resolution of the plugins is the same and easily serializable to send to
the worker. Resolving plugins on the main thread allows Nx to reuse the
default plugins and decrease the memory usage greatly.

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

Fixes #
2024-12-04 10:05:43 -05:00
Leosvel Pérez Espinosa 1dbddb11ba feat(angular): update analog packages (#29187)
<!-- 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 #
2024-12-04 11:46:52 +01:00
Jason Jean 75b2080521 chore(core): fix test mocking (#29183)
<!-- 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 mock for this test is not actually mocking the function being used.

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

The function being used is getting mocked.

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

Fixes #
2024-12-03 19:59:59 -05:00
Nicholas Cunningham dd14f3943c fix(react): None buildable libs should not have a build target (#29175) 2024-12-03 16:30:51 -07:00
Leosvel Pérez Espinosa 3cc321d4ce fix(js): generate multiline project references in the sync generator (#29148)
Update the `@nx/js:typescript-sync` sync generator to produce the
updated project references in multiple lines. This improves the
formatting of the generated project references when not using Prettier.

<!-- 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 #
2024-12-03 15:58:10 -05:00
Nicholas Cunningham c1469b68ca fix(core): Update preset test snapshots and test names (#29172)
- Creates uniq names for each preset test case
- Updates the test names so you can run each `it` via IDE
2024-12-03 15:57:32 -05:00
Leosvel Pérez Espinosa 38e29b9e90 feat(angular): use new test environment function from jest-preset-angular (#29169)
<!-- 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 #29165
2024-12-03 15:24:14 -05:00
Colum Ferry 54dbbfded5 fix(core): use fork to execute nx generate workspace:preset (#29122)
## Current Behavior
On Windows, when packageManager=pnpm, `create-nx-workspace` fails due to
an issue with `child_process.spawn`.
Using `spawn`, the `@nx/workspace:preset` generator is executed twice
when `packageManager=pnpm`, causing the overall create-nx-workspace flow
to fail, even though most things have been set up correctly to that
point.

Using `fork` has shown success.

## Expected Behavior
Running `create-nx-workspace --packageManager=pnpm` should work on
Windows

## Fixes
Fixes #20222 
Fixes #27270 
Fixes #22917 
Fixes #22312 
Fixes #28710 
Fixes #28289 
Fixes #28235 
Fixes #22383 
Fixes #21742 
Fixes #20270
2024-12-03 15:17:08 -05:00
Philip Fulcher 9bd08851f0 docs(nx-dev): add monorepo relationships blog post (#29152) 2024-12-03 12:27:13 -07:00
Craigory Coppola 6bd86158d1 fix(core): provide a way to reuse cached graph in CI (#29156)
<!-- 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 #
2024-12-03 13:23:06 -05:00
Jason Jean 9ad6b8c208 fix(core): fix misc issues (#29114)
<!-- 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 fixes several issues:

1. Affected loaded plugins again.
2. `package-json` plugin takes a while and is loaded often.
3. Performance logging was not showing up properly.

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

1. Affected does not load plugins again.
2. `package-json` plugin utilizes a cache so that it is fast even when
it is loaded often.
3. Performance logging shows up properly

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

Fixes #

---------

Co-authored-by: Craigory Coppola <craigorycoppola@gmail.com>
2024-12-03 10:24:28 -05:00
Colum Ferry d32ca3788e docs(module-federation): add link to module-federation.io (#29166)
Add a link to https://module-federation.io from the `@nx/module-federation` README
2024-12-03 14:45:20 +00:00
Leosvel Pérez Espinosa 201cd89f5a fix(js): normalize paths correctly when creating temporary tsconfig file for incremental builds (#29121)
<!-- 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 #28316
2024-12-03 15:38:53 +01:00
Leosvel Pérez Espinosa c62d78dd7e feat(angular): add migration to disable @angular-eslint/prefer-standalone when not set (#29164)
- Add migration to disable the `@angular-eslint/prefer-standalone` rule
when it's not already set. This prevents a breaking change due to the
[rule being promoted to the recommended rules in
v19](https://github.com/angular-eslint/angular-eslint/commit/8dfdc4f4d4b2a0b23f91aeb7ef14fa384bec3cec).
- Update the `@nx/angular` package peer dependencies range to drop
Angular v16 and include Angular v20.

<!-- 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 #29163
2024-12-03 15:30:09 +01:00
Leosvel Pérez Espinosa e9be7d92cf feat(core): improve sync messages (#29149)
## `nx sync:check` (out of sync)

**Before**:

![image](https://github.com/user-attachments/assets/3fd737be-9c08-4cb4-b4e2-956bfd325ec7)

**After**:

![image](https://github.com/user-attachments/assets/c96c8f6c-b5e9-4566-88e4-cbe66037e411)

> The `Custom out of sync message` in these examples is a message
returned from the sync generator, while the other one is the fallback
message displayed if the sync generator doesn't return one.

## `nx sync:check` (up to date)

**Before**:

![image](https://github.com/user-attachments/assets/88f46c72-7222-4407-8b4a-90b4b6a7c9de)

**After**:

![image](https://github.com/user-attachments/assets/f4b9e181-67cd-4042-b1ac-be61fb400711)

## Running tasks

**Before**:

![image](https://github.com/user-attachments/assets/0bdc160c-c893-421a-8407-4de05e4d31b4)

**After**:

![image](https://github.com/user-attachments/assets/a7f2d471-1ad8-450f-8438-d1c3d4f8a3f9)

## Sync generator failures

**Before**:

![image](https://github.com/user-attachments/assets/805941cb-cef8-4346-9572-4eea142e6b40)

**After**:

![image](https://github.com/user-attachments/assets/621a3217-efe1-4f92-932f-80509d205dbc)

## Sync generator failures (`--verbose`)

**Before**:

![image](https://github.com/user-attachments/assets/070c22a6-39d0-4c6d-9f9f-38d77903eb6b)

**After**:

![image](https://github.com/user-attachments/assets/b007ecf7-100e-4e04-a7b1-d8bb713dbb37)

<!-- 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 #
2024-12-03 15:28:12 +01:00
Colum Ferry 5448046f06 feat(module-federation): move common executor logic to module-federation package (#29151)
## Current Behavior
The logic for the `module-federation-dev-server` and
`module-federation-ssr-dev-server` is duplicated across Angular, React
and Rspack.

The majority of this logic is the same, and the duplication causes an
increased maintenance tax.

## Expected Behavior
Move the logic into a utility that is exposed from
`@nx/module-federation`.
2024-12-03 08:15:20 -05:00
Benjamin Cabanes da901dec08 docs(nx-dev): update team (#29160) 2024-12-03 07:59:08 -05:00
Juri Strumpflohner 922c0469b1 docs(testing): fix playwright API docs about task splitting (#29162)
Co-authored-by: Isaac Mann <isaacplmann@users.noreply.github.com>
2024-12-03 04:57:34 -08:00
Juri a54bbcc8ac docs(nx-cloud): remove note on --with-env-vars=auto as it is breaking users badly 90% of the time 2024-12-03 11:12:03 +01:00
Benjamin Cabanes 6b870050b6 docs(nx-dev): add Pro plan details to FAQ (#29155)
Included a new FAQ entry to clarify the existence and conditions of the
Pro plan for existing users, which is no longer available to new users.
Added a link to this FAQ section from the pricing display page to help
users easily find information about the Pro plan. Updated HTML in the
FAQ section with an additional class for better scrolling behavior.

---------

Co-authored-by: Juri Strumpflohner <juri.strumpflohner@gmail.com>
2024-12-02 16:31:42 -05:00
Benjamin Cabanes 8c25c02112 docs(nx-dev): add rb2b script to _app.tsx (#29154)
This commit integrates the rb2b tracking script into the application by injecting it into the page with the `afterInteractive` strategy.
2024-12-02 15:54:19 -05:00
Caleb Ukle 6a46030995 docs(core): update e2e-ci glob example (#29150)
<!-- 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 glob pattern in the e2e-ci example is incorrect for nested
directories example mentioned.
## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
when using nested directories the **/** pattern is needed, so the
example was incorrect
it's also confusing why something wouldn't work, so added more info as
to the different common glob patterns (`**/*`, `**/**`) to be more clear

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

Fixes #

---------

Co-authored-by: Isaac Mann <isaacplmann@users.noreply.github.com>
2024-12-02 14:56:12 -05:00
Leosvel Pérez Espinosa 3ec539065d feat(angular): add support for angular v19 (#28847)
## Third-party deps support for Angular v19

- [x] `jest-preset-angular`
  - [x] PRs:
    - [x] https://github.com/thymikee/jest-preset-angular/pull/2835
  - [x] Released:
- [x] RC:
https://github.com/thymikee/jest-preset-angular/releases/tag/v14.4.0-rc.0
- [x] Stable:
https://github.com/thymikee/jest-preset-angular/releases/tag/v14.4.0
- [x] Angular ESLint
  - [x] PRs:
    - [x] https://github.com/angular-eslint/angular-eslint/pull/2109
  - [x] Released:
- [x]
https://github.com/angular-eslint/angular-eslint/releases/tag/v19.0.0
- [x] Storybook
  - [x] PRs:
    - [x] https://github.com/storybookjs/storybook/pull/29659
    - [x] https://github.com/storybookjs/storybook/pull/29677
  - [x] Released:
    - [x] https://github.com/storybookjs/storybook/pull/29679
- [ ] NgRx
  - [x] PRs:
    - [x] https://github.com/ngrx/platform/pull/4602
  - [ ] Released:
- [x] Beta:
https://github.com/ngrx/platform/blob/main/CHANGELOG.md#1900-beta0-2024-11-20
    - [ ] Stable:
- [ ] Analog
  - [x] PRs:
    - [x] https://github.com/analogjs/analog/pull/1447
    - [x] https://github.com/analogjs/analog/pull/1451
  - [ ] Released:
- [x] Beta:
https://github.com/analogjs/analog/releases/tag/v1.10.0-beta.6
    - [ ] Stable:

<!-- 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 -->

Angular v19 is not supported.

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

Angular v19 should be supported.

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->
 
Fixes #29028
2024-12-02 11:43:24 -05:00
Zachary DeRose 06d549b043 docs(misc): advent of code 2024 starter repo blog (#29132)
<!-- 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 #
2024-11-30 19:17:19 -05:00
Jack Hsu ec5a5e6360 feat(react): update app and lib generators to support new TS solution setup (#28808)
This PR updates app and lib generators in the following packages such
that they will generate files with the TS solution setup if it is
detected.

- `@nx/react`
- `@nx/next`
- `@nx/remix`
- `@nx/expo`
- `@nx/react-native`

React apps and libs will be linked using npm/pnpm/yarn/bun workspaces
feature rather than through tsconfig paths. This means that local
aliases like `@/` will work with Next.js and Remix apps.

Note: This will be behind `--workspaces` flag when using `npx
create-nx-workspace` and choosing React stack. If you use the None/TS
stack then adding plugins like `nx add @nx/react` then generating apps,
it will automatically pick up the new TS solution setup.


<!-- 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
React generators are not compatible with TS solution setup (i.e.
workspaces + TS project references).

## Expected Behavior
React generators work with new TS solution setup (Plain, Next.js, Remix,
Expo, React Native).

## Related Issue(s)
#28322

---------

Co-authored-by: Leosvel Pérez Espinosa <leosvel.perez.espinosa@gmail.com>
Co-authored-by: Nicholas Cunningham <ndcunningham@gmail.com>
2024-11-28 22:18:45 -05:00
Nicholas Cunningham 2cb58b937d fix(webpack): Webpack and Rspack ignore warnings should concat all rules instead of overwrite them. (#29112)
<!-- 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 #18243
2024-11-28 15:36:40 -07:00
Nicholas Cunningham 08a33075a7 fix(nest): update project config to enable artifacts to be built as dev (#29110)
<!-- 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 generate a Nest application and run the serve target
with development configuration the `node-env` is set to `production`.

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
Running the serve target in `development` should build the artifacts as
`development` so they can be served correctly.

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

Fixes #26761
2024-11-28 10:23:09 -07:00
Leosvel Pérez Espinosa dc67660fec fix(misc): update artifact generator option descriptions and cleanup leftovers (#29077)
- Update artifact generator schemas:
- Clarify `path` is the artifact file path relative to the current
working directory
  - Clarify `name` is the artifact symbol name
- Remove prompt for `name` and remove it from the important options
(won't be displayed by default in Nx Console generation UI, it will be
part of the collapsed options) given that most of the time, it's meant
to match the filename (last segment of the `path`)
- Remove some leftover options related to the name and path formats that
were previously missed
- Fix an issue with NestJS generators
- Fix an issue with Next `page` generator

<!-- 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 #
2024-11-28 09:44:44 -05:00
Colum Ferry c66b99c499 docs(testing): add example of using Playwright's --project argument with Nx (#29107)
## Current Behavior
Missing documentation on how to use Playwright's `--project` argument
with Nx.
Because Nx also has a `--project` argument, passing it to the command
like `nx e2e app --project=firefox` will result in the `--project` being
stripped from the command that is sent to Playwright.


## Expected Behavior
The fix is simple enough, change the command to be `nx e2e app --
--project=firefox` to ensure the argument is forwarded correctly to
Playwright.
Add some information to the Playwright plugin's overview documentation
to explain this.


## Related Issue(s)

Fixes #26965
2024-11-28 05:37:08 -08:00
Colum Ferry 182b46ca66 fix(module-federation): use 'hoisted' runtime for node to prevent issues with eager sharing (#29104)
## Current Behavior
SSR with Module Federation frequently encounters issues related to the
eager resolution of shared packages.
This has resulted in numerous erroneous behaviours including but not
limited to:
- Failure to start server
- Failure to resolve remotes
- Failure to server render remotes

## Expected Behavior
Using the `'hoisted'` runtime provided by MF 2.0, we can ensure that SSR
for Module Federation runs in an async environment, removing the issues
surrounding eager consumption and resolution of shared modules.
In testing, this has fixed the issues outlined above

## Related Issue(s)

Fixes #27000
Fixes #27964
2024-11-28 11:38:17 +00:00
Nicholas Cunningham 8eb6159696 fix(nextjs): Add support for next.config.ts for executors (#29071)
<!-- 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 #28960
2024-11-27 13:50:48 -05:00
Nicholas Cunningham 25c5643283 fix(nest): Fix generators (guard, interceptor etc...) path to not duplicate when provided (#29084)
<!-- 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 we run the nest generators (interceptor, resource, guard etc...) it
tends to duplicate the path and leads to unexpected folder creations.

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
It should generate in the path provided.

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

Fixes #29076
2024-11-27 10:24:06 -07:00
Rares Matei 0bf7565664 docs(nx-cloud): add breaking change mention for terminal outputs (#29097)
<!-- 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 #
2024-11-27 16:46:09 +00:00
Jason Jean b018b94096 fix(core): update to the async version of getting powerpack information (#29088)
<!-- 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 deprecated sync API for getting powerpack license information is
used.

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

The new async API for getting powerpack license information is used if
it is available. If not, it uses the sync API.

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

Fixes #
2024-11-26 20:10:00 -05:00
Benjamin Cabanes 1ea7bb43e1 docs(nx-dev): update webinar signup link (#29090)
Replaced the URL in the webinar signup link with a shortened version to simplify the href. Removed the onClick event handler for tracking the webinar sign-up click event.
2024-11-26 18:58:21 -05:00
Benjamin Cabanes 47663727c1 docs(nx-dev): add WebinarNotifier component (#29087)
Introduce the `WebinarNotifier` component and integrate it within the app. This helps in promoting the upcoming webinars to users by displaying a notification banner with details and a signup link.
2024-11-26 18:55:09 -05:00
Jason Jean 0d0d6c7c11 feat(misc): replace tutorials with social links in create-nx-workspace (#29085)
<!-- 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, `create-nx-workspace` links to tutorials which in most cases,
users are in the middle of doing or have already done in the past.

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

Rather than tutorials, `create-nx-workspace` will welcome users to the
Nx community and give them ways to show their appreciation, stay up to
date, and chat about Nx.

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

Fixes #
2024-11-26 17:49:32 -05:00
Benjamin Cabanes 4030494cd5 docs(nx-dev): update case study link (#29086) 2024-11-26 16:26:02 -05:00
Juri 6089b28916 docs(release): update how the publish results are handled 2024-11-26 21:47:13 +01:00
James Henry 9ab1068d1d docs(repo): update some conformance docs (#29073) 2024-11-27 00:33:28 +04:00
Benjamin Cabanes a435e263cd docs(nx-dev): udpate links for Banking Case Study downloads (#29082)
Corrected URLs in both `enterprise-customers.tsx` and
`metrics-and-customers.tsx` to ensure users can access the Banking Case
Study.
2024-11-26 14:37:17 -05:00
Juri Strumpflohner bcaef27046 docs(core): adjust nx course video titles for better SEO (#29079)
Co-authored-by: Isaac Mann <isaacplmann@users.noreply.github.com>
2024-11-26 08:32:05 -08:00
Benjamin Cabanes c75aa8f661 docs(nx-dev): update ebook download link (#29081)
Changed the href in `download-ebook.tsx` to point to the new CI ebook URL.
2024-11-26 11:07:47 -05:00
Andy 55143297be server-next-executor-examples: minor typo documentation (#28830)
## Current Behavior

Typo


![image](https://github.com/user-attachments/assets/39b5ebe8-5518-4afb-8c32-1c736489bf6c)
2024-11-26 08:06:55 -07:00
Colum Ferry a5c5cbf326 fix(module-federation): migration does not handle external nodes and errors (#29075)
## Current Behavior
The React + Angular migrations intended to update the path for the
`ModuleFederationConfig` imports in webpack and rspack config files will
fail on externalNodes in the project graph that have `@nx/webpack` or
`@nx/rspack` listed as a dependency.

## Expected Behavior
If the dependency is discovered in an `externalNode` we should skip that
node, instead of continuing with the migration.
2024-11-26 14:55:02 +00:00
Craigory Coppola 30d722bd98 chore(core): warn when db cache is disabled (#28929)
<!-- 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 #
2024-11-26 09:52:37 -05:00
Nicholas Cunningham beded4ef6d fix(angular): ngrx-root-store generator check ngModule path (#29068)
<!-- 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 we run the ngrx-root-store generator on a MFe host app it assumes
`app.module.ts` is created.

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
We should check if `app.module.ts` exists first, then fall back if not.

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

Fixes #28970
2024-11-25 16:52:28 -07:00
James Henry 8b3f9d883a chore(repo): use nx-cloud conformance (#29062) 2024-11-25 18:00:57 -05:00
Nicholas Cunningham cbc19c54ae fix(nextjs): ensure next apps config is correctly checked when using jest (#29066)
<!-- 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 we create a new Next.js app it checks if `tsconfig.app.json` exists
else it throws an error.

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
It should check for `tsconfig.json` instead of `tsconfig.app.json`

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

Fixes #29035
2024-11-25 13:36:19 -07:00
Juri 9921496d64 feat(nx-dev): update top-level navbar 2024-11-25 21:33:22 +01:00
MaxKless 6904789b10 fix(core): don't generate nxCloudId if running nx connect through nx console (#29060) 2024-11-25 09:02:12 -07:00
Colum Ferry 5f92f1729b fix(rspack): outputHashing should default to 'all' #29011 (#29058)
## Current Behavior
Current default for outputHashing is set to 'none'.
This means that both executor and plugin usage will output file names
that will not bust browser cache.

## Expected Behavior
Set default for `outputHashing` to 'all' to ensure all outputted files
are hashed allowing for cache busting.

## Related Issue(s)

Fixes #29011
2024-11-25 09:26:23 -05:00
Isaac Mann fc7ee36a96 chore(nx-dev): wrap breadcrumbs (#29059) 2024-11-25 16:37:19 +04:00
Jason Jean 128778e7d1 chore(repo): update nx to 20.2.0-beta.3 and other dependencies (#29049)
<!-- 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.2.0-beta.2`.

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

This repo uses Nx `20.2.0-beta.3`.

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

Fixes #
2024-11-22 18:49:51 -05:00
Isaac Mann c7894d7579 docs(core): enterprise conformance rules docs (#29046)
Co-authored-by: JamesHenry <james@henry.sc>
2024-11-22 17:20:48 -05:00
FrozenPandaz 1bf0e67e1b fix(core): handle self shutdown for plugin workers is orphaned before connections and loading 2024-11-22 15:56:11 -05:00
FrozenPandaz 0ae87f191c Revert "fix(core): lower socket path by 10 chars to reduce chances of too-long paths (#28920)"
This reverts commit be8029d5dd.
2024-11-22 15:56:11 -05:00
Altan Stalker a4c79d0f92 docs(nx-cloud): improve --stop-agents-after docs and add advanced example (#29044)
## Current Behavior
Docs are not representative of current feature set

## Expected Behavior
Docs are representative of current feature set
2024-11-22 15:38:00 -05:00
Colum Ferry 007c0c85a9 fix(rspack): ensure generated app is picked up by crystal (#29048)
<!-- 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 -->
Current projects are added to excludes of rspack plugin.
Init is also not detecting rspack workspaces

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
Ensure excludes is not being set up when generating new apps as they are
resilient to project graph creation now.
Init should detect projects correctly


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

Fixes #
2024-11-22 14:08:28 -05:00
Colum Ferry 840d935d2e feat(module-federation): move withModuleFederation for rspack to new package (#29045)
<!-- 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 `withModuleFederation` helper currently lives in the `@nx/rspack`
package.
With the goal of consolidating the module federation support into a
single package, this introduces a divergence in where module-federation
support lies


## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
Move `withModuleFederation` helper for angular into the
`@nx/module-federation` package, exposed via
`@nx/module-federation/rspack`.
Adds a migration to migrate existing projects to use the new package

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

Fixes #
2024-11-22 13:26:00 -05:00
Louie Weng 9526560fa0 docs(nx-cloud): add docs for assignment rules (#28855)
<!-- 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
-->

Add documentation for how assignment rules feature works with Nx Cloud. 

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

Fixes #

---------

Co-authored-by: Isaac Mann <isaacplmann@users.noreply.github.com>
Co-authored-by: Isaac Mann <isaacplmann@gmail.com>
2024-11-22 18:20:58 +00:00
Colum Ferry 432d9d3b17 feat(module-federation): move withModuleFederation for webpack to new package (#29031)
<!-- 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 `withModuleFederation` helper currently lives in the `@nx/react`
package.
With the goal of consolidating the module federation support into a
single package, this introduces a divergence in where module-federation
support lies


## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
Move `withModuleFederation` helper for angular into the
`@nx/module-federation` package, exposed via
`@nx/module-federation/webpack`.
Adds a migration to migrate existing projects to use the new package

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

Fixes #
2024-11-22 08:28:13 -05:00
Nicholas Cunningham a37a9c2f8b fix(rspack): Add webpack as a dependency for fork-ts-checker-plugin (#29033) 2024-11-22 08:18:02 +01:00
Nicholas Cunningham 5bd8f4f3a2 feat(rspack): Update configuration generator to support NxRspackAppPlugin (#29024)
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 #

---------

Co-authored-by: Colum Ferry <cferry09@gmail.com>
2024-11-21 23:18:40 -05:00
Isaac Mann a1efb63819 fix(nx-dev): breadcrumb casing (#29032)
Fixes the breadcrumb component to show actual page titles instead of
just capitalizing the url segments
2024-11-21 17:20:33 -05:00
Isaac Mann c3d53a4900 docs(core): fix star icon 2024-11-21 21:52:48 +01:00
Isaac Mann 58769f8634 docs(core): star on github cta 2024-11-21 21:52:48 +01:00
Jack Hsu b16122d5fa fix(core): gracefully handle non-existent files in find_imports (#29027)
<!-- 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 #
2024-11-21 13:17:13 -05:00
Colum Ferry 9ca15f75b0 feat(module-federation): move withModuleFederation for angular to new package (#29021)
<!-- 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 `withModuleFederation` helper currently lives in the `@nx/angular`
package.
With the goal of consolidating the module federation support into a
single package, this introduces a divergence in where module-federation
support lies


## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
Move `withModuleFederation` helper for angular into the
`@nx/module-federation` package, exposed via
`@nx/module-federation/angular`.
Adds a migration to migrate existing projects to use the new package

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

Fixes #
2024-11-21 11:07:51 -05:00
Juri 940ada38b4 docs(devkit): adjust icons on extending nx intro page 2024-11-21 15:53:02 +01:00
Colum Ferry 5cc88b87a2 feat(rspack): add convert-to-inferred generator (#29012)
- feat(module-federation): migrate to latest
- feat(rspack): add convert to legacy plugin
- feat(rspack): add convert-to-inferred generator

<!-- 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 -->
Our current rspack configs rely on executor usage.
But there is no automated method to convert the config to use inferred
targets

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
Add convert-to-inferred generator

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

Fixes #
2024-11-21 09:19:08 -05:00
Pavlo Grosse 02b8bbeffe fix(angular): make scam-to-standalone replace correct module (#29014)
## Current Behavior
Without this fix, the regular expression would replace other modules
that have old module name in their name.
E.g. `MapIconModule` contains `IconModule` and when migrating
`IconModule`, the migration would wrongfully update `MapIconModule` to
`MapIconComponent`.

## Expected Behavior
Migration changes only the Module/Component that's being migrated.
2024-11-21 09:28:42 +01:00
Tine Kondo 60a9f81dac fix(core): add missing supported CI providers to NxCloud type (#29008) 2024-11-20 18:23:15 -05:00
Colum Ferry 79855a5471 feat(rspack): migrate to latest rspack versions (#29004)
<!-- 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 -->
We're currently installing Rspack 1.0.5. The latest is 1.1.2.


## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
Ensure we install the latest for users, and migrate existing users to
latest

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

Fixes #
2024-11-20 16:33:04 -05:00
Dennis Harder c6784b21c5 docs(core): improvement for better understanding (#28699)
improvement the typo and the tutorial for beginners

<!-- 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 #
2024-11-20 15:23:13 -05:00
Benjamin Staneck 4187d56371 docs(core): update installation.md instructions for yarn (#28596)
<!-- 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` -->
`yarn global` was removed in modern versions of yarn, this adds a hint
that it is only available in v1 of it.


<!-- 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. -->
2024-11-20 15:21:57 -05:00
Colum Ferry 7ece24c067 feat(module-federation): migrate to latest (#29005)
<!-- 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 -->
There is a runtime resolve bug in older versions of Module Federation
2.0 Packages.
It is fixed in v0.7.6
We're currently installing 0.6.9


## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
Migrate to the latest version of MF2.0 packages

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

Fixes #
2024-11-20 14:03:52 -05:00
Jack Hsu 8f67441e63 fix(remix): remove tooling packages from generated package.json since they are installed in the root (#29009)
The `eslint` version is causing errors like:

```
Error while loading rule '@typescript-eslint/no-unused-expressions': Cannot read properties of undefined (reading 'allowShortCircuit')
```

This is because we are installing both eslint 8 and 9 to the workspace,
which are not compatible. We shouldn't need to add `eslint`,
`typescript`, `vite` and other tooling to the app's package.json since
they should following single version policy by default and be installed
at the root.

Note: This is only an issue when you enable workspaces.
<!-- 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 #
2024-11-20 13:31:18 -05:00
Emily Xiong b0a4f35afd fix(nextjs): fix next e2e test to ensure playwright installed (#29000)
<!-- 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 #
2024-11-20 09:47:47 -08:00
groninge 548973cd6c docs: update preserving-git-histories.md (#27846)
While following the docs to preserve git histories I ran into some
issues.
This update hopefully makes sure any future readers can complete the
outlined procedure successfully
2024-11-20 12:15:12 -05:00
Julián Gómez Sibecas 1c2ae37b6e chore(core): nx plugin submission nx-foundry (#28025)
<!-- 
_[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-foundry

<!-- 
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: Isaac Mann <isaacplmann@users.noreply.github.com>
2024-11-20 10:08:32 -05:00
Jack Hsu ce6caba1f9 chore(repo): ensure playwright is installed before running e2e tests (#29006)
We're using Playwright by default, but the e2e test is ensuring Cypress
installation.

<!-- 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 #
2024-11-20 09:48:01 -05:00
Thomas Dekiere a0d760f790 fix(release): remove duplicate space character in changelog thank you header (#28664) 2024-11-20 17:14:50 +04:00
Colum Ferry 09a01eb30c feat(rspack): add NxAppRspackPlugin and NxReactRspackPlugin (#28987)
- feat(rspack): add NxAppRspackPlugin
- feat(rspack): add NxReactRspackPlugin

<!-- 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 -->
We currently do not have rspack plugins to encapsulate our app, web and
react support for Rspack. This leads to issues with defining configs
that are supported by Crystal


## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
Add and expose two plugins, `NxAppRspackPlugin` and
`NxReactRspackPlugin`, to support building configs that are supported by
crystal

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

Fixes #
2024-11-19 16:01:10 -05:00
Nicholas Cunningham 2c53e742db fix(rspack): buildLibsFromSource option (#28994)
<!-- 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 `buildLibsFromSource` option is not being used. So even
if the user sets it to `'buildLibsFromSource': false` it will not be
updated.

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
The `buildLibsFromSource` should be supported.

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->
There is an issue with Rspack that requires the baseUrl to be set in the
generated tsconfig.

Fixes #
2024-11-19 15:55:55 -05:00
Benjamin Cabanes 8c66662e3e docs(nx-dev): update link href in trial-callout component (#28995)
Changed the href attribute for the sales contact link from "/contact-us/sales" to "/contact/sales" to correct the URL path.
2024-11-19 15:33:15 -05:00
demonicattack 25909b0d9e fix(linter): move eslint-config-prettier to the end for proper override (#28503)
There is a conflict between ESLint and Prettier rules, which causes
incorrect formatting behavior.

Reordering the config so that `eslint-config-prettier` is applied last
ensures proper rule overrides and resolves conflicts with Prettier.

---------

Co-authored-by: Leosvel Pérez Espinosa <leosvel.perez.espinosa@gmail.com>
2024-11-19 19:01:43 +01:00
Philip Fulcher e4ce2b1140 docs(nx-dev): fixes for affected project graph post (#28992)
<!-- 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 #
2024-11-19 09:24:28 -07:00
Philip Fulcher 429ea42c5f docs(nx-dev): add ci affected graph post (#28870) 2024-11-19 06:49:22 -05:00
Leosvel Pérez Espinosa 743cf47b1f chore(repo): remove unused generator default (#28957)
<!-- 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 #
2024-11-19 09:04:31 +01:00
Jason Jean 636cd77002 fix(linter): remove legacy dependencies during convert to flat config (#28981)
<!-- 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 -->

`@typescript-eslint/eslint-plugin` and `@typescript-eslint/parser` are
left at old versions after converting to flat config.

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

`@typescript-eslint/eslint-plugin` and `@typescript-eslint/parser` are
removed when converting to flat config.

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

Fixes #
2024-11-18 16:38:44 -05:00
Colum Ferry 76d61ea5e6 feat(module-federation): consolidate module federation utils into module-federation package (#28919)
- feat(module-federation): consolidate module federation utils into
module-federation package
- chore(module-federation): fix tests and linting

<!-- 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 -->
Our current support for Module Federation relies on utilities that are
spread and duplicated across the `@nx/webpack` package and the
`@nx/rspack` package.



## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
Now that we have a `@nx/module-federation` package, dedupe the utils and
consolidate them into a single package

## Todo
- [x] Migrations for React + Angular to install `@nx/module-federation`
and point `ModuleFederationConfig` export to that package from
webpack.config and rspack.config files
2024-11-18 14:15:10 -05:00
Isaac Mann 0407b7a7b4 docs(core): database cache concept page (#28935)
Adds a concept page describing the database cache

---------

Co-authored-by: FrozenPandaz <jasonjean1993@gmail.com>
2024-11-18 10:02:54 -05:00
Chau Tran eaa458c5dd docs(nx-cloud): add cipe project graph recipe (#28961)
<!-- 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
N/A

## Expected Behavior
Add new recipe on the CI section about using CIPE Affected Project Graph

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

Fixes #

---------

Co-authored-by: Isaac Mann <isaacplmann@gmail.com>
2024-11-18 08:55:55 -06:00
Emily Xiong eb143d3ed6 feat(storybook): upgrade @storybook/test-runner to 0.19 (#28959)
<!-- 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 -->
I got this error locally, I think it is because @storybook/test-runner
is incompatible with storybook version
https://github.com/storybookjs/test-runner/issues/505
<img width="1147" alt="Screenshot 2024-11-15 at 12 22 13 PM"
src="https://github.com/user-attachments/assets/e2a9f4c9-e784-4946-8677-b60b62ff36ef">

from https://github.com/storybookjs/test-runner#storybook-compatibility
storybook ^8.2.0 should use @storybook/test-runner ^0.19.0

## 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 #
2024-11-18 11:07:44 +01:00
Jason Jean 8efad63f86 chore(repo): update nx to 20.2.0-beta.2 (#28958)
<!-- 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.1.0-beta.3`

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

This repo uses Nx `20.2.0-beta.2`

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

Fixes #
2024-11-15 15:47:29 -05:00
Benjamin Cabanes bbdc330958 docs(nx-dev): update docs format (#28964) 2024-11-15 14:18:26 -05:00
Benjamin Cabanes cb5a8ff8af docs(nx-dev): update plan references from Pro to Team (#28963)
Replaced mentions of "Pro plan" with "Team plan" across several documentation files to reflect the updated plan structure.
2024-11-15 14:03:38 -05:00
Benjamin Cabanes 090cadf866 docs(nx-dev): add MinIO icon & adjust nx powerpack cache layout (#28962)
Integrate a new MinIO icon into the UI icons library and Nx Powerpack features. Adjust the layout and styling of the Nx Powerpack features to improve flexibility and responsiveness.
2024-11-15 14:01:34 -05:00
Juri fc2016cc8a fix(nx-dev): disable notifier for now 2024-11-15 19:55:13 +01:00
Craigory Coppola 5176a1ea4b fix(core): ensure process is kept alive when plugin communication in progress (#28948)
<!-- 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
When using NX_PLUGIN_NO_TIMEOUTS there is not a reference counted as the
setTimeout is not called. This could theoretically result in node
killing the process if the only thing that was keeping it alive was the
plugin call.

## Expected Behavior
A ref is tracked either way to prevent the process from getting dropped.

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

Fixes #
2024-11-15 12:40:27 -05:00
Aaron Casanova 3763baf77f docs(misc): update reference to sharedGlobals (#27625) 2024-11-15 12:38:10 -05:00
Ikko Eltociear Ashimine e6d8437fa2 docs(react-native): update run-android-examples.md (#27771)
avaiable -> available

<!-- 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 #
2024-11-15 12:36:45 -05:00
Jonathan Cammisuli 2c0592503a docs(core): add information for s3 compatible providers (#28925)
<!-- 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 #
2024-11-15 11:28:38 -05:00
Nicholas Cunningham 1b7cd9b86f fix(webpack): sourceMap type should accept all types of sourceMaps (#28947) 2024-11-15 15:57:10 +00:00
Benjamin Cabanes 2d5acec2d1 docs(nx-dev): add credit pricing section (#28946)
It renames the ResourceClasses component to CreditPricing and updates its references throughout the application. It also includes additional non-compute pricing information and a more detailed breakdown of credit costs associated with various CI/CD operations for Nx Cloud.
2024-11-15 10:18:34 -05:00
Younes Jaaidi 88017bb96c chore(angular): recover mistakenly removed test (cf. #28694) (#28954) 2024-11-15 12:29:08 +01:00
Petr Plenkov 39f0b6f539 docs(linter): mention that eslint.config.cjs is supported (#28265)
## Current Behavior
Currently it is already possible to use `eslint.config.cjs` because of
this
[line](https://github.com/nrwl/nx/blob/c655b6cf4f8c65a03edde1ff3c79a7ba093b5c48/packages/eslint/src/utils/flat-config.ts#L7):

However docs section doesn't mention it

## Expected Behavior
This commit is supposed to mention this feature in the plugin
documentation

---------

Co-authored-by: Leosvel Pérez Espinosa <leosvel.perez.espinosa@gmail.com>
2024-11-15 11:36:15 +01:00
Dmitry Zakharov 0d6ad2b1b0 feat(core): add eslint vscode extension on eslint init (#28573)
<!-- 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 create fresh angular or react integrated project no eslint
extension out of the box. Few years ago I fill the issue
https://github.com/nrwl/nx/issues/7047 about deprecated tslint extension
looks like that has been deleted but without change to eslint extension
## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
when I create angular / react project eslint extension should be added
to recommended vscode extensions
## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2024-11-15 11:04:52 +01:00
pawel-twardziak 3c6c38773b fix(nest): repair nestjs service generator schema (#28928)
# Related Issue(s)

Fixes #28910
2024-11-14 14:26:34 -07:00
Colum Ferry 0686892ac8 fix(rspack): do not global styles as entrypoints (#28941)
<!-- 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 -->
Setting global styles as entry points in rspack causes HMR to fail


## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
Rspack does not require styles to be set as entrypoints as it will be
handled by the CssExtractPlugin.
Remove the entries

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

Fixes #
2024-11-14 14:25:21 -07:00
Mike Hartington b627c1f8af docs(core): add cors blog post (#28938)
<!-- 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 #
2024-11-14 15:52:38 -05:00
Colum Ferry ae7a84a47c fix(rspack): withModuleFederationForSSR should use commonjs-module as library (#28944)
<!-- 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 navigating directly to a route that renders a portion of a remote
app, SSR was not correctly server rendering the remote portion.
This was because of the output type provided to rspack and MFP

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
Ensure commonjs-module is set as output type for MF with SSR

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

Fixes #
2024-11-14 15:43:19 -05:00
Colum Ferry 36236776cc fix(core): typo in readme for CNW (#28942)
<!-- 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 #
2024-11-14 19:51:07 +00:00
Isaac Mann 3cac60084f docs(core): fix npm workspace typos (#28943)
Fix some typos
2024-11-14 14:44:33 -05:00
Nicholas Cunningham da60c38a34 feat(rspack): update executor to be in line with webpack (#28913)
This PR brings the rspack executor `@nx/rspack:rspack` inline with
webpack.

It also prepares the executor to be used with the soon to be implemented
`NxRspackAppPlugin` so that we can support executor and inferred
targets.
2024-11-14 18:31:54 +00:00
Juri Strumpflohner d8f9161f85 docs(release): small update to make phases of version plan stand out more (#28875) 2024-11-14 19:54:10 +04:00
Isaac Mann 45401846b7 feat(nx-dev): version picker (#28828)
Adds a version picker to the footer of nx.dev
2024-11-14 10:27:26 -05:00
Younes Jaaidi 668913e1ce chore(angular): remove superfluous test (#28694)
We always use .mts extension. It is not conditional anymore.
2024-11-14 05:01:17 -05:00
Jack Stevenson e32079ce3b fix(js): skip tsc batch builds for implicit dependencies (#28840)
Implicit dependencies are not referenced in code and therefore TSC
incremental builds are not applicable.

## Current Behavior
A project using the `@nx/js:tsc` executor will fail to build if it has
implicit dependencies on projects which do not use the `@nx/js:tsc`
executor.

To reproduce:
* Clone https://github.com/cogwirrel/nx-tsc-batch-implicit-deps-example
* `pnpm i && pnpm nx run-many --target build --batch --all`

## Expected Behavior
- Implicit dependencies that do not use the `@nx/js:tsc` executor are
permitted. For example, a TypeScript project may implicitly depend on a
Python project, but the TypeScript project should still be buildable in
batch mode.
- Projects using the `@nx/js:tsc` executor will still fail to build if
they have explicit dependencies on projects which do not use the
`@nx/js:tsc` executor.

Tested by publishing to the local registry, upgrading the [example
repo](https://github.com/cogwirrel/nx-tsc-batch-implicit-deps-example)
to use my local version, and built successfully in batch mode.

## Related Issue(s)
Fixes #28839
2024-11-14 07:59:27 +00:00
Julia Passynkova 82bb0a6e5f docs(angular): fix type esbuildMidleware (#28777)
Fix type esbuildMidleware. Should be esbuildMiddleware

closed #28774

<!-- 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 #
2024-11-14 08:23:53 +01:00
Michal Jez 1163eb5c50 cleanup(linter): remove unused basePath parameter (#28549)
<!-- 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. -->

I was looking at the source to understand how `sourceRoot` is used and
saw it was referenced in the eslint-plugin but it turns out it isn't
actually used

## Current Behavior

This parameter isn't used

## Expected Behavior

The parameter should be removed
2024-11-14 08:20:21 +01:00
Jason Jean 08953af5ec chore(module-federation): add public publish access (#28926)
<!-- 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/module-federation` cannot be published because it doesn't have
public publish access

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

`@nx/module-federation` can be published.

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

Fixes #
2024-11-13 13:32:51 -05:00
Isaac Mann 0983ba52bc docs(core): nx command related docs (#28891)
Adds related documents to Nx commands API reference pages
2024-11-13 12:07:00 -05:00
Jason Jean 7f4fc50dfb fix(core): create different dummy tasks for different parent tasks an… (#28923)
…d dependency targets

<!-- 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 -->

Dummy tasks are given an ID containing the parent task's target.
Multiple parent tasks can create the same dummy task which overrides
other dummy tasks.

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

Dummy tasks are given an ID containing the dependency and the parent
tasks's name. This means different parent tasks will create different
dummy tasks instead of overriding other ones.

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

Fixes #
2024-11-13 11:53:59 -05:00
Jason Jean 538a4f2722 chore(repo): disable parallelism for nx-dev:build-base and separate it from test tasks (#28887)
<!-- 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 -->

Running `nx-dev:build-base` takes a lot of memory and particularly if it
is run after `test` tasks, it will cause agents to run out of memory.

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

I don't have a fix for the task taking up a lot of memory... but I do
have a fix which will alleviate the issue. I've split up `test` tasks
and `nx-dev:build-base` to run on different agents.

We should still look into how to make this task not take up so much
memory. What I've learned is that prerendering pages for `nx-dev` has a
memory leak so we should investigate what during prerendering a page is
not cleaned up properly.

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

Fixes #
2024-11-13 11:33:16 -05:00
MaxKless be8029d5dd fix(core): lower socket path by 10 chars to reduce chances of too-long paths (#28920)
## Current Behavior
Socket paths have quite a short allowed length. It's easy to hit the
maximum.

## Expected Behavior
We should exceed the maximum as rarely as possible. By lowering the
workspacePath hash portion, we reduce the chances of exceeding the path.

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

Fixes https://github.com/nrwl/nx/issues/27725
2024-11-13 17:18:50 +01:00
Benjamin Cabanes 7c3d12f763 docs(nx-dev): update plan limits (#28921) 2024-11-13 10:42:27 -05:00
Leosvel Pérez Espinosa 907e58fda7 fix(js): handle outputFileName correctly when generating package json (#28915)
<!-- 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 #28894
2024-11-13 15:43:01 +01:00
Colum Ferry dbaeb86102 chore(rspack): move apply-react-config to plugins/utils directory for consistency (#28918)
<!-- 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 #
2024-11-13 13:45:02 +00:00
Colum Ferry 0392a67a70 fix(rspack): ensure swc provides react runtime automatically (#28916)
<!-- 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 -->
Rspack w/ SWC requires setting `runtime: 'automatic'` to allow React
global to be set in browser


## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
Set `runtime: 'automatic'`

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

Fixes #
2024-11-13 12:21:31 +00:00
Leosvel Pérez Espinosa dc8f29cc36 feat(angular): add poll option to ng-packagr executors (#28909)
Add `poll` option to the ng-packagr executors. This change was made
upstream for Angular v18, but it was missed on the Nx executors.

<!-- 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 #
2024-11-13 10:13:40 +01:00
Leosvel Pérez Espinosa 5c7d4d1fbf cleanup(angular): remove invalid metadata from schemas (#28908)
<!-- 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 #
2024-11-13 10:13:20 +01:00
Nicholas Cunningham cda7f26c16 feat(rspack): update withReact plugin for parity with webpack plugin (#28812)
<!-- 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 #
2024-11-12 20:00:26 +00:00
Leosvel Pérez Espinosa f7f26d847e feat(nx-plugin): add support for the ts solution config setup to the @nx/plugin plugin (#28724)
<!-- 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 #
2024-11-12 14:25:31 -05:00
Emily Xiong 2d77495cc5 fix(core): set default branch to main if no git (#28854)
<!-- 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 #
2024-11-12 13:13:17 -05:00
Colum Ferry 048f7c61af feat(rspack): move logic for withNx to applyBaseConfig and bring in line with webpack (#28825)
<!-- 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 -->
`withNx` from `@nx/rspack` is not reflective of what `@nx/webpack` does.


## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
Bring `withNx` in line with `@nx/webpack`

## Notes
2024-11-12 11:44:29 -05:00
Colum Ferry cd121bd5ee fix(angular): when unit test runner is set to none library component should not generate spec file (#28906)
<!-- 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 unitTestRunner is set to none, spec files are still generated


## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
SkipTests when unit test runner set to none

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

Fixes #
2024-11-12 16:38:17 +00:00
Jason Jean a3dbc40b1a chore(repo): add back heartbeat (#28365)
<!-- 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 Cloud Heartbeat was disabled temporarily.

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

Nx Cloud Heartbeat is enabled again

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

Fixes #
2024-11-12 10:57:41 -05:00
Benjamin Cabanes f3d5787f97 docs(nx-dev): add click tracking on pricing plans (#28902) 2024-11-12 10:33:15 -05:00
Colum Ferry 06af0ee53b feat(module-federation): add initial module-federation package (#28783)
<!-- 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 -->
We do not currently have an `@nx/module-federation` package to house the
shared executors and utils for Module Federation across `Webpack`,
`Rspack` and `Angular`.


## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
Create a single package to store the Module Federation capabilities
within Nx

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

Fixes #
2024-11-12 14:04:44 +00:00
Nicholas Cunningham 1e1cd3a0c5 fix(nx-dev): update course API to ignore system OS Metadata file (#28886)
<!-- 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 #
2024-11-12 02:29:40 -07:00
Jason Jean c21b039dd0 fix(core): reduce time it takes to require nx commands (#28884)
<!-- 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/src/command-line/nx-commands` takes ~88-91ms on my machine to
require which needs to happen for every single Nx command.

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

`nx/src/command-line/nx-commands` takes ~30-33ms on my machine to
require.

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

Fixes #
2024-11-11 17:18:24 -05:00
Rares Matei 19b0828d27 docs(nx-cloud): mention webhook events (#28815)
<!-- 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 #
2024-11-11 15:43:51 -05:00
Benjamin Cabanes 0b6ca49bda docs(nx-dev): update plans (#28877)
Co-authored-by: Isaac Mann <isaacplmann@users.noreply.github.com>
2024-11-11 15:10:00 -05:00
James Henry 5be5579a3c fix(release): ensure dependents that are both direct and transitive are not bumped twice (#28878) 2024-11-11 23:33:14 +04:00
Isaac Mann 37e31bea57 docs(core): fix search indexing errors (#28858)
Fix search indexing errors
2024-11-11 14:15:17 -05:00
Colum Ferry f3889e4873 feat(remix): ensure migrations point to latest remix verison (#28876)
<!-- 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 -->
Latest migrations for Remix will install verions `2.13.1`.
The latest version of remix packages is `2.14`

We also were not updating auxillary @remix-run/* packages, including
server adapters.


## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
Ensure version `2.14` is installed
Ensure auxillary packages are migrated


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

Fixes #
2024-11-11 19:11:39 +00:00
Emily Xiong 18bba6f4f7 fix(core): Remove warning when Nx is not installed globally (#28868)
<!-- 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 #
2024-11-11 12:46:55 -05:00
Nicholas Cunningham d4b9e0dc30 fix(nextjs): update default next-env (#28861)
<!-- 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 current next-env.d.ts is outdated so when you run `nx build` Next.js
would update the `next-env.d.ts` file which would trigger git changes
due to the outdated content.

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
When you run `nx build` the `next-env.d.ts` ideally should not update
from what is generated OOTB.

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

Fixes #
2024-11-11 11:57:25 -05:00
James Henry 0fd3442e47 fix(core): cross-workspace implicitDependencies should be safely ignored (#28845) 2024-11-11 20:32:11 +04:00
Benjamin Cabanes cc251e4378 docs(nx-dev): use localstorage for livestream banner (#28880) 2024-11-11 10:42:27 -05:00
Jason Jean 258a2566f1 fix(core): do not use unix dotfile locks (#28859)
<!-- 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 unix dotfiles are incompatible with posix dotfiles. Having the 2
modes being switched between yields weird errors.

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

Posix dotfiles seem fine for what we're doing so Nx will stick with that
mode for all cases.

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

Fixes #
2024-11-11 09:01:20 -05:00
Shantanu Jain d2c1067a08 fix(release): support workspace root as a subdirectory of git root (#28650) 2024-11-11 17:34:49 +04:00
Juri b0a4291f05 docs(core): move nx release, MF and Nx Console recipes further up 2024-11-11 14:07:23 +01:00
Juri 4bec699709 docs(misc): embed videos in various docs pages 2024-11-11 14:06:46 +01:00
Ahmed Hakeem 3643f66b61 fix(graph): enable action on the ViewOnGraph button regardless of the… (#28863)
## Current Behavior
ViewOnGraph button doesn't work until you open the accordion

## Expected Behavior
ViewOnGraph button should direct to graph without the need to open the
accordion first.

I believe it's better from the UX prespective that user shouldn't click
twice on the same button to fire its action.
2024-11-11 11:50:53 +01:00
Leosvel Pérez Espinosa f56e0a30bf fix(devkit): do not write back to package.json when adding plugin and there are no changes (#28846)
<!-- 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 -->

Generators adding plugins to `nx.json` can modify projects'
`package.json` files with some JSON serialization changes even though
there are no actual changes and prettier is not installed, so they
shouldn't be formatted.

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

Generators adding plugins to `nx.json` should not modify projects'
`package.json` files with JSON serialization changes when there are no
actual changes to make and prettier is not installed.

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

Fixes #
2024-11-11 10:50:21 +01:00
Jason Jean 77d6704ac4 chore(repo): update nx to 20.1.0-beta.3 (#28860)
<!-- 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.1.0-beta.2`

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

This repo uses Nx `20.1.0-beta.3`

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

Fixes #
2024-11-08 18:03:13 -05:00
Craigory Coppola 0d7f226338 fix(core): shutdown plugin workers when disconnected (#28857)
Currently we send a message to the plugin to shutdown when the parent
process either dies or is ready for them to shutdown. This works, but
fails when the host process is killed with a sigterm as the cleanup
can't run. This PR shifts the strategy such that whenever the one and
only socket connection ends, the plugin automatically shuts down
2024-11-08 17:05:05 -05:00
Jason Jean 7f39dc1852 fix(core): do not depend on ci info crate (#28850)
<!-- 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 way VS Code / Nx Console starts the daemon makes the ci info rust
crate believe that the daemon process is running in CI. This starts the
database using the unix dotfile... which causes issues

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

The ci info rust crate is not used, we have our own logic which is
identical to the JS logic we have.

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

Fixes #
2024-11-08 15:28:13 -05:00
Craigory Coppola 158d343ec2 fix(misc): update generators to use autocomplete instead of select when possible (#28851) 2024-11-08 12:51:30 -05:00
Jason Jean c50269a61a fix(core): create different dummy tasks for different targets (#28837)
<!-- 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 -->

Task dependencies were getting conflated between different targets. If
nx runs lint tasks which depend on TaskA and test tasks which depend on
TaskB... the task graph was reporting that both lint and test tasks
depended on TaskA.. which is incorrect.

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

Task dependencies are not conflated between different targets. If lint
tasks depend on TaskA and test tasks depend on TaskB.. then... lint
tasks will truly depend on TaskA and test tasks will truly depend on
TaskB properly.

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

Fixes #
2024-11-08 08:02:19 -05:00
Jason Jean 6882ad14e4 chore(repo): update nx to 20.1.0-beta.2 (#28813)
<!-- 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.0.7

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

This repo uses nx 20.1.0-beta.0

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

Fixes #
2024-11-07 16:49:40 -05:00
MaxKless 0d746ef587 fix(graph): add better pdv empty states when no targets exist (#28797) 2024-11-07 17:02:16 +01:00
Juri Strumpflohner a1fe42b158 feat(nx-dev): add video course page (#28736)
https://nx-dev-git-video-course-nrwl.vercel.app/courses
2024-11-07 10:03:04 -05:00
Juri Strumpflohner 6a3d864ba1 fix(nx-dev): SEO tags (#28823)
<!-- 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 #
2024-11-07 09:15:50 +01:00
Colum Ferry fd2e8d0f55 feat(rspack): move logic for withWeb to applyWebConfig and bring in line with webpack (#28803)
<!-- 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 -->
`withWeb` from `@nx/rspack` is not reflective of what `@nx/webpack`
does.


## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
Bring `withWeb` in line with `@nx/webpack`

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

Fixes #
2024-11-06 21:13:56 -05:00
Isaac Mann 2c9fc572f0 docs(core): update on-premise redirects (#28822)
Redirects on-premise docs to https://github.com/nrwl/nx-cloud-helm
2024-11-06 14:56:42 -07:00
Jonathan Cammisuli bc1a6cf40b fix(core): ensure that the database connection is closed when nx exits (#28821)
<!-- 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 -->

DB connections are sometimes left open.

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

DB connections are closed when the process exits

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

Fixes #
2024-11-06 16:52:17 -05:00
Nicholas Cunningham 6afc28650e fix(core): jest plugin should work with nodenext set in tsconfig (#28820)
<!-- 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 you create a new project using the new ts setup to support ts
project references jest does not work out of the box due to
incompatibility with the module being set inside tsconfig to `nodenext`.

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
Jest should work out of the box with our current setup

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

Fixes #
2024-11-06 14:46:14 -07:00
Louie Weng a22a43141b feat(nx-cloud): configure import paths for light client when running … (#28735)
…login/logout

<!-- 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 you call `nx login` and `nx logout`, we did not pass in import
paths to node modules so the displayed messages for each command were
just raw text.

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

When you call `login` or `logout`, you get formatting on the command
output.

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

Fixes #
2024-11-06 13:17:56 -08:00
Craigory Coppola a5920e3845 fix(core): empty external deps should work properly (#28727) 2024-11-06 14:55:16 -05:00
Miroslav Jonaš ee7b001ec9 fix(repo): update version of actions/github-script in nightly script (#28784)
<!-- 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 #
2024-11-06 14:50:32 -05:00
Emily Xiong 9c245667c2 fix(core): task graph needs to handle multiple cycles (#28793)
<!-- 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 -->
- getNonDummyDeps is a recursive function. we pass in cycle arg to this
function. currently we end the recursion when the task is in a cycle.
however, currently there is an error "Maximum call stack size". i
suspect this recursion is not being ended because the cycle is not
detected when there are multiple cycles.
- add a function to get all cycles of the graph
- also, change getNonDummyDeps to track a list of seen tasks, even with
no cycle detected, this function will not run into infinite recursion

## 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 https://github.com/nrwl/nx/issues/28788
2024-11-06 14:49:59 -05:00
Emily Xiong 906cc1aceb fix(core): fix cannot read properties of undefined (reading 'split') (#28761)
<!-- 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 https://github.com/nrwl/nx/issues/27736 and
https://github.com/nrwl/nx/issues/27736
2024-11-06 13:45:42 -05:00
Jonathan Cammisuli b14d5c5d5b fix(core): revert archive file creation changes (#28817)
<!-- 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 #
2024-11-06 10:50:15 -05:00
Thu Vo bd40a56e19 docs(release): version prefix dependents (#28729) 2024-11-06 14:57:25 +04:00
Zachary DeRose 51f47f0329 docs(misc): nx 20 video added (#28600)
<!-- 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 #
2024-11-06 02:02:39 +00:00
Colum Ferry b69ef46dcd fix(rspack): remove unnecessary required properties in schema validation (#28796)
<!-- 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 `@nx/rspack:rspack` executor had listed other properties as required
in the schema that could have been set by the rspack config.



## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
Make those properties optional and add validation after config is
resolved

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

Fixes #
2024-11-05 17:47:49 +00:00
Colum Ferry be7bfa4820 fix(nuxt): use loadNuxtConfig to load nuxt config for plugin (#28795)
<!-- 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 -->
We switched to using `loadConfigFile` from `@nx/devkit` to load Nuxt
Config files when plugins were not isolated.
However, they are now, so we can use `loadNuxtConfig` again.

The effect of using `loadConfigFile` paired with Nuxt's auto-imports
resulted in inconsistent failures.



## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
Use `loadNuxtConfig` when `NX_ISOLATE_PLUGINS=true`


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

Fixes #28506
Fixes #28374
2024-11-05 12:27:09 -05:00
Colum Ferry 7e3f256756 fix(rspack): move main validation to implementation (#28794)
<!-- 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 -->
We currently have validation for the `main` property in the `executor`
schema, however, this value could be defined in the `rspack.config`
file.
This can cause an inaccurate schema validation error

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
After loading the config file and applying the executor options, run
validation over the config.

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

Fixes #
2024-11-05 12:22:49 -05:00
Juri 75a73ed0e7 feat(nx-dev): add customer case studies 2024-11-05 13:52:16 +01:00
Isaac Mann 5ddcb565d9 docs(core): add azure and gcs powerpack plugins (#28668)
- Adds powerpack-gcs-cache plugin docs
- Adds powerpack-azure-cache-plugin docs
- Removes a duplicate rspack entry on the /nx-api page

---------

Co-authored-by: Jonathan Cammisuli <jon@cammisuli.ca>
2024-11-05 07:48:24 -05:00
James Garbutt e2f5eaabb5 cleanup(webpack): migrate to picocolors (#28315) 2024-11-05 13:13:54 +04:00
James Garbutt 5d21f215a4 cleanup(core): use built in function to strip control chars (#28778) 2024-11-05 13:13:01 +04:00
Jonathan Cammisuli b925f8ccfa fix(core): ensure that setWorkspaceContext is run only on main nx packages (#28706)
<!-- 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 running postinstall with Nx, we create a files archive file. When
there are multiple versions of nx installed, the post install would run
for all versions. This causes issues where one version might overwrite
the archive files while another version is writing to the same location.

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
The `setupWorkspaceContext` is now only ran when we detect that it is
the main nx package. This also makes the creation of the archive file
more atomic so that we dont overwrite files while its being written by
other processes

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

Fixes #
2024-11-04 21:23:20 -05:00
Dmitry Zakharov bb878aa033 feat(linter): add support eslint 9 --quiet param (#28743)
closes #28291

<!-- 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 -->
eslint 9 support --quiet param for not run warn rules, but nx not pass
that param directly
## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
nx executor should pass --quiet directly to eslint
## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #28291
2024-11-04 16:15:59 -05:00
Phillip Barta dbabfa7d2c cleanup(core): update @yarnpkg/parsers to a stable version (#27666) 2024-11-05 00:43:15 +04:00
Jack Hsu 8e4f9f55b7 chore(repo): enable DB and verbose logging for module federation tests (#28792)
This can help us debug issues that come up during these tests.

<!-- 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 #
2024-11-04 15:08:15 -05:00
Mathieu Guilbault c08d995290 docs(core): fix grammar (#28697)
fix grammar

---------

Co-authored-by: Isaac Mann <isaacplmann@gmail.com>
Co-authored-by: Isaac Mann <isaacplmann@users.noreply.github.com>
2024-11-04 19:55:47 +00:00
Isaac Mann 052a62685f chore(nx-dev): disable nx-dev-e2e (#28789)
Disable the e2e tests for nx-dev
2024-11-04 14:00:01 -05:00
Emily Xiong 277c58fbcc feat(expo): use createNodesV2 (#28005)
<!-- 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 #
2024-11-04 13:56:42 -05:00
Colum Ferry 735300c63e feat(rspack): make target property optional (#28785)
<!-- 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 `target` property is currently required by the `@nx/rspack:rspack`
executor, but is not by the `@nx/webpack:webpack` executor.
This can make migrating between the two a little more difficult.


## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
Target should be handled by Nx's `withWeb` helper or set intentionally
by the user in their `rspack.config` file.

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

Fixes #
2024-11-04 17:28:00 +00:00
Emily Xiong 2b2866ac89 fix(core): fix create workspace for react native (#28763)
<!-- 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 https://github.com/nrwl/nx/issues/26805
2024-11-04 11:47:36 -05:00
Phillip Barta 38448da34f feat(bundling): add createNodesV2 for rollup plugin (#28090)
<!-- 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 -->
There is no implementation for `createNodesV2`.

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
There should be an implementation for `createNodesV2`.

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

Fixes #
2024-11-04 10:07:49 -05:00
Egor Kuzin 7ba7f3e798 fix(vite): tsconfig paths plugin should resolve file with dot in the name (#28701)
closed #28615

<!-- 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 #28615
2024-11-04 10:00:02 -05:00
Armin Gerina 39b0a6c959 chore(nextjs): bump Next.js version to 14.2.16 (#28782)
<!-- 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 Next.js version in @nx/next is set to 14.0.3, which lacks
the latest features and improvements available in the 14.2.16 release.
Additionally, the current version has known vulnerabilities:


[GHSA-gp8f-8m3g-qvj9](https://github.com/advisories/GHSA-gp8f-8m3g-qvj9):
Cache Poisoning vulnerability in Next.js (versions before 14.1.0)

[GHSA-g77x-44xx-532m](https://github.com/advisories/GHSA-g77x-44xx-532m):
Denial of Service (DoS) condition in Next.js image optimization
(versions before 14.2.0)

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
With this PR, the Next.js version in @nx/next is updated to 14.2.16,
addressing the listed vulnerabilities and bringing in the latest
features and bug fixes.

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

Fixes #
2024-11-04 09:50:18 -05:00
Colum Ferry 48db8ddc04 chore(react): separate module federation tests into separate test files for better distribution (#28765)
<!-- 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 -->
Module Federation tests take ~21-25mins

![image](https://github.com/user-attachments/assets/771f6314-2fba-4340-9617-d7fb0dd40c93)


## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
Module Federation tests take ~11-13mins

![image](https://github.com/user-attachments/assets/9a720178-5f0c-4b60-a3af-53b3f0db1111)


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

Fixes #
2024-11-04 08:23:13 -05:00
Juri eea38d760a docs(core): update pinned posts 2024-11-04 13:29:36 +01:00
Rares Matei ba762101ad docs(nx-cloud): fix formatting and wording (#28749)
<!-- 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 #
2024-11-04 12:03:20 +00:00
Isaac Mann 796862d9f4 docs(core): add martin hochel as a champion (#28755)
Adds @Hotell as an Nx Champion
2024-11-04 06:13:58 -05:00
Benjamin Cabanes c290b37cbd docs(nx-dev): add nx powerpack enterprise trial (#28712) 2024-11-01 17:43:37 -04:00
Benjamin Cabanes 856c8bcb72 docs(nx-dev): update nx powerpack title meta (#28759) 2024-11-01 17:43:20 -04:00
Benjamin Cabanes af22a41d6a docs(nx-dev): update give a star button styles (#28760) 2024-11-01 17:43:03 -04:00
Benjamin Cabanes a89e34cfca docs(nx-dev): add star github button on intro (#28758) 2024-11-01 17:42:44 -04:00
Isaac Mann b9c1f0b58e fix(testing): install playwright with-deps (#28738)
Uses the `--with-deps` flag when running `playwright install` in the
`ci-workflow` generator
2024-11-01 15:52:24 -04:00
Colum Ferry 1777d29ccb chore(react): cleanup react e2e test name (#28754)
<!-- 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 #
2024-11-01 19:20:27 +00:00
Nicholas Cunningham 0706c7f68c fix(nextjs): Formatting for pages (#28734)
<!-- 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 #28561
2024-11-01 13:04:15 -06:00
Emily Xiong 9a88ea8906 fix(expo): allow yarn 4 to install for build local (#28603)
<!-- 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 https://github.com/nrwl/nx/issues/28121
2024-11-01 14:50:47 -04:00
Emily Xiong c43c179432 feat(core): upgrade semver to 7.6.3 (#28716)
<!-- 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 https://github.com/nrwl/nx/issues/28451
2024-11-01 14:50:33 -04:00
Jack Hsu 0c852e60de chore(repo): update to nx 20.0.7 (#28746)
<!-- 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 #
2024-11-01 14:12:51 -04:00
Jack Hsu 8e460f16d1 fix(webpack): update stylus version to fix security issue (#28646)
<!-- 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 #28541
2024-11-01 13:00:26 -04:00
Colum Ferry 4f4b54609b fix(react): ensure module federation template files are indented correctly (#28753)
<!-- 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 #
2024-11-01 16:49:37 +00:00
Jack Hsu 80ef3ee544 chore(repo): allow NX_NATIVE_LOGGING to be passed to commands within e2e tests (#28752)
…e2e tests

<!-- 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 #
2024-11-01 12:28:16 -04:00
Philip Fulcher a51f02f517 docs(nx-dev): fixes for sports retailer post (#28739) 2024-11-01 10:27:46 -06:00
Colum Ferry 0f25b3c42e feat(module-federation): use module-federation runtime for dynamic federation (#28704)
<!-- 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 -->
We currently have hombrewed support for Dynamic Module Federation.
However, Module Federation 2.0 comes with more powerful helpers to
handle dynamic federation.


## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
For new host projects using dynamic federation, use the Module
Federation Runtime.
For existing hosts using Nx's dynamic federation, continue to use it
when adding new remotes to it.
Deprecate Nx's dynamic federation helpers with intended removal in Nx 22

### Example Screenshot of Deprecation Message
<img width="810" alt="image"
src="https://github.com/user-attachments/assets/6c6a9504-6d89-497b-9259-9272b3f47276">


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

Fixes #
2024-11-01 16:01:33 +00:00
Colum Ferry ab8d77e719 fix(rspack): ensure NX_PUBLIC env vars are available to applications #28720 (#28751)
<!-- 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 -->
With Webpack, we setup DefinePlugin to define `NX_PUBLIC` env vars.
This was not replicated in Rspack


## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
Ensure `NX_PUBLIC` env vars are included in the DefinePlugin

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

Fixes #28720
2024-11-01 11:59:56 -04:00
Jonathan Cammisuli 276e799d40 chore(core): enable db logging on ci and agents (#28744) 2024-11-01 10:08:54 -04:00
Emily Xiong 9adb9e00be fix(core): fix dependency with multiple dependent packages (#28669)
<!-- 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 -->
- we introduce a feature to allow circular project dependencies to
execute tasks in pr https://github.com/nrwl/nx/pull/28227/files
- for this feature, we introduce the concept of dummy task as a
temporary placeholder so we can still generate a task graph even if
dependencies contain circular dependencies
- however, it does not handle a task graph of multiple dummy task deps.
for example:
lib1 -> lib2 -> lib3 -> lib4
if we got task graph like:
lib1:build -> lib2:dummy
lib2:dummy -> lib3:dummy
lib3:dummy -> lib4:rebuild
currently, it does not create a dependency between
lib1:build->lib4:prebuild

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
it should link the dependency when it contains multiple level of
depending on dummy tasks

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

Fixes https://github.com/nrwl/nx/issues/28599 and
https://github.com/nrwl/nx/issues/28380
2024-10-31 23:33:04 -04:00
Isaac Mann d4f4dac2eb docs(core): remove on-premise docs (#28730)
Removes the on-premise docs in favor single tenant and the
nrwl/nx-cloud-helm repo
2024-10-31 16:42:56 -04:00
Isaac Mann d960ddd40f fix(nx-dev): breadcrumbs extra text with query param (#28732)
Breadcrumb component was incorrectly showing extra text when the url has
a query parameter.
2024-10-31 14:55:43 -04:00
Jack Hsu 0ad7c6b5b4 fix(nextjs): do not generate spec files if unitTestRunner is not set programmatically (#28733)
This PR fixes an issue where `create-nx-workspace` with Next.js preset
generates with Jest spec files, but does not install
`@testing-library/react` correctly due to not checking the normalized
schema file.

<!-- 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 #
2024-10-31 14:51:21 -04:00
Nicholas Cunningham b89a62e89a fix(nextjs): Fix json spread typo (#28728)
closes: #28703

<!-- 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 #
2024-10-31 12:34:06 -06:00
Leosvel Pérez Espinosa 6af298d0a9 feat(testing): add support for the ts solution config setup to the cypress plugin (#28637)
<!-- 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 #
2024-10-31 18:29:53 +01:00
Nicholas Cunningham c2e31127d9 feat(core): Update plugin generators so that they are formatted by default (#28593) 2024-10-31 12:14:21 -04:00
Jack Hsu 178d93d9c0 feat(testing): add disableJestRuntime option to @nx/jest/plugin to speed up target inference (#28522)
This PR adds a new `disableJestRuntime` option to `@nx/jest/plugin`. By
setting this to `true`, the inference plugin will not use `jest-config`
and `jest-runtime` to retrieve `outputs`, nor matching spec files when
`ciTargetName` is used. Instead, we'll use our own config loader and
glob/matcher to get both values for the inferred targets.

This speeds up computation quite a bit. With a large monorepo (800
projects, 75K files), the computation goes from 2m 41s to 35s, or ~78%
time reduction.

NOTE: This has no effect on existing projects and needs to be opted
into.


<!-- 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 #
2024-10-31 11:48:43 -04:00
Jonathan Cammisuli 4014662986 fix(core): fix powerpack license information grammar (#28725) 2024-10-31 10:26:18 -04:00
MaxKless 93b9b71e31 docs(core): remove mention of node_modules/.cache/nx from yarn pnp docs (#28722)
Co-authored-by: Isaac Mann <isaacplmann@users.noreply.github.com>
2024-10-31 14:42:24 +01:00
Jack Hsu e22d65eeea feat(testing): split atomized outputs for Playwright and Cypress CI targets (#28682)
This PR updates `@nx/playwright/plugin` to create non-conflicting
outputs for atomized tasks.



<!-- 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
Outputs from `outputDir` and reporters are the same for each atomized
task, which results in missing outputs.

## Expected Behavior
All outputs should be captured and cached correctly.

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

Fixes #
2024-10-31 09:40:29 -04:00
Rares Matei af33660be2 docs(nx-cloud): add release notes for enterprise version (#28698)
<!-- 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 #

---------

Co-authored-by: Isaac Mann <isaacplmann@users.noreply.github.com>
2024-10-31 09:23:51 +00:00
Rares Matei e3773a5a63 docs(nx-cloud): update custom github app instructions (#28708)
<!-- 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 #

---------

Co-authored-by: Isaac Mann <isaacplmann@users.noreply.github.com>
2024-10-31 09:15:45 +00:00
Nicholas Cunningham ce05a98476 fix(nextjs): Add deprecation message for svgr (#28705)
<!-- 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, if you are using Next.js 15 have SVGR enabled via `WithNx`
and are using turbopack. You could potentially have issues loading your
svg. This happens because of how webpack imports svg and not having an
additional configuration for turbopack (currently it is under the
experimental option).

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
Moving forward, we can call this out and deprecate the option to be
removed in Nx 21. As such should you need to use SVGs it is recommended
to do so manually. Something similar to [this
comment](https://github.com/vercel/turborepo/issues/4832#issuecomment-1751407444).

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

Fixes #
2024-10-30 18:52:18 -06:00
Nicholas Cunningham faf448379d fix(nextjs): Remove deprecated export executor (#28702)
<!-- 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 #
2024-10-30 18:10:47 -06:00
Nicholas Cunningham 51bed0e456 feat(nextjs): add support for typescript Next.js config file (#28709)
<!-- 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 #28572
2024-10-30 16:15:48 -04:00
Jonathan Cammisuli 63b745e8c3 fix(core): retry more db operations (#28667) 2024-10-30 11:45:34 -04:00
Zachary DeRose 125675079c docs(misc): adding nx import blog post (#28686)
<!-- 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 #
2024-10-30 11:16:36 -04:00
Colum Ferry c65f344bed fix(angular): use vitest generator instead of vite config generator (#28696)
<!-- 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 -->
Using the viteConfigGenerator leads to build and serve targets being
overriden


## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
Use the `vitestGenerator` to only add the test target

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

Fixes #
2024-10-30 15:23:54 +01:00
Colum Ferry 9e598a6c1a fix(vite): add correct gitignore pattern for vite timestamp files #28685 (#28693)
<!-- 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 pattern added for .gitignore is incorrect


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

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

Fixes #28685
2024-10-30 13:38:06 +00:00
Leosvel Pérez Espinosa 1e0423bcda fix(js): provide absolute paths to hashFile function in @nx/js/typescript plugin (#28690)
<!-- 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 #
2024-10-30 08:29:41 -04:00
Younes Jaaidi dbbc3fcae6 fix(vite): include vite mts config files (#28691)
Add `vite.config.mts` and `vitest.config.mts` to `vitest.workspace.ts`
and `tsconfig` files.

- Angular generator creates vite.config.mts files.
- Users might also use mts files.

<!-- 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 -->

`vite.config.mts` and `vitest.config.mts` were ignored in
`vitest.workspace.ts`.
They were not included in the tsconfig files neither.

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

---------

Co-authored-by: Colum Ferry <cferry09@gmail.com>
2024-10-30 11:40:16 +00:00
Colum Ferry d8d6d13c9e fix(linter): ensure .cjs config file is handled correctly for generators #28214 (#28672)
<!-- 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 workspace has `eslint.config.cjs` at the root, generation of
new lint projects currently does not check for it correctly


## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
Ensure utils continue to work as expected when `eslint.config.cjs` is
detected at the workspaceRoot

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

Fixes #28214
2024-10-30 11:39:58 +01:00
Juri 62f58ebfee docs(core): update import page with new vid link 2024-10-29 23:18:13 +01:00
Juri 46769b3c18 feat(nx-dev): linkable resources page 2024-10-29 22:05:04 +01:00
Jonathan Cammisuli 0aa79c82ec fix(core): fix checks for wasm in db operations (#28676) 2024-10-29 16:10:14 -04:00
Younes Jaaidi 9fe8274367 feat(angular): add vitest option to angular (#27311)
- This adds `vitest` option to `unitTestRunner` for Angular generators.
- This **does not** add vitest option to `create-nx-workspace` but I
think we should provide this as an option in the future. Please let me
know if you wantme to add this here or as a future feature.

---------

Co-authored-by: Colum Ferry <cferry09@gmail.com>
2024-10-29 14:31:48 -04:00
Emily Xiong c0c7ad7efc fix(core): not install cypress when e2e is playwright for react monorepo preset (#28642)
<!-- 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

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

Fixes #

Co-authored-by: Benjamin Cabanes <3447705+bcabanes@users.noreply.github.com>
2024-10-29 13:46:19 -04:00
Colum Ferry 5a3fd0e1cf fix(module-federation): add comment clarifying default export in config file (#28675)
<!-- 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 #
2024-10-29 17:14:20 +00:00
Jack Hsu aec53a0406 feat(misc): remove handling of @nrwl scope (#28589)
This PR removes logic where we handle both `@nx/` and `@nrwl/` scope.
The latter scope has stopped being published in v20, and are no longer
relevant.

- Cleans up e2e
- Removes references to `@nrwl/` scope in our generators and executors
- Removes `@nrwl/` from `nx/package.json` `packageGroup`
- Cleans up documentation quality script
2024-10-29 11:04:44 -04:00
Tobias Engelhardt fb9c5ede84 fix(core): update http-proxy-middleware (#28607)
<!-- 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 #28577
2024-10-29 08:40:12 -04:00
Colum Ferry af9d980f34 feat(remix): generate remix vite application (#28555)
<!-- 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 -->
We currently still generate Remix Classic applications


## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
We should generate Remix Vite applications

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

Fixes #
2024-10-29 08:38:13 -04:00
Lorenzo a9dbc71e9d fix: add required minimizer setting to the generated Nest rspack conf… (#28629)
## Current Behavior
When using Nest.js in combination with [decorator
metadata](https://docs.nestjs.com/fundamentals/execution-context#reflection-and-metadata),
the class names and handlers become mangled/compressed causing them to
lose the reference to the correct class/handler name.

## Expected Behavior
The decorator metadata works as intended.

## Approach
This PR implements a custom instance of the
`SwcJsMinimizerRspackPlugin`, where the setting is modified to keep
original class and function names from the `compress` and `mangle`
options.

## Related
I've opened a related PR on the rspack-examples repository:
https://github.com/rspack-contrib/rspack-examples/pull/158
2024-10-29 12:25:19 +00:00
Leosvel Pérez Espinosa 4b70d1b206 feat(testing): add support for the ts solution config setup to the playwright plugin (#28636)
<!-- 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 #
2024-10-28 14:49:04 -04:00
Leosvel Pérez Espinosa f357b4ed53 feat(js): update the setup-build generator to support the new ts setup (#28446)
Update the `@nx/js:setup-build` and the generators it depends on to
support the new TS setup with project references.

<!-- 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 #
2024-10-28 14:34:57 -04:00
Isaac Mann 1fec637514 docs(core): update docs/shared/getting-started/intro.md 2024-10-28 16:21:42 +01:00
Juri 8b1a041f92 docs(core): link nx import on entry page 2024-10-28 16:21:42 +01:00
Colum Ferry ce6f943371 fix(rspack): set NODE_ENV to production correctly #28584 (#28662)
<!-- 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 switch from `DefinPlugin` to `EnvironmentPlugin` did not account for
`production`.


## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
Ensure `production` is accounted for and set as expected

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

Fixes #28584
2024-10-28 13:44:13 +00:00
Colum Ferry 0857492c93 fix(vite): set NODE_ENV to production correctly #28584 (#28663)
<!-- 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 -->
After the switch to use `resolveConfig` we failed to set the value for
`NODE_ENV` which is an argument to the function.
This means it always defaulted to development.


## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
Ensure `NODE_ENV` is set as expected.

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

Fixes #28584
2024-10-28 13:43:53 +00:00
Colum Ferry 2936bdcb3d fix(rspack): ensure baseHref is set when provided #28455 (#28660)
<!-- 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 `@nx/rspack:rspack` executor supports `baseHref` as an option, but
we do not set it in the `rspack.HtmlRspackPlugin`.


## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
Ensure if `baseHref` is set, we pass it to `rspack.HtmlRspackPlugin`

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

Fixes #28455
2024-10-28 13:43:43 +00:00
Miroslav Jonaš 0d2a696443 chore(repo): update node version on nightly (#28622)
<!-- 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 #
2024-10-28 13:32:28 +01:00
Philip Fulcher f84b6e5c97 docs(nx-dev): add sports retailer blog post (#28619) 2024-10-25 15:54:37 -06:00
Benjamin Cabanes b0aebc5f9a docs(nx-dev): fix powerpack typos (#28647) 2024-10-25 17:35:10 -04:00
Isaac Mann 3da438d270 chore(core): add instructions to use e2e-ci with dte (#28621)
Use e2e in ci-workflow generator with instructions to use e2e-ci if Nx
Agents are turned on
2024-10-25 15:08:01 -04:00
Emily Xiong 013aaee85f fix(storybook): fix externalDependencies undefined (#28641)
<!-- 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 #
2024-10-25 14:24:47 -04:00
Benjamin Cabanes 96f36d3139 docs(nx-dev): add star github button & cleanup (#28623) 2024-10-25 11:51:46 -04:00
Jonathan Cammisuli ffb1b29208 chore(core): add cache implementations (#28595)
<!-- 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 #
2024-10-25 11:25:20 -04:00
Colum Ferry 37ab3cdf65 fix(react): selecting tailwind should import correct style file extension (#28630)
<!-- 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 we use `<%= style %>` to set the style file extension in the
`main.tsx` template file.
This is incorrect when `style=tailwind`


## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
If `options.style=tailwind` update the `templateVariables` that are used
to set `style=css`


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

Fixes #
2024-10-25 15:12:15 +01:00
Colum Ferry edc207d1c8 docs(module-federation): remote schema should show updated regex for names #28558 (#28610)
<!-- 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 -->
Docs show incorrect regex pattern for valid MF remote names

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
Docs show correct regex pattern for valid MF remote names

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

Fixes #28558
2024-10-25 15:12:07 +01:00
Jack Hsu 4e81fa2d70 fix(core): skip eslint custom hasher when hashing tasks during running commands (#28616)
This change speeds up Nx Cloud runs by not orchestrating cache hits for
lint tasks.

<!-- 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 #
2024-10-25 08:30:22 -04:00
Leosvel Pérez Espinosa fe7d7ac48e fix(js): include referenced internal config files in plugin cache hash (#28536) 2024-10-25 15:09:51 +04:00
Leosvel Pérez Espinosa 890ef830b3 fix(js): set the tsBuildInfoFile as output when it's not contained in the outDir (#28538) 2024-10-25 14:01:03 +04:00
Leosvel Pérez Espinosa fae8474939 fix(js): fix resolution of extended tsconfig files in plugin (#28535) 2024-10-25 13:59:11 +04:00
Benjamin Cabanes ff630a3e09 docs(nx-dev): update free powerpack link (#28523)
Co-authored-by: Isaac Mann <isaacplmann@users.noreply.github.com>
2024-10-25 09:52:08 +02:00
Emily Xiong 1218502c84 fix(js): allow custom listenAddress for verdaccio (#28498)
<!-- 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
-->
replace localhost with options. listenAddress

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

Fixes https://github.com/nrwl/nx/issues/28314
2024-10-24 12:51:10 -04:00
Juri 84aba19bec feat(nx-dev): add videos to CI docs 2024-10-24 17:29:06 +02:00
Emily Xiong 7839c804a0 fix(storybook): fix yarn storybook upgrade 8 (#28605)
<!-- 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 https://github.com/nrwl/nx/issues/28301
2024-10-24 08:27:29 +01:00
Emily Xiong 0bea5b28e6 fix(core): createTaskGraph should accept extraTargetDependencies (#28542)
<!-- 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 pr is a follow up to https://github.com/nrwl/nx/pull/26033.
for function `createTaskGraph`, it should not accept
`defaultDependencyConfigs`, it should be `extraTargetDependencies`.

## Current Behavior
<!-- This is the behavior we have today -->
this caused an issue where the task graph shows that 2 tasks depend on
each other; however, when actually running, it does not.

## 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 https://github.com/nrwl/nx/issues/26929
2024-10-23 21:25:02 -04:00
Jonathan Cammisuli 7f92efad79 fix(core): only check if files are in sync if there are no records in the db (#28597)
<!-- 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 #
2024-10-23 17:14:27 -04:00
Philip Fulcher b6a3414f95 chore(nx-dev): remove duplicate blog post (#28570)
<!-- 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 -->
Personal access token blog post appears twice

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
Personal access token blog post appears once

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

Fixes #
2024-10-23 14:48:44 -06:00
Jonathan Cammisuli d3df76f2f4 fix(core): handle concurrent db connections better (#28544) 2024-10-23 23:33:33 +04:00
Jack Hsu 018543c785 cleanup(misc): remove unused migrations (#28591)
This PR removes migrations that are unused in our packages.

Other changes:

- Update the `remove-migrations` generator to remove all files inside
the migration directory, rather than just the implementation, spec file,
and `__snapshots__` directory. There were some helpers that were not
removed due to this problem.
- Add a check to the `assertValidMigrationPaths` test util (used in
`migrations.spec.ts` test files) to ensure that all paths inside
`./src/migrations` are included in `migrations.json` file. There were a
few migrations missing in the `@nx/expo` package, and we never run them
nor cleaned them up.


**Note:** This has no effect on users and is purely a clean-up.

## 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 #
2024-10-23 14:29:56 -04:00
Isaac Mann daa4e19a07 chore(core): task distribution defaults to off (#28587)
- Updates workspace:ci-workflow generator to disable task distribution
by default
- Updates gradle:ci-workflow generator to disable task distribution by
default
- Updates all tutorials to reflect the new generator and adds a line
explaining how to enable task distribution
2024-10-23 13:15:00 -04:00
James Henry 29a556dc78 chore(repo): bump nx to latest v20 and graph 0.1.0 (#28581) 2024-10-23 19:48:11 +04:00
Juri ea01d39291 fix(nx-dev): powerpack content update 2024-10-23 16:21:48 +02:00
Isaac Mann 2d3eea3dcd docs(core): single tenant section (#28548)
- Remove on-premise Nx Cloud docs from navigation
- Expand single tenant Nx Cloud documentation
2024-10-23 10:20:11 -04:00
MaxKless d27f8bc076 fix(core): make sure yarn berry correctly resolves latest version during nx add (#28580) 2024-10-23 18:07:54 +04:00
Colum Ferry 36556f6f23 feat(rspack): add convert-webpack generator (#28167)
<!-- 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 -->
We do not have an automated method for people to switch to rspack from
webpack applications


## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
We should have a generator that will convert webpack application
projects to use rspack

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

Fixes #
2024-10-23 09:54:49 +01:00
Benjamin Cabanes 12cbfc35da docs(nx-dev): update powerpack features description (#28566) 2024-10-22 20:15:24 -04:00
Jack Hsu a354857d47 feat(react): update eslint plugins to be compat with eslint v9 (#28559)
<!-- 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 #28191
2024-10-22 19:59:14 -04:00
Isaac Mann e345bc7b11 docs(core): ts project references in npm tutorial (#28504)
Update the npm workspaces tutorial to use typescript project references
2024-10-22 15:52:13 -04:00
Isaac Mann ce7f1b5e4a docs(core): move powerpack features to enterprise section (#28528)
- Makes a new Enterprise section under the Nx section of the docs
- Moves Powerpack docs into the Enterprise section
2024-10-22 14:53:08 -04:00
Isaac Mann e1c49d9178 docs(core): remove reference to remote cache API (#28505)
Remove outdated reference to remote cache API
2024-10-22 14:46:10 -04:00
James Henry c396c1c5ca chore(repo): bump dependencies (#28562) 2024-10-22 20:14:07 +04:00
Emily Xiong 53b33b1f0e fix(core): not to cache entire workspace root (#28552)
<!-- 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 -->
- if directory is workspace root, when walking through the directory, it
will include the directory root path, then will strip prefix, it will be
empty string. it will return "*" as a found path.
- When copying "*", it will run into a recursive loop because it will
try to copy the walkspace root with node_modules into
node_modules/.cache/nx

## 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 https://github.com/nrwl/nx/issues/28393
2024-10-22 10:15:16 -04:00
Juri e57b85152c fix(nx-dev): cleanup 2024-10-21 17:30:52 +02:00
Mike Hartington b7578f1bdc docs(core): update release blog post (#28526)
<!-- 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 #
2024-10-21 10:39:50 -04:00
Isaac Mann 1876b83c3f chore(nx-dev): ignore anchors on changelog page (#28540)
Do not check anchor links pointing to the changelog page
2024-10-21 10:05:31 -04:00
Phillip Barta 25e3bdde9c fix(rspack): removed webpack-sources import (#28447)
removed the webpack-sources import and replaced it with the sources
export from rspack

<!-- 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/rspack` uses `webpack-sources` which is not listed as dependency.
The issue originated in PR #27676 but i decided to split it out. I also
opened #28225 to add the dependency-check rule for rspack.

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
`@nx/rspack` uses the reexport from `@rspack/core` 

https://rspack.dev/api/javascript-api/#sources-object

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

#28225 #27676
2024-10-21 12:33:33 +01:00
Nicholas Cunningham 19e765f89a feat(nextjs): update createNodes to createNodesV2 and add deprecation message (#28527)
<!-- 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, we are using `createNodes` API which should be deprecated in
favour of `createNodesV2`.

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
We should be using `createNodesV2` instead of `createNodes`.
## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #
2024-10-18 13:20:21 -06:00
Nicholas Cunningham 8b5ee3624b docs(nx-dev): Remove unused environment variables (#28521) 2024-10-18 11:09:25 -06:00
1751 changed files with 53363 additions and 37246 deletions
+8 -5
View File
@@ -82,6 +82,7 @@ jobs:
NX_E2E_CI_CACHE_KEY: e2e-circleci-linux
NX_DAEMON: 'true'
NX_PERF_LOGGING: 'false'
NX_VERBOSE_LOGGING: 'false'
NX_NATIVE_LOGGING: 'false'
NX_E2E_RUN_E2E: 'true'
NX_CI_EXECUTION_ENV: 'linux'
@@ -92,7 +93,7 @@ jobs:
- checkout
- nx/set-shas:
main-branch-name: 'master'
- run: npx nx-cloud@next start-ci-run --distribute-on="auto linux-medium" --stop-agents-after="e2e" --require-explicit-completion
- run: npx nx-cloud@next start-ci-run --distribute-on="./.nx/workflows/dynamic-changesets.yaml" --stop-agents-after="e2e"
- run:
command: |
sudo apt-get update
@@ -113,6 +114,12 @@ jobs:
pnpm nx-cloud record -- nx format:check --base=$NX_BASE --head=$NX_HEAD &
pids+=($!)
pnpm nx-cloud record -- nx sync:check
pids+=($!)
pnpm nx-cloud record -- nx-cloud conformance:check
pids+=($!)
pnpm nx run-many -t check-imports check-commit check-lock-files check-codeowners documentation --parallel=1 --no-dte &
pids+=($!)
@@ -122,10 +129,6 @@ jobs:
for pid in "${pids[@]}"; do
wait "$pid"
done
- run:
name: End CI Run
command: npx nx-cloud@next complete-ci-run
no_output_timeout: 20m
# -------------------------
# JOBS: Main-MacOS
# -------------------------
+9 -1
View File
@@ -71,9 +71,17 @@
"rules": {
"@nx/workspace/ensure-pnpm-lock-version": [
"error",
{ "version": "9.0" }
{
"version": "9.0"
}
]
}
},
{
"files": ["*.ts"],
"rules": {
"@angular-eslint/prefer-standalone": "off"
}
}
]
}
+139 -21
View File
@@ -25,35 +25,43 @@ jobs:
- ubuntu-latest
- macos-latest
node_version:
- 20
- 18
- 20
- 22
# - 23
exclude:
# run just node v20 on macos
- os: macos-latest
node_version: 18
- os: macos-latest
node_version: 22
# - os: macos-latest
# node_version: 23
name: Cache install (${{ matrix.os }}, node v${{ matrix.node_version }})
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install PNPM
run: |
npm install -g @pnpm/exe@8
- uses: pnpm/action-setup@v4
name: Install pnpm
with:
version: 9.8.0
run_install: false
- name: Set node
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node_version }}
cache: 'pnpm'
- name: Cache node_modules
id: cache-modules
uses: actions/cache@v3
uses: actions/cache@v4
with:
lookup-only: true
path: '**/node_modules'
key: ${{ runner.os }}-modules-${{ matrix.node_version }}-${{ github.run_id }}
key: ${{ runner.os }}-modules-${{ matrix.node_version }}-${{ hashFiles('pnpm-lock.yaml') }}
- name: Ensure Python setuptools Installed on Macos
if: ${{ matrix.os == 'macos-latest' }}
@@ -71,7 +79,7 @@ jobs:
- name: Cache Homebrew
if: ${{ matrix.os == 'macos-latest' }}
uses: actions/cache@v3
uses: actions/cache@v4
with:
lookup-only: true
path: ${{ steps.homebrew-cache-dir-path.outputs.dir }}
@@ -81,7 +89,7 @@ jobs:
- name: Cache Cypress
id: cache-cypress
uses: actions/cache@v3
uses: actions/cache@v4
with:
lookup-only: true
path: '${{ github.workspace }}/.cypress'
@@ -104,8 +112,10 @@ jobs:
- ubuntu-latest
- macos-latest
node_version:
- 20
- 18
- 20
- 22
# - 23
package_manager:
- npm
- yarn
@@ -266,6 +276,106 @@ jobs:
project: e2e-vue
- node_version: 18
project: e2e-webpack
- node_version: 22
project: e2e-angular
- node_version: 22
project: e2e-cypress
- node_version: 22
project: e2e-detox
- node_version: 22
project: e2e-esbuild
- node_version: 22
project: e2e-expo
- node_version: 22
project: e2e-gradle
- node_version: 22
project: e2e-jest
- node_version: 22
project: e2e-js
- node_version: 22
project: e2e-eslint
- node_version: 22
project: e2e-next
- node_version: 22
project: e2e-node
- node_version: 22
project: e2e-nuxt
- node_version: 22
project: e2e-nx-init
- node_version: 22
project: e2e-nx
- node_version: 22
project: e2e-plugin
- node_version: 22
project: e2e-playwright
- node_version: 22
project: e2e-react
- node_version: 22
project: e2e-react-native
- node_version: 22
project: e2e-web
- node_version: 22
project: e2e-remix
- node_version: 22
project: e2e-rollup
- node_version: 22
project: e2e-storybook
- node_version: 22
project: e2e-vite
- node_version: 22
project: e2e-vue
- node_version: 22
project: e2e-webpack
# - node_version: 23
# project: e2e-angular
# - node_version: 23
# project: e2e-cypress
# - node_version: 23
# project: e2e-detox
# - node_version: 23
# project: e2e-esbuild
# - node_version: 23
# project: e2e-expo
# - node_version: 23
# project: e2e-gradle
# - node_version: 23
# project: e2e-jest
# - node_version: 23
# project: e2e-js
# - node_version: 23
# project: e2e-eslint
# - node_version: 23
# project: e2e-next
# - node_version: 23
# project: e2e-node
# - node_version: 23
# project: e2e-nuxt
# - node_version: 23
# project: e2e-nx-init
# - node_version: 23
# project: e2e-nx
# - node_version: 23
# project: e2e-plugin
# - node_version: 23
# project: e2e-playwright
# - node_version: 23
# project: e2e-react
# - node_version: 23
# project: e2e-react-native
# - node_version: 23
# project: e2e-web
# - node_version: 23
# project: e2e-remix
# - node_version: 23
# project: e2e-rollup
# - node_version: 23
# project: e2e-storybook
# - node_version: 23
# project: e2e-vite
# - node_version: 23
# project: e2e-vue
# - node_version: 23
# project: e2e-webpack
# run just npm v20 on macos
- os: macos-latest
package_manager: yarn
@@ -273,6 +383,10 @@ jobs:
package_manager: pnpm
- os: macos-latest
node_version: 18
- os: macos-latest
node_version: 22
# - os: macos-latest
# node_version: 23
fail-fast: false
name: ${{ matrix.os_name }}/${{ matrix.package_manager }}/${{ matrix.node_version }} ${{ join(matrix.project) }}
@@ -283,22 +397,24 @@ jobs:
- name: Prepare dir for output
run: mkdir -p outputs
- name: Install PNPM
run: |
npm install -g @pnpm/exe@8
- uses: pnpm/action-setup@v4
name: Install pnpm
with:
version: 9.8.0
run_install: false
- name: Use Node.js ${{ matrix.node_version }}
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node_version }}
cache: 'pnpm'
- name: Cache node_modules
id: cache-modules
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: '**/node_modules'
key: ${{ runner.os }}-modules-${{ matrix.node_version }}-${{ github.run_id }}
key: ${{ runner.os }}-modules-${{ matrix.node_version }}-${{ hashFiles('pnpm-lock.yaml') }}
- name: Install packages
run: pnpm install --frozen-lockfile
@@ -322,7 +438,7 @@ jobs:
- name: Cache Homebrew
if: ${{ matrix.os == 'macos-latest' }}
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: ${{ steps.homebrew-cache-dir-path.outputs.dir }}
key: brew-${{ matrix.node_version }}
@@ -331,7 +447,7 @@ jobs:
- name: Cache Cypress
id: cache-cypress
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: '${{ github.workspace }}/.cypress'
key: ${{ runner.os }}-cypress
@@ -396,10 +512,12 @@ jobs:
echo "$matrix" > $path
- name: Upload matrix config
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
if: ${{ always() }}
with:
name: outputs
overwrite: true
if-no-files-found: 'ignore'
path: ${{ steps.save-matrix.outputs.path }}
- name: Setup tmate session
@@ -418,7 +536,7 @@ jobs:
codeowners: ${{ steps.process-json.outputs.CODEOWNERS }}
steps:
- name: Load outputs
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: outputs
path: outputs
@@ -431,7 +549,7 @@ jobs:
- name: Make slack outputs
id: process-json
uses: actions/github-script@v6
uses: actions/github-script@v7
env:
GITHUB_TOKEN: ${{ github.token }}
with:
+106 -23
View File
@@ -22,22 +22,24 @@ jobs:
strategy:
matrix:
node_version:
- 20
- 18
- 20
- 22
# - 23
name: Cache install (node v${{ matrix.node_version }})
steps:
- name: Checkout
uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
- uses: pnpm/action-setup@v4
name: Install pnpm
with:
version: 8
version: 9.8.0
run_install: false
- name: Set node
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node_version }}
cache: 'pnpm'
@@ -48,14 +50,15 @@ jobs:
with:
lookup-only: true
path: '**/node_modules'
key: ${{ runner.os }}-modules-${{ matrix.node_version }}-${{ github.run_id }}
key: ${{ runner.os }}-modules-${{ matrix.node_version }}-${{ hashFiles('pnpm-lock.yaml') }}
- name: Install packages
if: steps.cache-modules.outputs.cache-hit != 'true'
run: pnpm install --frozen-lockfile
- name: Cache Cypress
id: cache-cypress
uses: actions/cache@v3
uses: actions/cache@v4
with:
lookup-only: true
path: '${{ github.workspace }}/.cypress'
@@ -74,8 +77,10 @@ jobs:
strategy:
matrix:
node_version:
- 20
- 18
- 20
- 22
# - 23
package_manager:
- npm
project:
@@ -109,14 +114,8 @@ jobs:
codeowners: 'S04SS457V38'
- project: e2e-cypress
codeowners: 'S04T16BTJJY'
- project: e2e-detox
codeowners: 'S04TNCNJG5N'
- project: e2e-esbuild
codeowners: 'S04SJ6HHP0X'
- project: e2e-expo
codeowners: 'S04TNCNJG5N'
- project: e2e-gradle
codeowners: 'S04TNCNJG5N'
- project: e2e-jest
codeowners: 'S04T16BTJJY'
- project: e2e-js
@@ -139,8 +138,6 @@ jobs:
codeowners: 'S04SYHYKGNP'
- project: e2e-react
codeowners: 'S04TNCNJG5N'
- project: e2e-react-native
codeowners: 'S04TNCNJG5N'
- project: e2e-web
codeowners: 'S04SJ6PL98X'
- project: e2e-rollup
@@ -205,6 +202,90 @@ jobs:
project: e2e-vue
- node_version: 18
project: e2e-webpack
- node_version: 22
project: e2e-angular
- node_version: 22
project: e2e-cypress
- node_version: 22
project: e2e-esbuild
- node_version: 22
project: e2e-jest
- node_version: 22
project: e2e-js
- node_version: 22
project: e2e-eslint
- node_version: 22
project: e2e-next
- node_version: 22
project: e2e-node
- node_version: 22
project: e2e-nuxt
- node_version: 22
project: e2e-nx-init
- node_version: 22
project: e2e-nx
- node_version: 22
project: e2e-plugin
- node_version: 22
project: e2e-playwright
- node_version: 22
project: e2e-react
- node_version: 22
project: e2e-web
- node_version: 22
project: e2e-remix
- node_version: 22
project: e2e-rollup
- node_version: 22
project: e2e-storybook
- node_version: 22
project: e2e-vite
- node_version: 22
project: e2e-vue
- node_version: 22
project: e2e-webpack
# - node_version: 23
# project: e2e-angular
# - node_version: 23
# project: e2e-cypress
# - node_version: 23
# project: e2e-esbuild
# - node_version: 23
# project: e2e-jest
# - node_version: 23
# project: e2e-js
# - node_version: 23
# project: e2e-eslint
# - node_version: 23
# project: e2e-next
# - node_version: 23
# project: e2e-node
# - node_version: 23
# project: e2e-nuxt
# - node_version: 23
# project: e2e-nx-init
# - node_version: 23
# project: e2e-nx
# - node_version: 23
# project: e2e-plugin
# - node_version: 23
# project: e2e-playwright
# - node_version: 23
# project: e2e-react
# - node_version: 23
# project: e2e-web
# - node_version: 23
# project: e2e-remix
# - node_version: 23
# project: e2e-rollup
# - node_version: 23
# project: e2e-storybook
# - node_version: 23
# project: e2e-vite
# - node_version: 23
# project: e2e-vue
# - node_version: 23
# project: e2e-webpack
fail-fast: false
name: ${{ matrix.project }} (v${{ matrix.node_version }})
@@ -215,21 +296,21 @@ jobs:
- name: Prepare dir for output
run: mkdir -p outputs
- uses: pnpm/action-setup@v2
- uses: pnpm/action-setup@v4
name: Install pnpm
with:
version: 8.7.4
version: 9.8.0
run_install: false
- name: Use Node.js ${{ matrix.node_version }}
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node_version }}
cache: 'pnpm'
- name: Cache node_modules
id: cache-modules
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: '**/node_modules'
key: ${{ runner.os }}-modules-${{ matrix.node_version }}-${{ github.run_id }}
@@ -239,7 +320,7 @@ jobs:
- name: Cache Cypress
id: cache-cypress
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: '${{ github.workspace }}/.cypress'
key: ${{ runner.os }}-cypress
@@ -289,10 +370,12 @@ jobs:
echo "$matrix" > $path
- name: Upload matrix config
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
if: ${{ always() }}
with:
name: outputs
overwrite: true
if-no-files-found: 'ignore'
path: ${{ steps.save-matrix.outputs.path }}
- name: Setup tmate session
@@ -311,7 +394,7 @@ jobs:
codeowners: ${{ steps.process-json.outputs.CODEOWNERS }}
steps:
- name: Load outputs
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: outputs
path: outputs
@@ -325,7 +408,7 @@ jobs:
- name: Make slack outputs
id: process-json
uses: actions/github-script@v6
uses: actions/github-script@v7
env:
GITHUB_TOKEN: ${{ github.token }}
with:
+4 -3
View File
@@ -40,14 +40,13 @@ out
# Local dev files
.env.local
.bashrc
.nx
*.node
# Fix for issue when working on the repo in a dev container
.pnpm-store
.nx/cache
.nx/workspace-data
.nx
!.nx/workflows
.cargo/.package-cache
.cargo/bin/
@@ -60,3 +59,5 @@ out
target
*.wasm
/wasi-sdk*
vite.config.*.timestamp*
+59 -1
View File
@@ -9,6 +9,7 @@ launch-templates:
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/v4/workflow-steps/checkout/main.yaml'
@@ -37,7 +38,64 @@ launch-templates:
- name: Install Browsers
script: |
pnpm exec cypress install
pnpm exec playwright install
pnpm exec playwright install --with-deps
- name: Install Rust
script: |
curl --proto '=https' --tlsv1.3 https://sh.rustup.rs -sSf | sh -s -- -y
source "$HOME/.cargo/env"
rustup toolchain install 1.70.0
- name: Configure git metadata (needed for lerna smoke tests)
script: |
git config --global user.email test@test.com
git config --global user.name "Test Test"
- name: Load Cargo Env
script: echo "PATH=$HOME/.cargo/bin:$PATH" >> $NX_CLOUD_ENV
- name: Install zip and unzip
script: sudo apt-get -yqq install zip unzip
linux-large:
resource-class: 'docker_linux_amd64/large'
image: 'ubuntu22.04-node20.11-v10'
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/v4/workflow-steps/checkout/main.yaml'
- name: Cache restore
uses: 'nrwl/nx-cloud-workflows/v4/workflow-steps/cache/main.yaml'
inputs:
key: 'pnpm-lock.yaml'
paths: |
node_modules
~/.cache/Cypress
~/.cache/ms-playwright
~/.pnpm-store
base_branch: 'master'
- name: Install e2e deps
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
script: |
pnpm install --frozen-lockfile
- name: Install Browsers
script: |
pnpm exec cypress install
pnpm exec playwright install --with-deps
- name: Install Rust
script: |
+9 -3
View File
@@ -1,4 +1,10 @@
distribute-on:
small-changeset: 8 linux-medium
medium-changeset: 10 linux-medium
large-changeset: 12 linux-medium
default: auto linux-medium, 1 linux-large
assignment-rules:
- project: nx-dev
target: build-base
runs-on:
- linux-large
- target: test
runs-on:
- linux-medium
+3 -2
View File
@@ -94,10 +94,8 @@ rust-toolchain @nrwl/nx-native-reviewers
/packages/web/** @nrwl/nx-js-reviewers
/e2e/web/** @nrwl/nx-js-reviewers
/packages/webpack/** @nrwl/nx-js-reviewers
/packages/webpack/src/utils/module-federation @jaysoo @Coly010
/e2e/webpack/** @nrwl/nx-js-reviewers
/packages/rspack/** @nrwl/nx-js-reviewers
/packages/rspack/src/utils/module-federation @jaysoo @Coly010
/e2e/rspack/** @nrwl/nx-js-reviewers
/packages/esbuild/** @nrwl/nx-js-reviewers
/e2e/esbuild/** @nrwl/nx-js-reviewers
@@ -106,6 +104,9 @@ rust-toolchain @nrwl/nx-native-reviewers
/packages/vite/** @nrwl/nx-js-reviewers
/e2e/vite/** @nrwl/nx-js-reviewers
## Module Federation
/packages/module-federation/** @nrwl/nx-js-reviewers
## Tools
/docs/generated/packages/cypress/** @nrwl/nx-testing-tools-reviewers @nrwl/nx-docs-reviewers
/docs/shared/packages/cypress/** @nrwl/nx-testing-tools-reviewers @nrwl/nx-docs-reviewers
Generated
+33 -11
View File
@@ -499,9 +499,9 @@ dependencies = [
[[package]]
name = "fastrand"
version = "2.0.1"
version = "2.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6"
[[package]]
name = "filedescriptor"
@@ -545,6 +545,16 @@ dependencies = [
"syn 2.0.53",
]
[[package]]
name = "fs4"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ec6fcfb3c0c1d71612528825042261419d5dade9678c39a781e05b63677d9b32"
dependencies = [
"rustix",
"windows-sys 0.52.0",
]
[[package]]
name = "fs_extra"
version = "1.3.0"
@@ -1120,9 +1130,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
[[package]]
name = "libc"
version = "0.2.155"
version = "0.2.161"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c"
checksum = "8e9489c2807c139ffd9c1794f4af0ebe86a828db53ecdc7fea2111d0fed085d1"
[[package]]
name = "libloading"
@@ -1147,9 +1157,9 @@ dependencies = [
[[package]]
name = "linux-raw-sys"
version = "0.4.13"
version = "0.4.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89"
[[package]]
name = "lock_api"
@@ -1472,6 +1482,7 @@ dependencies = [
"crossterm",
"dashmap",
"dunce",
"fs4",
"fs_extra",
"globset",
"hashbrown 0.14.5",
@@ -1496,6 +1507,7 @@ dependencies = [
"swc_ecma_dep_graph",
"swc_ecma_parser",
"swc_ecma_visit",
"tempfile",
"thiserror",
"tracing",
"tracing-subscriber",
@@ -1919,9 +1931,9 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
[[package]]
name = "rustix"
version = "0.38.32"
version = "0.38.38"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "65e04861e65f21776e67888bfbea442b3642beaa0138fdb1dd7a84a52dffdb89"
checksum = "aa260229e6538e52293eeb577aabd09945a09d6d9cc0fc550ed7529056c2e32a"
dependencies = [
"bitflags 2.6.0",
"errno",
@@ -2370,14 +2382,15 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369"
[[package]]
name = "tempfile"
version = "3.10.1"
version = "3.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
checksum = "f0f2c9fc62d0beef6951ccffd757e241266a2c833136efbe35af6cd2567dca5b"
dependencies = [
"cfg-if",
"fastrand",
"once_cell",
"rustix",
"windows-sys 0.52.0",
"windows-sys 0.59.0",
]
[[package]]
@@ -2826,6 +2839,15 @@ dependencies = [
"windows-targets 0.52.6",
]
[[package]]
name = "windows-sys"
version = "0.59.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b"
dependencies = [
"windows-targets 0.52.6",
]
[[package]]
name = "windows-targets"
version = "0.48.5"
+5
View File
@@ -503,5 +503,10 @@
"name": "nx-solhint",
"description": "Solhint generators and inferred tasks for Nx",
"url": "https://github.com/juliangsibecas/nx-solhint"
},
{
"name": "nx-foundry",
"description": "Foundry generators and inferred tasks for Nx",
"url": "https://github.com/juliangsibecas/nx-foundry"
}
]
@@ -15,7 +15,7 @@ When Victor Savkin and I left Google to start this company in December 2016, we
![](/blog/images/2022-11-17/WIkl00uLsSt6p6dmQbIA0g.avif)
[Nx Cloud](/nx-cloud) has also seen a significant uptake in adoption, thanks in large part due to the addition of [Distributed Task Execution](/ci/concepts/parallelization-distribution) last year. With the combination of Distributed Task Execution and Distributed Caching, Nx Cloud is having a massive impact on the time it takes to validate and merge pull requests, drastically reducing product time-to-market. There are now more than 100k connected Nx Workspaces on nx.app. With Nx Cloud, Nx and Lerna workspaces can drastically reduce build times by letting Nx Cloud manage task cache distribution, and optimal distribution of tasks across many machines using Nxs deep understanding of project relationships and task timings. Weve determined that Nx and Nx Cloud have [saved over 250 years of compute time](blog/helping-the-environment-by-saving-two-centuries-of-compute-time) since we started measuring.
[Nx Cloud](/nx-cloud) has also seen a significant uptake in adoption, thanks in large part due to the addition of [Distributed Task Execution](/ci/concepts/parallelization-distribution) last year. With the combination of Distributed Task Execution and Distributed Caching, Nx Cloud is having a massive impact on the time it takes to validate and merge pull requests, drastically reducing product time-to-market. There are now more than 100k connected Nx Workspaces on nx.app. With Nx Cloud, Nx and Lerna workspaces can drastically reduce build times by letting Nx Cloud manage task cache distribution, and optimal distribution of tasks across many machines using Nxs deep understanding of project relationships and task timings. Weve determined that Nx and Nx Cloud have [saved over 250 years of compute time](/blog/helping-the-environment-by-saving-two-centuries-of-compute-time) since we started measuring.
![](/blog/images/2022-11-17/ysWZ8fn2K3m3GjCNGRwshw.avif)
@@ -19,7 +19,7 @@ However, until now, it has only supported Client-Side Rendering (CSR). Essential
> [What is server-side rendering: definition, benefits and risks](https://solutionshub.epam.com/blog/post/what-is-server-side-rendering)
Since [version 15.4](blog/nx-15-4-vite-4-support-a-new-nx-watch-command-and-more), Nx now offers Module Federation with support for SSR! 🎉
Since [version 15.4](/blog/nx-15-4-vite-4-support-a-new-nx-watch-command-and-more), Nx now offers Module Federation with support for SSR! 🎉
Now we can get both, the benefits of Module Federation and SSR in our Nx Workspaces!
@@ -110,7 +110,7 @@ To set it up, just click on the button in the Nx Console cloud view and follow t
## Learn more
- 🧠 [Nx Docs](/getting-started/intro)
- 👩‍💻 [Nx GitHub](<[https://github.com/nrwl/nx](https://github.com/nrwl/nx)>)
- 🎮 [Nx Console GitHub](<[https://github.com/nrwl/nx-console](https://github.com/nrwl/nx-console)>)
- 👩‍💻 [Nx GitHub](https://github.com/nrwl/nx)
- 🎮 [Nx Console GitHub](https://github.com/nrwl/nx-console)
- 💬 [Nx Official Discord Server](https://go.nx.dev/community)
- 📹 [Nx Youtube Channel](<[https://www.youtube.com/@nxdevtools](https://www.youtube.com/@nxdevtools)>)
- 📹 [Nx Youtube Channel](https://www.youtube.com/@nxdevtools)
@@ -128,7 +128,7 @@ const lockFile = createLockFile(packageJson);
// save files using e.g. `fs.writeFileSync`
```
Stay tuned for a more in-depth blog post coming soon to [our blog](blog).
Stay tuned for a more in-depth blog post coming soon to [our blog](/blog).
## Storybook 7.0 beta support
@@ -188,7 +188,7 @@ It also generates a nice `CHANGELOG.md` for us:
- **buttons:** add new background shadow
### ❤️ Thank You
### ❤️ Thank You
- Juri
+1 -1
View File
@@ -12,7 +12,7 @@ We are very excited to announce our support for Gradle with our new plugin: `@nx
The Nx Gradle plugin registers Gradle projects in your Nx workspace. It allows Gradle tasks to be run through Nx. Nx effortlessly makes your [CI faster](/ci/intro/ci-with-nx).
> **Note:** this plugin is currently experimental.
> **Update:** Learn how to import your existing Gradle projects into Nx in [our recent blog post](/blog/nx-import).
This blog will show you:
-5
View File
@@ -5,7 +5,6 @@ authors: ['Philip Fulcher']
cover_image: '/blog/images/2024-07-29/explain-with-ai-header.avif'
tags: [nx, nx-cloud, ai, release]
youtubeUrl: https://youtu.be/g2m9cHp-O-Q?si=ax-SKCO0Xvy9vFIz
pinned: true
---
It's Friday, and you absolutely, positively have to deploy to production. But you can't get CI to pass your PR. What do you do? It's an inevitable part of your life as a developer, and you've built a collection of tools to deal with it: Google, MDN, Discord, ChatGPT. We've got one more tool for your toolbox: **"Explain with AI" for [Nx Cloud](/nx-cloud)**.
@@ -41,10 +40,6 @@ Note that you'll need to be an organization admin for your Nx Cloud workspace to
Log in to Nx Cloud
{% /call-to-action %}
### I want to try this, but I'm on the Hobby plan 🤔
If you're currently on the Hobby plan, you can start a free Pro plan trial for 14 days to try it out on your own workspace. No, we don't ask for credit cards to start a trial, so feel free to experiment!
## More to come!
This is just the first of a series of AI-powered features that we're going to be rolling out to your workspaces. We've got some cool features in the works already, which we're going to **announce publicly during the [Monorepo World](https://monorepo.world) conference in October**! So stay tuned!
@@ -39,7 +39,7 @@ This command will guide you through the setup. We recently introduced a [new Hob
## Learn More
- [Nx on CI](/ci)
- [Nx on CI](/ci/intro/ci-with-nx)
- [Task Distribution with Nx Agents](/ci/features/distribute-task-execution)
- [Automated e2e Test Splitting](/ci/features/split-e2e-tasks)
- [X/Twitter](https://twitter.com/nxdevtools) -- [LinkedIn](https://www.linkedin.com/company/nrwl/)
@@ -1,97 +0,0 @@
---
title: Better security with Personal Access Tokens
slug: personal-access-tokens
authors: ['Philip Fulcher']
tags: [nx-cloud]
cover_image: /blog/images/2024-09-05/personal-access-tokens-header.avif
---
Today, Nx Cloud gets a huge upgrade to managing access to your cached artifacts
using [Nx Replay](/ci/features/remote-cache). Previously, workspaces
were limited to defining access tokens with read or read/write permissions for an entire workspace. With the
introduction of _personal access tokens_, you gain much more control over access. This is a feature request we've heard
from many customers, especially our [Enterprise](/enterprise) customers, and we're happy to be able to deliver this
enhancement.
## Access Tokens and the problem of revoking access
Our previous implementation of access tokens required you to commit the access token to your `nx.json` file. Typically,
service providers don't recommend committing any kind of API token like this, and we've fielded a lot of questions about
this practice in the past. It is safe to commit this token, as access to the cached artifacts of Nx Cloud rely on both
the access token and the source code itself. Without access to both, you can't access the cache.
However, this did present the following problem: revoking someone's access to the cache became difficult as long as they
had the source code. Imagine a scenario where someone has left an organization. As long as they have a clone of the
repo, they have everything they need to access the cache, even if their credentials have been
revoked. To fully revoke
their access would require cycling the access token, which could interrupt the work of other developers and CI
pipelines.
## Access Tokens become CI Access Tokens
What we previously called "access tokens" will now be called "[CI access tokens](/ci/recipes/security/access-tokens)."
They are still defined at the workspace
level, but are designed for use in CI. These tokens should be set as environment variables or secrets on your CI
platform so that they're no longer committed to your repo.
## What are personal access tokens?
[Personal access tokens](/ci/recipes/security/personal-access-tokens) are a new type of access token that is scoped to
an individual user. This means that this token lives and dies with that member's access to your Nx Cloud workspace.
Users must log in to Nx Cloud and they are a member of a workspace before a personal access token can be created.
Once created, we validate that token for access each time you use the distributed cache. As soon as a user loses access,
the personal access token no
longer works, and access to the cache is removed.
This gets even more powerful when combined with the GitHub VCS integration. When a user's GitHub access is removed from
a GitHub-connected organization, their access to Nx Cloud is removed, and their personal access token is invalidated.
This means that Nx Cloud can fit into existing user de-provisioning processes you already have.
Open source teams also benefit from personal access tokens. You can configure your access to allow anonymous users to
read from the cache, but limit read/write access to core contributors.
## Controlling default access
![Personal access token settings in Nx Cloud workspace](/blog/images/2024-09-05/workspace-settings.avif)
By default, a workspace that opts in to personal access tokens will allow anonymous users (users without a personal
access token defined) read-only access. This can be changed to disallow access to the cache for anonymous users
in your workspace settings.
Users with personal access tokens will have read-only access to the cache. This can be changed to enable read-write
access in the workspace settings.
## Converting existing workspaces to use personal access tokens
Personal access tokens can be enabled with _Nx versions 13+_. These steps will get you started, but you
can [find more details in our docs](/ci/recipes/security/personal-access-tokens).
1. **Convert to using `nxCloudId` by running `npx nx-cloud convert-to-nx-cloud-id`** - Previously, your `nx.json` had a
CI
access token defined in the `nxCloudAccessToken` property. This command will replace that with `nxCloudId`, a generic
id that references your workspace but no longer provides access to the cache.
2. **Generate a personal access token by running `npx nx-cloud login`** - Follow the directions in your terminal to log
in
to Nx Cloud. Each contributor with access to the workspace will need to complete this step.
3. **Move CI access tokens to environment variables** - Now that the access token is no longer committed to your
`nx.json`,
you'll need to provide that CI access token via the
`NX_CLOUD_ACCESS_TOKEN` [environment variable](/ci/reference/env-vars#nxcloudaccesstoken).
4. **_Optional_ Disable anonymous access** - By default, anyone without a personal access token will have read-only
access
to your cached artifacts. Once everyone has a personal access token defined, you can disable this anonymous access in
your Nx Cloud workspace settings.
[Learn more about using personal access tokens](/ci/recipes/security/personal-access-tokens)
## Learn more
- [Nx Docs](/getting-started/intro)
- [Nx Cloud Cache Security](/ci/concepts/cache-security)
- [Nx Cloud Personal Access Tokens](/ci/recipes/security/personal-access-tokens)
- [Nx Cloud CI Access Tokens](/ci/recipes/security/access-tokens)
- [X/Twitter](https://twitter.com/nxdevtools) -- [LinkedIn](https://www.linkedin.com/company/nrwl/)
- [Nx GitHub](https://github.com/nrwl/nx)
- [Nx Official Discord Server](https://go.nx.dev/community)
- [Nx Youtube Channel](https://www.youtube.com/@nxdevtools)
- [Speed up your CI](https://nx.app/)
@@ -479,7 +479,7 @@ For more information about Zephyr Cloud I highly recommend checking out their [d
## Learn More
- [Nx on CI](/ci)
- [Nx on CI](/ci/intro/ci-with-nx)
- [Task Distribution with Nx Agents](/ci/features/distribute-task-execution)
- [Automated e2e Test Splitting](/ci/features/split-e2e-tasks)
- [X/Twitter](https://twitter.com/nxdevtools) -- [LinkedIn](https://www.linkedin.com/company/nrwl/)
-1
View File
@@ -5,7 +5,6 @@ authors: [Zack DeRose]
tags: [nx, release]
cover_image: /blog/images/2024-09-20/thumbnail.png
youtubeUrl: https://youtu.be/Zgv4LHvwGx0
pinned: true
---
Nx 19.8 is here! This is our last minor release before we get ready to move ahead into Nx v20, which should land in October around the same time as the [Monorepo World Conference](https://monorepo.world/)!
+1 -1
View File
@@ -51,7 +51,7 @@ Are you a startup? If these features make sense for your team but the cost is a
## Got Questions?
If youre curious to learn more about these changes for Nx and how to get started, [check out our docs](/features/powerpack).
If youre curious to learn more about these changes for Nx and how to get started, [check out our docs](/nx-enterprise/powerpack).
## Learn more
@@ -119,13 +119,13 @@ A dedicated `nx sync` command automatically synchronizes these definitions to a
...
```
Read all about how to [configure Codeowners for your project in our docs](/features/powerpack/owners).
Read all about how to [configure Codeowners for your project in our docs](/nx-enterprise/powerpack/owners).
## Self-hosted Cache Storage
A continuous effort on our Nx core is to improve speed. Last year, we began **rewriting performance-critical parts of Nx into Rust**, and more core components are being rewritten. As part of this effort, we also changed how we manage local cache, moving from a **file-based to a database-based approach**. In addition to small performance gains from reduced I/O, this opens up many opportunities for improving local cache handling, such as keeping only relevant cache based on usage, more easily controlling maximum cache size, and optimizing task orchestration by running failed tasks earlier.
As part of this new approach we're also going to [deprecate custom task runners](/deprecated/custom-task-runners) in Nx 20. I bring this up because it might affect users that relied on 3rd party tools that hooked into the task runners API.
As part of this new approach we're also going to [deprecate custom task runners](/deprecated/legacy-cache) in Nx 20. I bring this up because it might affect users that relied on 3rd party tools that hooked into the task runners API.
To fill in on the custom task runner API we're providing a new Powerpack plugin that allows you to use S3 or a network drive as your storing mechanism for your Nx cache.
@@ -156,9 +156,6 @@ permissions:
id-token: write
...
env:
NX_DB_CACHE: true
jobs:
main:
runs-on: ubuntu-latest
@@ -178,7 +175,7 @@ jobs:
Similarly you can **set up network file based caching** using the `nx add @nx/powerpack-shared-fs-cache` package and by setting the `cacheDirectory` path in your `nx.json`.
Read all about how to [set up S3 or network drive based caching for your Nx workspace in our docs](/features/powerpack/custom-caching).
Read all about how to [set up S3 or network drive based caching for your Nx workspace in our docs](/nx-enterprise/powerpack/custom-caching).
## Workspace Conformance (Beta)
@@ -245,7 +242,7 @@ You can then run `nx conformance` to execute the conformance checks:
In this first preview release, you'll only be able to run workspace conformance rules on a single workspace. In future iterations, you **will be able to connect it to your existing Nx Cloud organization**, allowing you to upload conformance rules and run them across connected workspaces.
Read all the details on how to [get started with workspace conformance rules in our docs](/features/powerpack/conformance).
Read all the details on how to [get started with workspace conformance rules in our docs](/nx-enterprise/powerpack/conformance).
## Learn More
+68 -10
View File
@@ -4,11 +4,13 @@ slug: announcing-nx-20
authors: [Mike Hartington]
tags: [nx, release]
cover_image: /blog/images/2024-10-03/nx-20-header.png
youtubeUrl: https://youtu.be/5-QwtlhaJK8
pinned: true
---
I know it's hard to believe but Nx 20 is here! There's a lot of great updates in this release, but look back at some of the major features from Nx 19:
- Added [`nx import`][nx-import] to import existing external projects while maintaining git history.
- Added [`nx import`][nx-import] to import existing external projects, more on that below.
- Added a [generator][crystalize-command] to convert all your Nx Plugins to use inferred tasks.
- Moved to [rspack][nx-rspack] as the default bundler for Module Federation
- Added [file-based versioning][file-based-versioning] for Nx Release
@@ -22,27 +24,32 @@ If you've been around the Nx ecosystem for any amount of time, you're probably a
## TypeScript Project References For Monorepos
[**Project References**](https://www.typescriptlang.org/docs/handbook/project-references.html) allows TypeScript to process individual projects rather than the entire monorepo as whole. This is a huge improvement in terms of build times and developer experience. However, Project References comes with a maintenance cost, as it is up to you to update these references. In a large monorepo, this cost is prohibitive.
[**Project References**](https://www.typescriptlang.org/docs/handbook/project-references.html) allows TypeScript to process individual projects rather than the entire monorepo as a whole. This is a huge improvement in terms of build times and developer experience. However, Project References comes with a maintenance cost, as it is up to you to update these references. In a large monorepo, this cost is prohibitive.
With Nx 20, when using `create-nx-workspace --preset=ts`, workspaces will use Project References out of the box. Nx removes the maintenance cost of this feature by automatically updating the references for you when you run `build` or `typecheck` targets. You can also run [`nx sync`](/reference/nx-commands#sync) to update references, and `nx sync:check` in CI to validate the workspace.
With Nx 20, when using `create-nx-workspace --preset=ts`, workspaces will use Project References out of the box. Nx removes the maintenance cost of this feature by automatically updating the references for you when you run `build` or `typecheck` targets. You can also run [`nx sync`](/reference/nx-commands#sync) to update project references in your `tsconfig.json`, and `nx sync:check` in CI to validate the workspace.
In addition to adopting Project References, we're also changing the way we link projects in a TypeScript monorepos. **Workspaces** is the standard way to link packages in monorepos. This is a feature that all modern package managers support, such as [npm](https://docs.npmjs.com/cli/using-npm/workspaces), [yarn](https://yarnpkg.com/features/workspaces), [pnpm](https://pnpm.io/workspaces), and [bun](https://bun.sh/docs/install/workspaces), so taking advantage of it is a no-brainer. Now we have a proper way to provide type information and have your packages available in a way developers are used to.
In addition to adopting Project References, we're also changing the way we link projects in a TypeScript monorepos. **Workspaces** is the standard way to link packages in monorepos. This is a feature that all modern package managers support, such as [npm](https://docs.npmjs.com/cli/using-npm/workspaces), [yarn](https://yarnpkg.com/features/workspaces), [pnpm](https://pnpm.io/workspaces), and [bun](https://bun.sh/docs/install/workspaces), where you can declare a `workspace` key in your `package.json` and provide it an array of paths. Then on install, your package manager will traverse any directories that it finds in the workspaces key, and link them to your `node-modules`. This built in feature provides a much more standard way of connecting your packages in a monorepo that its a no-brainer. Now we have a proper way to provide type information and have your packages available in a way developers are used to.
Note that we've enabled Project References and Workspaces for the TS preset (i.e. `--preset=ts`), and we're working on extending this support for all other presets soon (Angular, React, Vue, Node). If you are an existing Nx user and want to create an empty workspace in the previous "integrated" style, you can use `create-nx-workspace --preset=apps`.
## `@nx/rspack` Graduates From Labs 🎓
[Rspack][rspack] has become one of the most exciting new bundlers in recent years. With a webpack-compatible API, it's a painless migration for folks who want faster builds without having to rewrite their entire build process. At Nx, we're big fans of Rspack and have been working on a plugin for folks who would like to migrate. With that in mind, the `@nx/rspack` plugin has officially been merged into the main Nx repository and will become a fully supported plugin for the ecosystem.
[Rspack][rspack] has become one of the most exciting new bundlers in recent years. With a webpack-compatible API, it's a painless migration for folks who want faster builds without having to rewrite their entire build process. At Nx, we're big fans of Rspack and have been working on a plugin for folks who would like to migrate. With that in mind, the `@nx/rspack` plugin has officially been merged into the main Nx repository and will become a fully supported plugin for the ecosystem. Want to learn more about Rspac in general? Check out our recent live stream where we deep dive into how to use Rspack and cover its involvement with module federation.
{% youtube
src="https://www.youtube.com/watch?v=_c4zjYm0pYE"
title="Nx Live | Rspack"
/%}
In addition to this, Nx core team member [Colum Ferry][colum] has taken the work he's done on the Rspack plugin and brought it to the Angular ecosystem! He's recently released `@ng-rspack/nx` to bring Rspack support to your Angular projects. Simply install the plugin and generate a new app in your workspace to try it out!
```bash
```shell
# In an Nx Workspace (npx create-nx-workspace)
# Install Package
npm install @ng-rspack/nx
# Run the app generator
npx nx g @ng-rspack/nx: app apps/myapp
npx nx g @ng-rspack/nx:app apps/myapp
# Serve the app
npx nx serve myapp
@@ -54,6 +61,19 @@ npx nx build myapp
npx nx e2e myapp-e2e
```
## ESLint v9 Updates
In [Nx 19.8](/blog/nx-19-8-update#new-nx-workspaces-created-with-eslint-v9), we highlighted that workspaces will now be created with [`eslint`](https://www.npmjs.com/package/eslint) v9, and [`typescript-eslint`](https://www.npmjs.com/package/typescript-eslint) v8.
This not only brings us inline with the latest version of eslint and typescript-eslint, but also that [flat config](https://eslint.org/docs/latest/use/configure/migration-guide) is only supported moving forward. Nx users should migrate to this new config format using [our flat config generator](/recipes/tips-n-tricks/flat-config#switching-to-eslints-flat-config-format).
For more on eslint's flat config, and how to use our generator to get to flat config checkout this video:
{% youtube
src="https://www.youtube.com/watch?v=32XH909CZrY"
title="ESLint Config Automation With Nx"
/%}
## Nx Release: More Powerful And Flexible Versioning
`nx release` has added many powerful versioning capabilities since it was first made public as part of Nx 19. We are super excited about an in progress ground-up reworking of our versioning logic that powers `nx release` and the programmatic API `releaseVersion()` that will continue to support all these features, and allow for even more complex and large scale workspaces to be supported.
@@ -64,6 +84,26 @@ Additionally, for workspaces that contain multiple different programming languag
The Nx Team provides the JavaScript version generator out of the box, so for many users, this is not a concern. But for those working with Go, Rust, Dotnet, Java etc, currently a lot of logic needs to be reimplemented and kept up to date with the latest features. In the upcoming versioning rework, the abstraction required for each new language/ecosystem is tiny and purely deals with interacting with the relevant manifest file and registry, if applicable. All feature capabilities are maintained on the Nx core side. Once this new versioning implementation is available in an Nx v20 minor release we will update our documentation to provide guidance on how to opt in, before it ultimately becomes the primary implementation in Nx v21.
## Importing Existing Projects
Another important feature worth highlighting with Nx 20 is the ability to import external projects and add them to your Nx workspace with `nx import`. Not only does `nx import` ease the process of consolidating separate projects into one monorepo, it also maintains that original projects git history. Now you have the full historical context of that particular project. In addition to just being able to bring in external projects, `nx import` will also analyze the project and provide recommended Nx plugins to be added to your workspace. So if you're importing a Vite project that also has ESLint, `nx import` will detect the config files and suggest installing them into your workspace. So not only is migrating to a monorepo simpler, you can keep your existing tool chain and keep working with a setup you are familiar with. Get a glance of how import works in a past live stream and be on the lookout for more on import in the future.
{% youtube
src="https://youtu.be/8ljemsNT21c?t=2632"
title="Nx Import Preview"
/%}
## Caching - Now With Databases
Caching is a big feature of Nx and is one of many reasons why we can have such a fast build time. But our approach to caching has historically been lacking for a bit. Prior to Nx 20, we utilized a file-based caching system where the build results were written to disk and were read from disk when any subsequent builds were performed. This solution could lead to some performance issues if the cached output was rather large, leading to the build process needing to wait for any output to be loaded from the cache. In Nx 20, we've adopted a database-driven solution for caching your results. Not only is this a faster mechanism for caching, but it's a much more robust solution than simply reading/writing from a directory. We can make sure that as your monorepo scales, the caching portion does not become a bottleneck. While the new database caching solution is the default for Nx 20, you can opt-out by setting `useLegacyCache` in your `nx.json`
```json {% fileName="nx.json" %}
{
"useLegacyCache": true,
"namedInputs": {...}
}
```
## So Long Derived Directories 👋
Generating apps and libraries in a monorepo is something folks do quite regularly and part of that is telling Nx where it should put things. So you've probably seen this prompt before:
@@ -74,9 +114,26 @@ This is where the concept of derived directories comes in. It will try to inspec
## Wrapping Up
There's a lot more in Nx 20, so be sure to check the full changelog for all the details on everything in this major release.
Updating Nx and its plugins is easy as we ship an [automated migration command][migration-step].
- [Nx 20 Changelog](/changelog)
{% youtube
src="https://www.youtube.com/watch?v=A0FjwsTlZ8A"
title="Nx Automatic Migrations"
/%}
```shell
npx nx migrate latest
npx nx migrate --run-migrations
```
There's a lot more in Nx 20, so be sure to check the full changelog for all the details on everything in this major release and any of our past releases.
- [Nx 20.0 Changelog](/changelog#20.0.0)
- [Nx 19.8 Changelog](/changelog#19.8.0)
- [Nx 19.7 Changelog](/changelog#19.7.0)
- [Nx 19.6 Changelog](/changelog#19.6.0)
- [Nx 19.5 Changelog](/changelog#19.5.0)
- [Nx 19.0 Changelog](/changelog#19.0.0)
[rspack]: https://rspack.dev
[rescope]: /deprecated/rescope
@@ -86,4 +143,5 @@ There's a lot more in Nx 20, so be sure to check the full changelog for all the
[file-based-versioning]: /recipes/nx-release/file-based-versioning-version-plans
[nx-rspack]: /nx-api/rspack
[crystalize-command]: /blog/nx-19-8-update#crystalize-your-entire-workspace-in-one-command
[nx-import]: /nx-api/nx/documents/import
[nx-import]: /recipes/adopting-nx/import-project
[migration-step]: /features/automate-updating-dependencies
@@ -0,0 +1,103 @@
---
title: Improve your architecture and CI pipeline times with Nx projects
slug: improve-architecture-and-ci-times-with-projects
authors: [Philip Fulcher]
tags: [nx, 'customer story']
cover_image: '/blog/images/2024-10-25/header.avif'
pinned: true
---
When adopting monorepos and Nx, it can feel like there's a lot that needs to be understood first before you get all the benefits. Oftentimes it's tempting to skip some fundamentals and just add all your code into one monorepo and call it a day. Following this mentality is the best way to actually _increase_ your CI run times and cost. Monorepos should simplify your architecture and reduce costs, not cause you to spend more money and time to build, test, and deploy. To make this possible, following a simple restructure of multiple applications and investing time and effort into setting up your monorepo can pay off in the long run. But what does this ideal structure look like, and what are the benefits?
## Real World Example
![Graphs showing pipeline improvements](/blog/images/2024-10-25/improvement-graph.avif)
While it's easy to say this architectural approach is better, it does help to highlight cases where other teams have faced this very challenge. A major sports retailer in the US made the switch to monorepos powered by Nx and faced several challenges. Their project structure had a massive amount of code duplication across all of the apps in monorepo. When measuring their initial migration, they had an average **CI run time of an hour** and a **cache hit rate of under 20%**. We worked with this team and were able to guide them along their migration to figure out where they could make the biggest impact. After investing in this effort, they've been able to cut their CI run times down to **7-9 minutes** and with a **cache hit rate of 57%**. This significant improvement can all be traced back to following best practices.
## Projects All The Way Down
In our sports retailer monorepo, lets consider that we have three apps for different parts of our frontend. In a worst case scenario, we bring all these apps together, configure their CI pipelines, and call it a day. This bare minimum, while it does give us a monorepo, it does not provide any real substantial value outside of dependencies being matched across the apps. As we start to add more and more to the monorepo, we'll see our CI run times start to increase. Anytime we try to cut a release, we'll be left waiting longer and longer. So what's the solution here?
Let's say we have some code in our app that exists in all three of our apps that is copied across all of them. When your PR hits CI, this portion of code is built, tested, and linted in every place that it is copied, which is unnecessary. One block of shared code won't fix our CI pipeline times, but it will set us on the correct path. The solution is to start migrating portions that are common across any apps in a monorepo into its own project that we can import.
Splitting this code out with Nx is as simple as generating a new project and migrating that code over. So this:
```text
monorepo/
└── apps/
├── storefront/
├── internal-dash/
└── support-dash/
```
Becomes this:
```text
monorepo/
├── apps/
│ ├── storefront/
│ ├── internal-dash/
│ └── support-dash/
└── libs/
└── date-time-utils/
```
![Graph of applications depending on a shared library](/blog/images/2024-10-25/apps-with-shared-lib.avif)
This small change will now allow Nx to cache the task results of our `date-time-utils`. That way, when we attempt to build, test, or lint our apps, Nx will simply provide the cached results if the project hasn't been changed. As we migrate more and more of our code into their own projects, the caching features become more and more impactful.
Splitting our shared utilities seems like a very reasonable first step, but we can take this further by actually splitting any UI features into their own projects. This is helpful if we've standardized around a particular frontend framework, then sharing those components across any number of apps becomes trivial. A secondary aspect of this is now we can ensure consistency across our UI design all while reducing our build times further down.
## Projects aren't just for shared code
Shared libraries often make sense as a first attempt at optimizing monorepo architecture because it mirrors what we see in a multirepo approach. Grouping code that's used in multiple places into a single reusable library scratches that engineering itch to be DRY. But shared code is not the only code that should be in projects in a monorepo. Applications themselves can also be broken down into projects.
Why? Caching and parallelization of tasks happens at the **project** level. Dividing code into logical pieces and separating it into separate projects allow us to:
- **Run tasks faster** - Running tasks on smaller projects = faster run times
- **Cache more results** - Making changes to smaller projects results in fewer affected projects = running fewer tasks in CI
Imagine this application has three routes:
```text
storefront/
├── product-search
├── product-details
└── checkout
```
If we leave this application as-is, we build, test, and lint this entire application any time we make a change.
If we instead break these routes into their own projects:
```text
monorepo/
├── libs/
│ shared
│ │ └──date-time-utils/
│ └──storefront/
│ ├──product-search/
│ ├──product-details/
│ └──checkout
└── apps/
├── storefront/
├── internal-dash/
└── support-dash/
```
![Graph of application depending on projects](/blog/images/2024-10-25/app-with-route-projects.avif)
The routes exist as projects which are then imported by the application. We can now lint and test the app and those routes individually. If we make a change to one route, we don't have to lint and test the other routes.
## Improve Your Builds, Talk With Us
Adopting a monorepo powered by Nx on its own does not solve build speeds or CI pipeline times. But adopting a monorepo and taking the time to reevaluate your architecture can lead to a significant improvement in build times when best practices are applied. If you're curious to know more, reach out to us to see how Nx can improve your monorepo experience and ship faster!
{% call-to-action title="Explore Nx Cloud for Enterprises" url="/enterprise" icon="nxcloud" description="Learn more about our offerings for enterprises and contact our team" %} Explore Nx Cloud for Enterprises {% /call-to-action %}
## Further reading
- [Project size in monorepos](/concepts/decisions/project-size)
- [Folder structure for project](/concepts/decisions/folder-structure)
- [Defining dependency rules between projects](/concepts/decisions/project-dependency-rules)
+89
View File
@@ -0,0 +1,89 @@
---
title: Import External Projects to Your Nx Monorepo With `nx import`
slug: nx-import
authors: [Zack DeRose]
tags: [nx]
cover_image: '/blog/images/2024-10-29/nx-import-thumbnail.avif'
youtubeUrl: https://youtu.be/hnbwoV2-620
---
- [The Need](#the-need)
- [How It Works](#how-it-works)
- [`git` History ✅; Selective `git` History ✅](#git-history-selective-git-history)
- [Resources And More](#resources-and-more)
## The Need
One of the larger and more frequent asks we've gotten through the years at Nx is for the ability to import other repos (and projects from other repos) into an organization's monorepo. And that's understandable.
The [benefits of monorepos](https://monorepo.tools/) are immense, and over time we've seen more and more organizations and developers in the wider community gravitate towards monorepos as a way of managing codebases that are broader and more complex.
However, while we've always had a great story for starting up a fresh monorepo from scratch, the ability to easily import other existing projects has become more and more in demand as organizations have warmed to the idea of monorepos - and like we said, it's understandable. Once you get a taste of how much better things get in a monorepo, you tend to want to bring in all the things!
Prior to this work, it was always possible to do manually - but it takes some finessing both in terms of copying/pasting files over, and (as we'll see later) maintaining combining git history from the old project into its new home.
We always wanted to make this better - and now, we've now added a new top-level command to Nx specifically to address this: [`nx import`](http://localhost:4200/nx-api/nx/documents/import).
## How It Works
Here's how it works:
```shell
nx import ../my-side-project
```
Simply provide either a path to the repo that you want to import from to the CLI, or if you want to import from a central repository - for example from GitHub, you can provide the URL of the repo as the command-line argument. This will take you through some interactive prompts. For this example I'm importing the project `promise-pool`, located on my local disk at `/my-side-project/projects/promise-pool`.
Here are those interactive prompts:
```shell
nx import ../example-ts-monorepo --dry-run
NX Nx will walk you through the process of importing code from the source repository into this repository:
1. Nx will clone the source repository into a temporary directory
2. The project code from the sourceDirectory will be moved to the destinationDirectory on a temporary branch in this repository
✔ Filtered git history to only include files in packages/promise-pool
✔ /Users/zackderose/example-ts-monorepo has been prepared to be imported into this workspace on a temporary branch: __nx_tmp_import__/main in /private/var/folders/r2/7dj0tnbd1174yxxj18nhl5v40000gn/T/nx-import/repo
✔ Fetched __nx_tmp_import__/main from __tmp_nx_import__
✔ Merged files and git history from main from /Users/zackderose/example-ts-monorepo into libs/promise-pool
✔ Cleaned up temporary files and remotes
```
Following this, Nx will prompt you to install any relevant Nx plugins that it can detect from the incoming project if they are missing!
```shell
Add these Nx plugins to integrate with the tools used in your workspace.
? Which plugins would you like to add? Press <Space> to select and <Enter> to submit. …
✔ @nx/eslint
✔ @nx/vite
✔ @nx/playwright
```
Following this step, we're essentially good-to-go, though in a real life scenario you're likely 90-95% of the way there. There may be some final finessing required in terms of merging CI pipelines and etc. - things that we can't really automate away!
## `git` History ✅; Selective `git` History ✅
One thing you may have missed in the example was this line here when the `nx import` command was running:
```shell
⠋ Filtering git history to only include files in packages/promise-pool (this might take a few minutes -- install git-filter-repo for faster performance)
```
As mentioned earlier, `nx import` WILL preserve the git history of your incoming project, merging it in with your monorepo's git history.
But as an extra feature - in the case like the example we were looking at (only importing one package from the `my-side-project` repo), `nx import` will automate a filtering of the git history of the incoming project, to ONLY match for commits that involved the projects being imported! We've found this feature to be especially helpful for our enterprise-level users who are importing a project from their legacy codebase into their Nx Workspace!
## Resources And More
For more on `nx import` be sure to check out our [recipe for using `nx import`](/recipes/adopting-nx/import-project), and as always, you can find more help:
- In the [Nx Docs](/getting-started/intro)
- On our [Nx Official Discord Server](https://go.nx.dev/community)
And you can keep up with us:
- On our [Nx Youtube Channel](https://www.youtube.com/@nxdevtools)
- On [X/Twitter](https://twitter.com/nxdevtools) -- [LinkedIn](https://www.linkedin.com/company/nrwl/)
- And on the [Nx GitHub](https://github.com/nrwl/nx)
+147
View File
@@ -0,0 +1,147 @@
---
title: Handling CORS In Your Workspace
slug: handling-cors
authors: [Mike Hartington]
tags: [nx]
cover_image: '/blog/images/2024-11-14/cors.png'
---
## CORS - The Great Initiation For Web Developers
Are you even a developer if you've never dealt with CORS? Jokes aside, CORS is one of those problems that everyone faces at least once in their life, and if it's your first time, it can be quite frustrating. CORS stands for Cross Origin Resource Sharing, which is a mechanism for allowing what URLs can access other URLs. Meaning if I have `http://site1.com` and I try to access something from `http://site2.com`, I will get an `Access-Control-Allow-Origin` error.
To demonstrate the issue most developers will encounter with CORS, take this example: I have a web server that I'm hosting locally on port 3333. This is a typical REST API that I can make a request to and get a response back:
![REST API returning the data as expected](/blog/images/2024-11-14/status-ok.png)
That's working as expected, but now consider trying to make this request from a different origin. When I try to make my request in my web app, the request will fail:
![REST API blocking the request in the bowser](/blog/images/2024-11-14/status-fail.png)
This is due to CORS restriction that is actually built into our browser. Whenever you make a network request from one location (in this case, our Angular App that is hosted on [http://localhost:4200](http://localhost:4200/)) to a different location (the API hosted at [http://localhost:3333](http://localhost:3333/)), the browser will intercept this request, and if the API hasn't allowed requests from `localhost:4200`, it will block the request.
## Letting The Request Through
Now CORS-related issues can be addressed in multiple ways, and it can be as simple as bypassing CORS all together (the less ideal solution) or configuring a middleware for our dev server to intercept any requests.
> But wait, I thought Nx would do this for me?
In past releases, Nx would provide options in our executors to configure a proxy connection between backend and frontend applications. This still exists for example in our Angular plugin where we are still using executors. However, with our decision to move to a more “optionally opinionated” approach, we now recommend that you use native CLI tools (like vite or webpack) instead of our executors. In this approach, youd configure the proxy exactly according to how the tool prescribes. Nx doesnt get in your way!
To address this, our two possible solutions could be at the API level, or the framework level.
### Handle The CORS Request On The API
Let's take this very basic Express app that you can get when you run our default Express app generator from `@nx/express`:
```ts {% fileName="main.ts" %}
import express from 'express';
import * as path from 'path';
const app = express();
app.use('/assets', express.static(path.join(__dirname, 'assets')));
app.get('/api', (_req, res) => {
res.send({ message: 'Welcome to api!' });
});
const port = process.env.PORT || 3333;
const server = app.listen(port, () => {
console.log(`Listening at <http://localhost>:${port}/api`);
});
server.on('error', console.error);
```
There are two ways we can address CORS in our API. One approach can be to actually set the `Access-Control-Allow-Origin` header in our request:
```ts {% fileName="main.ts" %}
app.get('/api', (_req, res) => {
res
.setHeader('Access-Control-Allow-Origin', '*')
.send({ message: 'Welcome to api!' });
});
```
Or, we can use the `cors` middleware.
```shell
npm install cors @types/cors
```
With `cors` installed, you can import the package and `use` it in your app:
```diff {% fileName="main.ts" %}
import express from 'express';
import * as path from 'path';
+ import cors from 'cors'
const app = express();
+ app.use(cors())
```
By just doing this, any requests made to our Express API will allow all requests, but you can limit it to certain origins by passing in some options to `cors()`
```ts {% fileName="main.ts" %}
app.use(
cors({
origin: '<http://example.com>',
})
);
```
Now, why would you use the `cors` middleware when you could just set the `Access-Control-Allow-Origin` header yourself? The middleware handles a lot of edge cases that you would need to write yourself, and at sub 250 lines of code, it doesnt add too much to your codebase.
### Leave It To The Framework Tools
If you don't have control over the API and are not able to enable CORS, there's still another option for you. Most framework tools have an option to let you pass a proxy file to your dev server. Then any requests made during development can be proxied by the dev server, and you can continue building your app.
For example, in our Angular application, let's create a `proxy.conf.json` in our web project:
```shell
touch apps/web/src/proxy.conf.json
```
In that file, let's add the following:
```json {% fileName="proxy.conf.json" %}
{
"/api": {
"target": "http://localhost:3333",
"secure": false
}
}
```
Then in our in the `project.json`, let's tell the dev server about this newly created proxy file:
```diff {% fileName="project.json" %}
"serve": {
"executor": "@angular-devkit/build-angular:dev-server",
+ "options":{
+ "proxyConfig": "apps/web/src/proxy.conf.json"
+ },
```
With our dev server running, we can simply make requests to `/api` and the request will be allowed.
For frameworks like Vue and React that provide a Vite config, you can inline this right in the config:
```ts {% fileName="vite.config.ts" %}
export default defineConfig({
server: {
proxy: {
'/api': {
target: 'http://localhost:3333',
},
},
},
});
```
## Parting Thoughts
With CORS being an ever present issue in many apps, it's important to know how to address it when you run into it. By either addressing it at the API level or with in your app directly, you can make sure that CORS doesn't stop you from shipping your projects.
- [MDM CORS Docs](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS)
+54
View File
@@ -0,0 +1,54 @@
---
title: See your affected project graph in Nx Cloud
slug: ci-affected-graph
authors: ['Philip Fulcher']
tags: [nx-cloud]
cover_image: /blog/images/2024-11-19/header.avif
youtubeUrl: https://youtu.be/TS-Fp2iSlVM
---
As monorepos grow in size and complexity, it can be difficult to understand the relationships between different parts of
your codebase. That's why Nx has the [graph visualization](/features/explore-graph) that helps you see the different
connections between projects and tasks in your workspace. But that runs locally, and sometimes you need to see that same graph from your CI's perspective. Now you can do that with the affected project graph in Nx Cloud.
## More insight into CI tasks
The CLI project graph visualization can give you some information about what projects or tasks are affected by your changes. But
CI may run different tasks than you do locally, or compare to different branches for affected calculations. So you often
feel like you're passing your work off to a black box with no insight into why a project is marked as affected on CI.
What do we mean by "marked as affected?" In a monorepo, running all your tasks, all the time, quickly becomes untenable. You'll either be wasting time waiting for tasks to finish, or spending a fortune on runners powerful enough to run in a timely manner. Instead, Nx analyzes the structure of your workspace and understands the relationship between different projects. When you run [`affected`](/ci/features/affected) tasks, it traces the projects that are actually affected by the change. For example, if you've made changes to a single app, Nx only marks that app as affected and doesn't run tasks for any other app.
## How do I use it?
The affected project graph is available on all CI Pipeline Executions (CIPEs) in Nx Cloud. Click the new "Affected Project Graph" link at the top of your CIPE view.
![Screenshot of CI affected project graph on Nx Cloud](/blog/images/2024-11-19/screenshot.avif)
The affected project graph uses the new [Composite Graph](/features/explore-graph#focusing-on-valuable-projects) introduced in Nx 20.
Groups of projects are collapsed into a single node on the graph based on directories. You can expand those nodes to see
inside by double-clicking them, or by clicking on the node and then clicking "Expand".
You can explore affected project graphs on your own on the
public [Nx OSS workspace](https://staging.nx.app/orgs/62d013d4d26f260059f7765e/workspaces/62d013ea0852fe0a2df74438/overview).
We've put together an example of one problem you can solve using this new view: [reducing the number of affected projects on CI](/ci/recipes/other/cipe-affected-project-graph).
## Get started with Nx Cloud
Not an Nx Cloud user? You can get started today, for free!
{% call-to-action title="Get started with Nx Cloud" url="/nx-cloud" icon="nxcloud" description="Try Nx Cloud for Free" %}
Get started with Nx Cloud
{% /call-to-action %}
## Learn more
- [Recipe: Reduce the Number of Affected Projects in a CI Pipeline Execution](/ci/recipes/other/cipe-affected-project-graph)
- [Nx Docs](/getting-started/intro)
- [X/Twitter](https://twitter.com/nxdevtools)
- [LinkedIn](https://www.linkedin.com/company/nrwl/)
- [Nx GitHub](https://github.com/nrwl/nx)
- [Nx Official Discord Server](https://go.nx.dev/community)
- [Nx Youtube Channel](https://www.youtube.com/@nxdevtools)
- [Speed up your CI](/nx-cloud)
@@ -0,0 +1,120 @@
---
title: Advent of Code Gets The Crystal Treatment!
slug: advent-of-code-crystal-edition
authors: ['Zack DeRose']
tags: [nx]
cover_image: /blog/images/2024-11-30/thumbnail.png
youtubeUrl: https://youtu.be/st6Yq-19bW8
---
Talking with developers, we've found that one of the main reasons folks like using Nx is: Nx allows their team to focus on shipping a great product, while Nx handles all the rest:
- setting up tools for testing, linting, and etc.
- dynamic CI/CD pipelines with Nx Cloud
- a code generation framework to manage expanding their projects
For the past couple years, we've been releasing an `Advent of Code Starter Repo` with this in mind!
If you're not familiar, [Advent of Code](https://adventofcode.com/) is a special event that runs every December that works like a Advent Calendar of programming problems. Every day at midnight, we all get access to 2 new puzzles that will award us a gold star if you can complete it successfully.
Specifically, our goal is to give developers an easy to use starting point that allows them to focus on solving the puzzles, and handing the rest over to Nx instead of wrestling with setting up tools, file i/o, and the like.
This year, we were able to further reduce the nx-specific config needed, using the new [Nx Project Crystal](/concepts/inferred-tasks) enhancements that landed earlier this year!
## Packages Landed!
We're excited to announce version `2.0.0` of the [`create-ts-aoc-starter`](https://www.npmjs.com/package/create-ts-aoc-starter) and [`ts-aoc-starter`](https://www.npmjs.com/package/ts-aoc-starter) packages are released, just in time for Advent of Code 2024!
### [`create-ts-aoc-starter`](https://www.npmjs.com/package/create-ts-aoc-starter)
This is the code generation command to setup your Advent of Code workspace! Simply run the command:
```terminal
> npx create-ts-aoc-starter@latest
```
And we'll spin up your workspace for you, all tools configured and ready to go!
### [`ts-aoc-starter`](https://www.npmjs.com/package/ts-aoc-starter)
This is the Nx Plugin we're shipping this year that comes pre-installed whenever you run the `create-ts-aoc-starter` command. By installing this package, and adding the `dynamic-tasks` to your `plugins` array of your `nx.json` file, Nx can setup all the commands we'll need for Advent of Code this year, with no manual setup or config required!
## How It Works
After generating your workspace, you'll find a directory for each of the 25 days of the game, and inside each directory, you'll find the following files:
- `a.data.sample.txt`
- `a.data.txt`
- `a.ts`
- `b.data.sample.txt`
- `b.data.txt`
- `b.ts`
Provide your solution to the first part of the day in the `a.ts`, and you can copy and paste your code into `a.data.txt`.
For _most_ days, the puzzle also comes with a sample set of data to demonstrate what the correct answer would be. On these days, you can enter that data into the `a.data.sample.txt` file provided!
To run your solution against the sample data for day 1 then, run one of the commands:
```terminal
> nx day-1-a-sample
> nx day-1-sample
> nx 1-a-sample
> nx 1-sample
```
And to run against the actual data, you can run one of the following:
```terminal
> nx day-1-a
> nx day-1
> nx 1-a
> nx 1
```
Sometimes the second part of the problem simply builds on top of the first. On those days, you can just continue to code in the `a.ts` file, but a `b.ts` and `data.txt` files are also provided if you want to start over. To run these, use the commands:
```terminal
> nx day-1-b
> nx 1-b
> nx day-1-b-sample
> nx 1-b-sample
```
### New Feature for 2.0.0: File Watching!
We've also added file watching (using [`nx watch`](/nx-api/nx/documents/watch) behind the scenes!)
Simply add `watch-` to the start of any of the commands and aliases listed above to start any of them in watch mode, so they automatically re-run as soon as any changes to the file system are detected! Example:
```terminal
> nx watch-1
```
### New Feature for 2.0.0: Additional Data Sets!
This year, we're also including the ability to drop in additional data sets. This can be particularly helpful in later days (as the problems get harder) and you want to test your solution on a data set that isn't the specific sample or the actual dataset provided. For this, simply create a `data.txt` file matching the naming pattern.
For example, if I wanted to create a data set called `foo`, I'd create in the filesystem a file called `a.data.foo.txt`. Then to run against this data set, run one of the commands:
```terminal
> nx day-1-a-foo
> nx day-1-foo
> nx 1-a-foo
> nx 1-foo
> nx watch-day-1-a-foo
> nx watch-day-1-foo
> nx watch-1-a-foo
> nx watch-1-foo
```
## Learn more
- [Tutorial: Creating Your Own Plugin With Inferred Tasks](/extending-nx/tutorials/tooling-plugin#create-an-inferred-task)
- [Nx Docs](/getting-started/intro)
- [X/Twitter](https://twitter.com/nxdevtools)
- [LinkedIn](https://www.linkedin.com/company/nrwl/)
- [Nx GitHub](https://github.com/nrwl/nx)
- [Nx Official Discord Server](https://go.nx.dev/community)
- [Nx Youtube Channel](https://www.youtube.com/@nxdevtools)
- [Speed up your CI](/nx-cloud)
@@ -0,0 +1,86 @@
---
title: Define the relationship with monorepos
slug: define-the-relationship-with-monorepos
authors: ['Philip Fulcher']
tags: [nx]
cover_image: /blog/images/2024-12-03/header.avif
---
A monorepo might sound like a big, intimidating thing, but we're going to break it down to just the bare essentials. **A monorepo helps you better manage the relationships that already exist between your projects.** Once we understand those relationships, we can use tools to very quickly define them and pull them together into a more cohesive whole.
## So, what is a monorepo?
Let's start with the big question: what even is a monorepo?
> That's like when Google only has one repo for the entire company, right?
Not quite. That scale of monorepo doesn't work for most organizations, and we can still use a monorepo approach for smaller systems.
> So it's when you throw all your code in one repo and figure out how to manage it later?
This is also a pretty bad idea. We need tools and processes to manage this volume of code in a single repo.
The best definition I've seen comes from [monorepo.tools](https://monorepo.tools):
> A monorepo is a single repository containing multiple distinct projects with well-defined relationships.
Let's dig into that last part. What do we mean by **well-defined relationships?** It's useful to stat thinking about relationships between code in terms of distance.
## The shortest distance: importing from another file
We'll start with the smallest possible distance between two pieces of code: importing something from another file.
![Diagram showing a form component depending on a button component](/blog/images/2024-12-03/another-file.avif)
Say you have a button component. You create a form and import that button to use. This is a relationship we take for granted because we do it all the time, but there are some distinct benefits to this.
First, we see the impact of our change immediately. We make a change in the button, and we either see the result rendered in the browser, or we get a failed compilation. Or we have a test suite running that will fail or pass a test. Or lint rule warnings appear in our IDE. We immediately see the result of the change we've made, and the impact on the relationship.
This makes iteration fast: we see the impact of the change and can either refine that change or move on to the next one.
## One step away in distance: importing from a package
Let's take a step further away and think about the relationship when you have imported something from a package.
![Diagram showing a form component depending on a design system package that bundles a button component](/blog/images/2024-12-03/package.avif)
Say you have a design system published for your organization. You import the button from that package to use in your form. This looks very similar to what we did before, but we've introduced a big change in this relationship: seeing change is no longer immediate.
If we make a change in the button, there will be some sort of compilation, bundling, and publishing that will need to happen. And we'll need to consume the latest version of the package to actually see the change.
This is a slow process when you're working alone, but it can be managed with some tools. However, what happens if this change crosses team boundaries? Your design system team makes a change to the button and has to go through a PR review and merge process. Eventually that change is released as a new version and published. At some point later, you upgrade your version of the dependency just to find out the button has changed. But there's a bug! You report back to the design system team, and now they're going through this entire process again to get the fix in and published. This iteration cycle is very slow because understanding the impact of the change in the design system is no longer immediately apparent to consumers.
## Even further away: APIs
Let's step one step further: using APIs. Your frontend (in most cases) requires a backend, and it will be broken without it.
![Diagram showing a frontend sending requests to a backend, and the backends responds to the frontend](/blog/images/2024-12-03/api.avif)
There is an **implicit dependency** between the frontend and backend. You don't import code directly, but you do depend on the backend to function.
Let's say that there's a new API endpoint needed, and you agreed with the team that it would be called `api/v1/contact/create` and would accept a payload with `contactName`.
But, the backend team had a conversation about naming standards during their sprint and made the decision that it could really be `contact/init` with a payload of `fullName`.
Understanding the impact of this change is now far-removed from making the change. Not only is there the PR merge, packaging, and releasing, but also deployment. It may not be until the end of the sprint before the impact of this change is actually understood. This iteration is practically glacial.
## How do monorepos help?
How do monorepos help with these relationships? **They shorten the distance of relationships between code.** Code is **colocated** so that the impact of your change can be understood immediately.
In the example with the design system, the button will be imported directly instead of going through a build and package process. The design system team can immediately see the impact of the change they're making and either adjust their approach or fix the issue directly in the consuming app.
For the API team, we can define that implicit relationship between backend and frontend so that we trigger e2e tests to confirm a change works. Or we can generate models from the backend to be consumed by the frontend. When the models are changed, the frontend code that imported those models will immediately reveal the impact of the change.
You might think that moving projects into a single repository changes the relationship between the projects. But the relationships we've talked about here already exist; the monorepo makes those relationships explicit and well-defined. With good monorepo tooling, we can understand the impact of change along any of these relationships faster in a monorepo.
## Learn more
- [Nx Docs](/getting-started/intro)
- [X/Twitter](https://twitter.com/nxdevtools)
- [LinkedIn](https://www.linkedin.com/company/nrwl/)
- [Bluesky](https://bsky.app/profile/nx.dev)
- [Nx GitHub](https://github.com/nrwl/nx)
- [Nx Official Discord Server](https://go.nx.dev/community)
- [Nx Youtube Channel](https://www.youtube.com/@nxdevtools)
- [Speed up your CI](/nx-cloud)
Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 709 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 478 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 811 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 775 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 338 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 970 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 716 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

+1 -1
View File
@@ -1,6 +1,6 @@
# Nx 15.4
[Read the 15.4 release blog post](https://blog.nrwl.io/nx-15-4-vite-4-support-a-new-nx-watch-command-and-more-77cbf6c9a711)
[Read the 15.4 release blog post](/blog/nx-15-4-vite-4-support-a-new-nx-watch-command-and-more)
{% youtube
src="https://www.youtube.com/embed/G02THNy3PcE"
+6 -1
View File
@@ -1,4 +1,9 @@
# Nx 20
# [Nx 20.0 Blogpost](/blog/announcing-nx-20)
{% youtube
src="https://youtu.be/5-QwtlhaJK8"
title="Announcing... Nx 20!!!"
width="100%" /%}
## Features
+7
View File
@@ -0,0 +1,7 @@
---
title: 'Introduction to Nx'
description: 'New to Nx? Then this is where you should start.'
authors: [Juri Strumpflohner]
---
This course gives you a quick high-level overview of Nx, how running tasks works, task caching, how Nx provides code scaffolding functionality and how you can use `nx migrate` to automatically update your workspace dependencies and code across breaking changes.
@@ -0,0 +1,19 @@
---
title: 'Soo..what is Nx?'
videoUrl: 'https://youtu.be/-_4WMl-Fn0w'
duration: '9:28'
---
This video gives you a birds-eye view of Nx in ~10 minutes. It covers topics such as:
- What is Nx
- Nx Architecture
- Add Nx to an arbitrary project
- Why would adding Nx be useful?
- Nx in a PNPM monorepo
- Why use Nx Plugins
- Setting up a new Nx Integrated Monorepo
- Abstracting low-level configs
- Automated Code Updates
Read more [in our docs](/getting-started/why-nx)
@@ -0,0 +1,14 @@
---
title: 'Run Tasks with Nx'
videoUrl: 'https://youtu.be/aEdfYiA5U34'
duration: '4:19'
---
Learn how Nx provides a powerful task runner that allows you to:
- easily run multiple targets for multiple projects in parallel
- define task pipelines to run tasks in the correct order
- only run tasks for projects affected by a given change
- speed up task execution with caching
Read more [in our docs](/features/run-tasks)
@@ -0,0 +1,12 @@
---
title: 'Cache Task Results'
videoUrl: 'https://youtu.be/o-6jb78uuP0'
duration: '8:50'
---
Learn how Nx's sophisticated caching system ensures code is never rebuilt twice. This:
- drastically speeds up your task execution times while developing locally and in CI
- saves you money on CI/CD costs by reducing the number of tasks that need to be executed
Read more [in our docs](/features/cache-task-results)
@@ -0,0 +1,13 @@
---
title: 'Generate Code'
videoUrl: 'https://youtu.be/hSM6MgWOYr8'
duration: '4:11'
---
Learn how Nx's code generators help boost your productivity by:
- Allowing you to scaffold new projects or augment existing projects with new features
- Automating repetitive tasks in your development workflow
- Ensuring your code is consistent and follows best practices
Read more [in our docs](/features/generate-code)
@@ -0,0 +1,13 @@
---
title: 'Automate Updating Dependencies'
videoUrl: 'https://youtu.be/A0FjwsTlZ8A'
duration: '4:45'
---
Learn how Nx migrate functionality helps you:
- automatically update your package.json dependencies
- migrate your configuration files (e.g. Jest, ESLint, Nx config)
- adjust your source code to match the new versions of packages
Read more [in our docs](/features/automate-updating-dependencies)
+17
View File
@@ -0,0 +1,17 @@
---
title: 'From PNPM Workspaces to Distributed CI'
description: 'Learn how to transform a PNPM workspace monorepo into a high-performance distributed CI setup using Nx.'
authors: [Juri Strumpflohner]
repository: 'https://github.com/nrwl/nx-course-pnpm-nx'
---
In this course, we'll walk through a step-by-step guide using the Tasker application as our example. Tasker is a task management app built with Next.js, structured as a PNPM workspace monorepo. The monorepo contains the Next.js application which is modularized into packages that handle data access via Prisma to a local DB, UI components, and more.
Throughout the course, we'll take incremental steps to enhance the monorepo:
1. Adding Nx
2. Configuring and fine-tuning local caching
3. Defining task pipelines to ensure correct task execution order
4. Optimizing CI configuration with remote caching
5. Adjusting the current CI configuration to enable task distribution
6. Splitting and parallelizing Playwright e2e tests to reduce execution time from 20 minutes to 9 minutes
Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

@@ -0,0 +1,16 @@
---
title: 'Course Intro'
videoUrl: 'https://youtu.be/VJ1v5dktwwI'
duration: '1:01'
---
In this course, we'll walk through a step-by-step guide using the Tasker application as our example. Tasker is a task management app built with Next.js, structured as a PNPM workspace monorepo. The monorepo contains the Next.js application which is modularized into packages that handle data access via Prisma to a local DB, UI components, and more.
Throughout the course, we'll take incremental steps to enhance the monorepo:
1. Adding Nx
2. Configuring and fine-tuning local caching
3. Defining task pipelines to ensure correct task execution order
4. Optimizing CI configuration with remote caching
5. Implementing distribution across machines
6. Optimizing Playwright e2e tests to reduce execution time from 20 minutes to 9 minutes
@@ -0,0 +1,18 @@
---
title: 'Initialize Nx in Your Project with nx init'
videoUrl: 'https://youtu.be/3hW53b1IJ84'
duration: '3:42'
---
In this lesson, we'll explore how to add Nx to our existing PNPM workspace. You can either add just the `nx` package to your `package.json` and then create a `nx.json` [configuration file](/reference/nx-json), or simply run:
```shell
nx init
```
This process will analyze your repository and ask you a couple of questions to properly set up Nx while maintaining your existing PNPM workspace structure.
## Relevant Links
- [Adopting Nx](/recipes/adopting-nx)
- [Import an Existing Project into an Nx Workspace](/recipes/adopting-nx/import-project)
@@ -0,0 +1,23 @@
---
title: 'Run and Manage Tasks Efficiently Using Nx'
videoUrl: 'https://youtu.be/CJLRkzRrcjg'
duration: '1:56'
---
In this lesson, you'll learn how to use Nx to run your PNPM workspace's `package.json` scripts. So rather than running:
```shell
pnpm --filter @tasker/web build
```
you would run:
```shell
pnpm nx build @tasker/web
```
We'll cover the syntax for running both single tasks and multiple tasks, helping you understand how to leverage Nx's task execution capabilities.
## Relevant Links
- [Run Tasks with Nx](/features/run-tasks)
@@ -0,0 +1,13 @@
---
title: 'Configure Cache Outputs to Handle the .next Folder'
videoUrl: 'https://youtu.be/t8lOa__TD7o'
duration: '2:07'
---
By default Nx captures common folders like `dist` or `build` and automatically restores them from the local cache. However, it doesn't capture the `.next` folder by default.
In this lesson, you'll learn how to fine-tune local caching to ensure proper handling of the `.next` folder. We'll configure the cache outputs to make sure the Next.js build artifacts are properly restored from cache when needed.
## Relevant Links
- [Cache Task Results](/features/cache-task-results)
@@ -0,0 +1,28 @@
---
title: 'Create a Task Pipeline to Build Your Next app Before Serving it'
videoUrl: 'https://youtu.be/_U4hu6SuBaY'
duration: '3:07'
---
All Next.js projects usually come with these `package.json` scripts:
```json {% fileName="package.json" %}
{
...
"scripts": {
...
"build": "next build",
"start": "next start"
}
}
```
Running `next start` will only work if the `.next` folder is present in the project's root. This folder is created when running `next build`.
This is a very simple use case of a [task pipeline](/concepts/task-pipeline-configuration), which defines dependencies among tasks.
In this lesson we're going to create a simple task pipeline such that whenever you run `next start`, Nx will automatically run `next build` (or restore it from the cache).
## Relevant Links
- [Defining a Task Pipeline](/recipes/running-tasks/defining-task-pipeline)
@@ -0,0 +1,27 @@
---
title: 'Link an e2e Project with Its Web App Through Implicit Dependencies'
videoUrl: 'https://youtu.be/-iUHY27qUfE'
duration: '2:38'
---
One of the main capabilities of Nx is that it builds a project graph behind the scenes which it uses optimize how it runs your tasks. You can visualize the graph using:
```shell
pnpm nx graph
```
{% callout type="info" title="Install Nx Console" %}
You can also install **Nx Console** which is an extension for VSCode and IntelliJ that enhances the DX when working with Nx monorepos among which there's also the ability to visualize the project graph right in your editor window. Read more [about it here](/getting-started/editor-setup).
{% /callout %}
While most of the relationships are discovered by Nx automatically via `package.json` dependencies or JS/TypeScript imports, some cannot be detected. E2E projects such as the Playwright project in our workspace doesn't directly depend on our Next.js application. There is a dependency at runtime though, because Playwright needs to serve our Next application in order to be ablet to run its e2e tests.
![Implicit dependencies](/courses/pnpm-nx-next/images/implicit-dependencies.avif)
In this lesson, you'll learn how to define such dependencies using the `implicitDependencies` property.
## Relevant Links
- [Project configuration: implicitDependencies](/reference/project-configuration#implicitdependencies)
@@ -0,0 +1,13 @@
---
title: 'Connect Your Workspace to Nx Cloud'
videoUrl: 'https://youtu.be/8mqHXYIl_qI'
duration: '4:00'
---
Nx powers the “Smart Monorepo,” while Nx Cloud brings “Fast CI” into the mix. Designed to extend Nxs efficiency into the CI pipeline, Nx Cloud ensures that even large monorepos stay fast and optimized in CI.
In this lesson, well take the Tasker monorepo, push it to GitHub, set up an Nx Cloud workspace, and link it with your GitHub repository. By the end, your Nx workspace will be fully connected to Nx Cloud, ready to leverage its remote caching and distributed CI capabilities.
## Relevant Links
- [Connect to Nx Cloud](/ci/intro/connect-to-nx-cloud)
@@ -0,0 +1,20 @@
---
title: 'Use Nx Commands on CI'
videoUrl: 'https://youtu.be/ywlilx9-jNk'
duration: '4:43'
---
The Tasker project already uses a CI script on GitHub Actions, but in this lesson, well enhance it by replacing the existing `pnpm --filter` commands with optimized Nx commands for a more efficient CI pipeline.
Well cover how to scaffold a new CI configuration with:
```shell
pnpm nx g ci-workflow
```
Well also take a quick detour to discuss `namedInputs` in `nx.json`, ensuring the cache invalidates appropriately whenever the CI config is updated.
## Relevant Links
- [Run Only Tasks Affected by a PR](/ci/features/affected)
- [Tutorial: Github Actions with Nx](/ci/intro/tutorials/github-actions#create-a-ci-workflow)
@@ -0,0 +1,13 @@
---
title: 'Enable Read/Write Access to your Nx Remote Cache from CI'
videoUrl: 'https://youtu.be/vBokLJ_F8qs'
duration: '1:45'
---
Nx Cloud comes with powerful built-in [remote caching capabilities](/ci/features/remote-cache). Security and access control for such a cache is crucial, which is why Nx Cloud provides [various controls for managing read and write access to the remote cache](/ci/recipes/security/access-tokens).
In this lesson, we'll create an access token in our Nx Cloud workspace configuration to enable read/write access to our Github actions.
## Relevant Links
- [Nx CLI and CI Access Tokens](/ci/recipes/security/access-tokens)
@@ -0,0 +1,15 @@
---
title: 'Debug Remote Cache misses with Nx Cloud'
videoUrl: 'https://youtu.be/zJmhW1iIxpc'
duration: '0:53'
---
Understanding what causes remote cache misses versus cache hits is crucial for optimization.
![Nx Cloud UI to compare cache misses](/courses/pnpm-nx-next/images/nx-cloud-compare-cache-miss.avif)
In this lesson, we'll explore how Nx Cloud enables you to compare runs and identify what changes led to cache misses.
## Relevant Links
- [Troubleshoot cache misses](/troubleshooting/troubleshoot-cache-misses)
@@ -0,0 +1,23 @@
---
title: 'Enable Remote Caching for your Developer Machine with Nx Login'
videoUrl: 'https://youtu.be/vX-wgI1zlao'
duration: '1:38'
---
Do you want to allow your developers working on the Tasker monorepo
- to benefit from remote cache results (read-only access)
- to also contribute to the remote cache (read/write access)
It really depends on your use case. Nx Cloud uses Personal Access Tokens (PAT) to give you a fine-grained control mechanism how local workspaces should access the remote cache.
In this lesson, we'll dive into how to configure your Personal Access Token permissions on Nx Cloud and how developers can authenticate with the Nx Cloud workspace using:
```shell
pnpm nx login
```
## Relevant Links
- [Nx Cloud and Personal Access Tokens](/ci/recipes/security/personal-access-tokens)
- [Blog: Better security with Personal Access Tokens](/blog/personal-access-tokens)
@@ -0,0 +1,19 @@
---
title: 'Speed Up CI by Running Tasks in Parallel on Different Machines'
videoUrl: 'https://youtu.be/lO_p4tA6IZI'
duration: '2:08'
---
While remote caching is powerful, it may not be enough when core packages change frequently, invalidating the cache for large portions of your workspace.
Nx Cloud comes with a built-in feature called [Nx Agents](/ci/features/distribute-task-execution) that allows to automatically distribute tasks across multiple machines.
In this lesson we're going to update the existing CI configuration to enable Nx Agents. Which mostly can be done by adding the following line:
```plaintext
nx-cloud start-ci-run --distribute-on="5 linux-medium-js"
```
## Relevant Links
- [Distribute Task Execution](/ci/features/distribute-task-execution)
@@ -0,0 +1,15 @@
---
title: 'Run Playwright E2E Tests Faster by Parallelizing Them on CI'
videoUrl: 'https://youtu.be/42XnmzxEXM8'
duration: '5:47'
---
Running e2e tests on CI can be quite a painful experience. You want them to run on each PR to get immediate feedback, but then you don't want to wait for 30 minutes.
In this lesson, we'll optimize the existing Playwright end-to-end tests that currently take up to 20 minutes on CI. We'll leverage the Nx Playwright plugin to automatically split the Playwright tests into individual runs per test, allowing for optimal distribution across Nx agents and significantly improving CI execution time.
![](/courses/pnpm-nx-next/images/e2e-splitting-anim.gif)
## Relevant Links
- [Automatically Split E2E Tasks](/ci/features/split-e2e-tasks)
@@ -0,0 +1,7 @@
---
title: 'Course Outro'
videoUrl: 'https://youtu.be/a_pfLrvf88E'
duration: '0:39'
---
Thank you for completing this course on optimizing your PNPM workspace with Nx. You've learned how to implement and configure Nx, set up efficient caching, optimize CI processes, and improve e2e test execution times.
+78 -1
View File
@@ -1,4 +1,27 @@
[
{
"description": "A Nx Powerpack plugin which provides a Nx cache which can be self hosted on Azure Blob Storage.",
"documents": [
{
"id": "overview",
"name": "Overview",
"description": "A Nx Powerpack plugin which provides a Nx cache which can be self hosted on Azure Blob Storage.",
"file": "external-generated/packages/powerpack-azure-cache/documents/overview",
"itemList": [],
"isExternal": false,
"path": "powerpack-azure-cache/documents/overview",
"tags": [],
"originalFilePath": "shared/packages/powerpack-azure-cache/powerpack-azure-cache-plugin"
}
],
"executors": [],
"generators": [],
"githubRoot": "https://github.com/nrwl/nx/blob/master",
"name": "powerpack-azure-cache",
"packageName": "@nx/powerpack-azure-cache",
"root": "/libs/nx-packages/powerpack-azure-cache",
"source": "/libs/nx-packages/powerpack-azure-cache/src"
},
{
"description": "A Nx Powerpack plugin which allows users to write and apply rules for your entire workspace that help with consistency, maintainability, reliability and security.",
"documents": [
@@ -14,7 +37,17 @@
"originalFilePath": "shared/packages/powerpack-conformance/powerpack-conformance-plugin"
}
],
"executors": [],
"executors": [
{
"description": "Compile and bundle one or more Nx Conformance Rules",
"file": "external-generated/packages/powerpack-conformance/executors/bundle-rules.json",
"hidden": false,
"name": "bundle-rules",
"originalFilePath": "/libs/nx-packages/powerpack-conformance/src/executors/bundle-rules/schema.json",
"path": "powerpack-conformance/executors/bundle-rules",
"type": "executor"
}
],
"generators": [],
"githubRoot": "https://github.com/nrwl/nx/blob/master",
"name": "powerpack-conformance",
@@ -22,6 +55,50 @@
"root": "/libs/nx-packages/powerpack-conformance",
"source": "/libs/nx-packages/powerpack-conformance/src"
},
{
"description": "A Nx Powerpack plugin which is specific to Nx Enterprise Cloud workspaces.",
"documents": [],
"executors": [],
"generators": [
{
"description": "Initialize Nx Powerpack Enterprise Cloud config",
"file": "external-generated/packages/powerpack-enterprise-cloud/generators/init.json",
"hidden": false,
"name": "init",
"originalFilePath": "/libs/nx-packages/powerpack-enterprise-cloud/src/generators/init/schema.json",
"path": "powerpack-enterprise-cloud/generators/init",
"type": "generator"
}
],
"githubRoot": "https://github.com/nrwl/nx/blob/master",
"name": "powerpack-enterprise-cloud",
"packageName": "@nx/powerpack-enterprise-cloud",
"root": "/libs/nx-packages/powerpack-enterprise-cloud",
"source": "/libs/nx-packages/powerpack-enterprise-cloud/src"
},
{
"description": "A Nx Powerpack plugin which provides a Nx cache which can be self hosted on Google Cloud Storage.",
"documents": [
{
"id": "overview",
"name": "Overview",
"description": "A Nx Powerpack plugin which provides a Nx cache which can be self hosted on Google Cloud Storage.",
"file": "external-generated/packages/powerpack-gcs-cache/documents/overview",
"itemList": [],
"isExternal": false,
"path": "powerpack-gcs-cache/documents/overview",
"tags": [],
"originalFilePath": "shared/packages/powerpack-gcs-cache/powerpack-gcs-cache-plugin"
}
],
"executors": [],
"generators": [],
"githubRoot": "https://github.com/nrwl/nx/blob/master",
"name": "powerpack-gcs-cache",
"packageName": "@nx/powerpack-gcs-cache",
"root": "/libs/nx-packages/powerpack-gcs-cache",
"source": "/libs/nx-packages/powerpack-gcs-cache/src"
},
{
"description": "Package to provide the ability to activate and read licenses for Nx Powerpack.",
"documents": [],
@@ -0,0 +1,83 @@
---
title: Overview of the Nx powerpack-azure-cache Plugin
description: The powerpack-azure-cache Nx plugin enables you to use Azure Storage to host your remote cache instead of Nx Cloud
---
The `@nx/powerpack-azure-cache` plugin enables you to use [Azure Storage](https://azure.microsoft.com/en-us/products/storage/blobs) instead of Nx Cloud to host your remote cache.
This plugin will enable the remote cache for your Nx workspace, but does not provide any of the other features of Nx Cloud. If you want to leverage [distributed task execution](/ci/features/distribute-task-execution), [re-running flaky tasks](/ci/features/flaky-tasks) or [automatically splitting tasks](/ci/features/split-e2e-tasks), you'll need to [connect to Nx Cloud](/ci/intro/connect-to-nx-cloud) and use [Nx Replay](/ci/features/remote-cache) instead.
{% callout type="warning" title="Potential Cache Poisoning" %}
Using your own Azure Storage account to host the remote cache opens you up to the possibility of [cache poisoning](/troubleshooting/unknown-local-cache). To avoid this, use [Nx Replay](/ci/features/remote-cache).
{% /callout %}
{% callout title="This plugin requires an active Nx Powerpack license" %}
In order to use `@nx/powerpack-azure-cache`, you need to have an active Powerpack license. If you don't have a license or it has expired, your cache will no longer be shared and each machine will use its local cache.
{% /callout %}
## Set Up @nx/powerpack-azure-cache
### 1. Install the Package
1. [Activate Powerpack](/nx-enterprise/activate-powerpack) if you haven't already
2. Install the package
```shell
nx add @nx/powerpack-azure-cache
```
### 2. Authenticate with Azure
There are several ways to [authenticate with Azure Storage](https://github.com/Azure/login#login-with-openid-connect-oidc-recommended), but the method recommended by Azure is to use OpenID Connect, like this:
```yaml {% fileName=".github/workflows/ci.yml" %}
name: CI
...
permissions:
id-token: write
...
jobs:
main:
env:
NX_POWERPACK_LICENSE: ${{ secrets.NX_POWERPACK_LICENSE }}
runs-on: ubuntu-latest
steps:
...
- name: Azure login
uses: azure/login@v2
with:
client-id: ${{ secrets.AZURE_CLIENT_ID }}
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
...
- run: pnpm exec nx affected -t lint test build
```
You need to set the `AZURE_CLIENT_ID`, `AZURE_TENANT_ID` and `AZURE_SUBSCRIPTION_ID` secrets as defined in the [Azure documentation](https://github.com/Azure/login#login-with-openid-connect-oidc-recommended).
Note: Any authentication method that [sets up the `DefaultAzureCredentials`](https://learn.microsoft.com/en-us/azure/developer/javascript/sdk/credential-chains#use-defaultazurecredential-for-flexibility) will enable the plugin to work.
{% callout type="note" title="Custom Azure Endpoint" %}
If you are using a custom Azure endpoint, you will need to authenticate by [setting the `AZURE_STORAGE_CONNECTION_STRING` environment variable](https://learn.microsoft.com/en-us/azure/storage/common/storage-configure-connection-string). The `@nx/powerpack-azure-cache` plugin will detect the environment variable and automatically use it to connect to Azure.
{% /callout %}
### 3. Configure the Nx Cache to Use Azure Storage
Finally, you need to configure your Nx cache in the `nx.json` file. The `container` that you specify needs to already exist - Nx doesn't create it for you.
```jsonc {% fileName="nx.json" %}
{
"azure": {
"container": "mycontainer",
"accountName": "myaccount"
}
}
```
| **Property** | **Description** |
| --------------- | -------------------------------- |
| **container** | The name of the container to use |
| **accountName** | The name of blob storage account |
@@ -18,7 +18,7 @@ In order to use `@nx/powerpack-conformance`, you need to have an active Powerpac
## Set Up @nx/powerpack-conformance
1. [Activate Powerpack](/recipes/installation/activate-powerpack) if you haven't already
1. [Activate Powerpack](/nx-enterprise/activate-powerpack) if you haven't already
2. Install the package
```shell
@@ -189,6 +189,7 @@ import { createConformanceRule } from '@nx/powerpack-conformance';
const rule = createConformanceRule({
name: 'local-conformance-rule-example',
description: 'The description of the rule',
category: 'security', // `consistency`, `maintainability`, `reliability` or `security`
reporter: 'project-reporter', // `project-reporter` or `project-files-reporter`
implementation: async (context) => {
@@ -0,0 +1,28 @@
{
"name": "bundle-rule",
"implementation": "/libs/nx-packages/powerpack-conformance/src/executors/bundle-rule/executor.ts",
"schema": {
"$schema": "https://json-schema.org/schema",
"version": 2,
"title": "BundleNxConformanceRule",
"description": "Compile and bundle an Nx Conformance Rule",
"type": "object",
"properties": {
"main": {
"type": "string",
"description": "The entrypoint file for the rule"
},
"outputPath": {
"type": "string",
"description": "The output path for the bundled rule"
}
},
"required": ["main", "outputPath"],
"presets": []
},
"description": "Compile and bundle an Nx Conformance Rule",
"aliases": [],
"hidden": false,
"path": "/libs/nx-packages/powerpack-conformance/src/executors/bundle-rule/schema.json",
"type": "executor"
}
@@ -0,0 +1,24 @@
{
"name": "bundle-rules",
"implementation": "/libs/nx-packages/powerpack-conformance/src/executors/bundle-rules/executor.ts",
"schema": {
"$schema": "https://json-schema.org/schema",
"version": 2,
"title": "BundleNxConformanceRules",
"description": "Compile and bundle one or more Nx Conformance Rules",
"type": "object",
"properties": {
"outputPath": {
"type": "string",
"description": "The output path for the bundled rules to be written to"
}
},
"required": ["outputPath"],
"presets": []
},
"description": "Compile and bundle one or more Nx Conformance Rules",
"aliases": [],
"hidden": false,
"path": "/libs/nx-packages/powerpack-conformance/src/executors/bundle-rules/schema.json",
"type": "executor"
}
@@ -0,0 +1,21 @@
{
"name": "init",
"factory": "./src/generators/init/init",
"schema": {
"$schema": "http://json-schema.org/schema",
"id": "NxPowerpackEnterpriseCloudInit",
"title": "Add Powerpack Enterprise Cloud plugin to the workspace",
"type": "object",
"cli": "nx",
"properties": {},
"additionalProperties": false,
"required": [],
"presets": []
},
"description": "Initialize Nx Powerpack Enterprise Cloud config",
"implementation": "/libs/nx-packages/powerpack-enterprise-cloud/src/generators/init/init.ts",
"aliases": [],
"hidden": false,
"path": "/libs/nx-packages/powerpack-enterprise-cloud/src/generators/init/schema.json",
"type": "generator"
}
@@ -0,0 +1,82 @@
---
title: Overview of the Nx powerpack-gcs-cache Plugin
description: The powerpack-gcs-cache Nx plugin enables you to use Google Cloud Storage to host your remote cache instead of Nx Cloud
---
The `@nx/powerpack-gcs-cache` plugin enables you to use [Google Cloud Storage](https://cloud.google.com/storage) instead of Nx Cloud to host your remote cache.
This plugin will enable the remote cache for your Nx workspace, but does not provide any of the other features of Nx Cloud. If you want to leverage [distributed task execution](/ci/features/distribute-task-execution), [re-running flaky tasks](/ci/features/flaky-tasks) or [automatically splitting tasks](/ci/features/split-e2e-tasks), you'll need to [connect to Nx Cloud](/ci/intro/connect-to-nx-cloud) and use [Nx Replay](/ci/features/remote-cache) instead.
{% callout type="warning" title="Potential Cache Poisoning" %}
Using your own Google Cloud Storage account to host the remote cache opens you up to the possibility of [cache poisoning](/troubleshooting/unknown-local-cache). To avoid this, use [Nx Replay](/ci/features/remote-cache).
{% /callout %}
{% callout title="This plugin requires an active Nx Powerpack license" %}
In order to use `@nx/powerpack-gcs-cache`, you need to have an active Powerpack license. If you don't have a license or it has expired, your cache will no longer be shared and each machine will use its local cache.
{% /callout %}
## Set Up @nx/powerpack-gcs-cache
### 1. Install the Package
1. [Activate Powerpack](/nx-enterprise/activate-powerpack) if you haven't already
2. Install the package
```shell
nx add @nx/powerpack-gcs-cache
```
### 2. Authenticate with Google Cloud
There are several ways to [authenticate with Google Cloud Storage](https://github.com/google-github-actions/setup-gcloud#authorization), but the method recommended by Google is to use Workload Identity Federation, like this:
```yaml {% fileName=".github/workflows/ci.yml" %}
name: CI
...
permissions:
id-token: write
...
jobs:
main:
env:
NX_POWERPACK_LICENSE: ${{ secrets.NX_POWERPACK_LICENSE }}
runs-on: ubuntu-latest
steps:
...
- id: 'auth'
name: 'Authenticate to Google Cloud'
uses: 'google-github-actions/auth@v2'
with:
token_format: 'access_token'
workload_identity_provider: 'projects/123456789/locations/global/workloadIdentityPools/my-pool/providers/my-provider'
service_account: 'my-service-account@my-project.iam.gserviceaccount.com'
- name: 'Set up Cloud SDK'
uses: 'google-github-actions/setup-gcloud@v2'
with:
version: '>= 363.0.0'
...
- run: pnpm exec nx affected -t lint test build
```
Note: Any authentication method that [sets up the Application Default Credentials](https://cloud.google.com/docs/authentication/application-default-credentials) will enable the plugin to work.
### 3. Configure the Nx Cache to Use Google Cloud Storage
Finally, you need to configure your Nx cache in the `nx.json` file. The `bucket` that you specify needs to already exist - Nx doesn't create it for you.
```jsonc {% fileName="nx.json" %}
{
"gcs": {
"bucket": "my-bucket"
}
}
```
| **Property** | **Description** |
| ------------ | ----------------------------- |
| **bucket** | The name of the bucket to use |
@@ -13,7 +13,7 @@ In order to use `@nx/powerpack-owners`, you need to have an active Powerpack lic
## Set Up @nx/powerpack-owners
1. [Activate Powerpack](/recipes/installation/activate-powerpack) if you haven't already
1. [Activate Powerpack](/nx-enterprise/activate-powerpack) if you haven't already
2. Install the package
```shell
@@ -19,7 +19,7 @@ In order to use `@nx/powerpack-s3-cache`, you need to have an active Powerpack l
### 1. Install the Package
1. [Activate Powerpack](/recipes/installation/activate-powerpack) if you haven't already
1. [Activate Powerpack](/nx-enterprise/activate-powerpack) if you haven't already
2. Install the package
```shell
@@ -57,11 +57,10 @@ permissions:
id-token: write
...
env:
NX_DB_CACHE: true
jobs:
main:
env:
NX_POWERPACK_LICENSE: ${{ secrets.NX_POWERPACK_LICENSE }}
runs-on: ubuntu-latest
steps:
...
@@ -123,5 +122,33 @@ Regardless of how you manage your AWS authentication, you need to configure your
| **Property** | **Description** |
| ----------------- | --------------------------------------------------------------------------------- |
| **region** | The id of the AWS region to use |
| **bucket** | The name of the AWS bucket to use |
| **bucket** | The name of the S3 bucket to use |
| **encryptionKey** | Nx encryption key used to encrypt and decrypt artifacts from the cache (optional) |
#### S3 Compatible Providers
To use `@nx/powerpack-s3-cache` with S3 compatible providers ([MinIO](https://min.io/product/s3-compatibility), [LocalStack](https://www.localstack.cloud), [DigitalOcean Spaces](https://www.digitalocean.com/products/spaces), [Cloudflare](https://www.cloudflare.com/developer-platform/solutions/s3-compatible-object-storage), etc..), `endpoint` will need to be provided. Some providers also need to have `forcePathStyle` set to true in the configuration.
Below is an example on how to connect to MinIO:
```jsonc {% fileName="nx.json" %}
{
"s3": {
"region": "us-east-1",
"bucket": "my-bucket",
"endpoint": "https://play.min.io",
"forcePathStyle": true,
"accessKeyId": "abc1234",
"secretAccessKey": "4321cba"
}
}
```
| **Property** | **Description** |
| ------------------- | --------------------------------------------------------------------------------------------------------- |
| **region** | The id of the S3 compatible storage region to use |
| **bucket** | The name of the S3 compatible storage bucket to use |
| **forcePathStyle** | Changes the way artifacts are uploaded. Usually used for S3 compatible providers (MinIO, LocalStack, etc) |
| **endpoint** | The custom endpoint to upload artifacts to. If endpoint is not defined, the default AWS endpoint is used |
| **accessKeyId** | AWS Access Key ID (optional if `AWS_ACCESS_KEY_ID` is set in the environment) |
| **secretAccessKey** | AWS secret access key (optional if `AWS_SECRET_ACCESS_KEY` is set in the environment) |
@@ -9,16 +9,26 @@
"properties": {
"region": {
"type": "string",
"description": "The AWS region the bucket is located in",
"x-prompt": "Which AWS region is the bucket located in?"
"description": "The AWS region the bucket is located in"
},
"accessKeyId": {
"type": "string",
"description": "The AWS Access Key ID to use to access the S3 Bucket, alternatively set the AWS_ACCESS_KEY_ID environment variable"
},
"secretAccessKey": {
"type": "string",
"description": "The AWS Secret Access Key to use to access the S3 Bucket, alternatively set the AWS_SECRET_ACCESS_KEY environment variable"
},
"bucket": {
"type": "string",
"description": "The the name of the S3 Bucket to store the Nx Cache in",
"x-prompt": "What is the name of the S3 Bucket to store the Nx Cache in?"
"description": "The the name of the S3 Bucket to store the Nx Cache in"
},
"forcePathStyle": {
"type": "boolean",
"description": "Set to true to use path style URLs for S3 objects"
}
},
"required": ["region", "bucket"],
"required": [],
"presets": []
},
"description": "Initialize the S3 Cache",
@@ -19,7 +19,7 @@ In order to use `@nx/powerpack-shared-fs-cache`, you need to have an active Powe
### 1. Install the Package
1. [Activate Powerpack](/recipes/installation/activate-powerpack) if you haven't already
1. [Activate Powerpack](/nx-enterprise/activate-powerpack) if you haven't already
2. Install the package
```shell
@@ -28,6 +28,7 @@ Install `create-nx-workspace` globally to invoke the command directly, or use `n
| `--defaultBase` | string | Default base to use for new projects. (Default: `main`) |
| `--docker` | boolean | Generate a Dockerfile for the Node API. |
| `--e2eTestRunner` | `playwright`, `cypress`, `none` | Test runner to use for end to end (E2E) tests. |
| `--formatter` | string | Code formatter to use. |
| `--framework` | string | Framework option to be used with certain stacks. |
| `--help` | boolean | Show help. |
| `--interactive` | boolean | Enable interactive mode with presets. (Default: `true`) |
@@ -45,6 +46,7 @@ Install `create-nx-workspace` globally to invoke the command directly, or use `n
| `--style` | string | Stylesheet type to be used with certain stacks. |
| `--useGitHub` | boolean | Will you be using GitHub as your git hosting provider? (Default: `false`) |
| `--version` | boolean | Show version number. |
| `--workspaces` | boolean | Use package manager workspaces. (Default: `false`) |
| `--workspaceType` | `integrated`, `package-based`, `standalone` | The type of workspace to create. |
## Presets
+2 -2
View File
@@ -10,7 +10,7 @@ description: 'Executes any command as if it was a target on the project'
## Usage
In package.json, adding a script with `nx exec` will run the command as if it is a target that project:
In package.json, adding a script with `nx exec` will run the command as if it is a target on that project:
```json
{
@@ -37,7 +37,7 @@ Install `nx` globally to invoke the command directly using `nx`, or use `npx nx`
## Examples
You can use `npm run <command>` for a project and leverage the caching by wrap your command with `nx exec`.
You can use `npm run <command>` for a project and leverage the caching by wrapping your command with `nx exec`.
For example, you can run `npm run docs` as a Nx target for `myorg`:
+267 -220
View File
@@ -600,7 +600,7 @@
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/security/personal-access-tokens",
"tags": []
"tags": ["login"]
},
{
"id": "encryption",
@@ -682,54 +682,32 @@
"file": "",
"itemList": [
{
"id": "on-premise",
"name": "On-Premise",
"id": "single-tenant",
"name": "Single Tenant",
"description": "Manage an on-premise installation of Nx Cloud",
"mediaImage": "",
"file": "",
"itemList": [
{
"id": "on-premise",
"name": "Set up Nx Cloud On-Premise",
"description": "Set up Nx Cloud on machines that you control",
"mediaImage": "",
"file": "nx-cloud/features/nx-enterprise-on-prem",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/enterprise/on-premise/on-premise",
"tags": ["on-premise"]
},
{
"id": "auth-single-admin",
"name": "Authenticate with a Single Admin",
"id": "overview",
"name": "Single Tenant Nx Cloud Hosting",
"description": "",
"mediaImage": "",
"file": "nx-cloud/enterprise/on-premise/auth-single-admin",
"file": "nx-cloud/enterprise/single-tenant/overview",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/enterprise/on-premise/auth-single-admin",
"tags": []
"path": "/ci/recipes/enterprise/single-tenant/overview",
"tags": ["single-tenant"]
},
{
"id": "auth-github",
"name": "Authenticate with GitHub",
"description": "",
"mediaImage": "",
"file": "nx-cloud/enterprise/on-premise/auth-github",
"file": "nx-cloud/enterprise/single-tenant/auth-github",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/enterprise/on-premise/auth-github",
"tags": []
},
{
"id": "ami-setup",
"name": "On-Prem VM Setup",
"description": "",
"mediaImage": "",
"file": "nx-cloud/enterprise/on-premise/ami-setup",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/enterprise/on-premise/ami-setup",
"path": "/ci/recipes/enterprise/single-tenant/auth-github",
"tags": []
},
{
@@ -737,10 +715,10 @@
"name": "Authenticate with GitLab",
"description": "",
"mediaImage": "",
"file": "nx-cloud/enterprise/on-premise/auth-gitlab",
"file": "nx-cloud/enterprise/single-tenant/auth-gitlab",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/enterprise/on-premise/auth-gitlab",
"path": "/ci/recipes/enterprise/single-tenant/auth-gitlab",
"tags": []
},
{
@@ -748,10 +726,10 @@
"name": "Authenticate with BitBucket",
"description": "",
"mediaImage": "",
"file": "nx-cloud/enterprise/on-premise/auth-bitbucket",
"file": "nx-cloud/enterprise/single-tenant/auth-bitbucket",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/enterprise/on-premise/auth-bitbucket",
"path": "/ci/recipes/enterprise/single-tenant/auth-bitbucket",
"tags": []
},
{
@@ -759,10 +737,10 @@
"name": "Authenticate with BitBucket Data Center",
"description": "",
"mediaImage": "",
"file": "nx-cloud/enterprise/on-premise/auth-bitbucket-data-center",
"file": "nx-cloud/enterprise/single-tenant/auth-bitbucket-data-center",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/enterprise/on-premise/auth-bitbucket-data-center",
"path": "/ci/recipes/enterprise/single-tenant/auth-bitbucket-data-center",
"tags": []
},
{
@@ -770,21 +748,10 @@
"name": "Authenticate via SAML",
"description": "",
"mediaImage": "",
"file": "nx-cloud/enterprise/on-premise/auth-saml",
"file": "nx-cloud/enterprise/single-tenant/auth-saml",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/enterprise/on-premise/auth-saml",
"tags": []
},
{
"id": "advanced-config",
"name": "Advanced Configuration",
"description": "",
"mediaImage": "",
"file": "nx-cloud/enterprise/on-premise/advanced-config",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/enterprise/on-premise/advanced-config",
"path": "/ci/recipes/enterprise/single-tenant/auth-saml",
"tags": []
},
{
@@ -792,15 +759,15 @@
"name": "Custom GitHub App",
"description": "",
"mediaImage": "",
"file": "nx-cloud/enterprise/on-premise/custom-github-app",
"file": "nx-cloud/enterprise/single-tenant/custom-github-app",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/enterprise/on-premise/custom-github-app",
"path": "/ci/recipes/enterprise/single-tenant/custom-github-app",
"tags": []
}
],
"isExternal": false,
"path": "/ci/recipes/enterprise/on-premise",
"path": "/ci/recipes/enterprise/single-tenant",
"tags": []
},
{
@@ -880,6 +847,40 @@
"isExternal": false,
"path": "/ci/recipes/enterprise/dte",
"tags": []
},
{
"id": "conformance",
"name": "Conformance",
"description": "Conformance features that are available to Nx Cloud Enterprise customers",
"mediaImage": "",
"file": "",
"itemList": [
{
"id": "configure-conformance-rules-in-nx-cloud",
"name": "Configure Conformance Rules in Nx Cloud",
"description": "",
"mediaImage": "",
"file": "nx-cloud/enterprise/conformance/configure-conformance-rules-in-nx-cloud",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/enterprise/conformance/configure-conformance-rules-in-nx-cloud",
"tags": ["conformance"]
},
{
"id": "publish-conformance-rules-to-nx-cloud",
"name": "Publish Conformance Rules to Nx Cloud",
"description": "",
"mediaImage": "",
"file": "nx-cloud/enterprise/conformance/publish-conformance-rules-to-nx-cloud",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/enterprise/conformance/publish-conformance-rules-to-nx-cloud",
"tags": ["conformance"]
}
],
"isExternal": false,
"path": "/ci/recipes/enterprise/conformance",
"tags": []
}
],
"isExternal": false,
@@ -914,6 +915,17 @@
"isExternal": false,
"path": "/ci/recipes/other/ci-deployment",
"tags": ["docker", "deploy"]
},
{
"id": "cipe-affected-project-graph",
"name": "Reduce the Number of Affected Projects in a CI Pipeline Execution",
"description": "",
"mediaImage": "",
"file": "nx-cloud/recipes/cipe-affected-project-graph",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/other/cipe-affected-project-graph",
"tags": []
}
],
"isExternal": false,
@@ -1107,7 +1119,7 @@
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/security/personal-access-tokens",
"tags": []
"tags": ["login"]
},
{
"id": "encryption",
@@ -1156,7 +1168,7 @@
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/security/personal-access-tokens",
"tags": []
"tags": ["login"]
},
"/ci/recipes/security/encryption": {
"id": "encryption",
@@ -1277,54 +1289,32 @@
"file": "",
"itemList": [
{
"id": "on-premise",
"name": "On-Premise",
"id": "single-tenant",
"name": "Single Tenant",
"description": "Manage an on-premise installation of Nx Cloud",
"mediaImage": "",
"file": "",
"itemList": [
{
"id": "on-premise",
"name": "Set up Nx Cloud On-Premise",
"description": "Set up Nx Cloud on machines that you control",
"mediaImage": "",
"file": "nx-cloud/features/nx-enterprise-on-prem",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/enterprise/on-premise/on-premise",
"tags": ["on-premise"]
},
{
"id": "auth-single-admin",
"name": "Authenticate with a Single Admin",
"id": "overview",
"name": "Single Tenant Nx Cloud Hosting",
"description": "",
"mediaImage": "",
"file": "nx-cloud/enterprise/on-premise/auth-single-admin",
"file": "nx-cloud/enterprise/single-tenant/overview",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/enterprise/on-premise/auth-single-admin",
"tags": []
"path": "/ci/recipes/enterprise/single-tenant/overview",
"tags": ["single-tenant"]
},
{
"id": "auth-github",
"name": "Authenticate with GitHub",
"description": "",
"mediaImage": "",
"file": "nx-cloud/enterprise/on-premise/auth-github",
"file": "nx-cloud/enterprise/single-tenant/auth-github",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/enterprise/on-premise/auth-github",
"tags": []
},
{
"id": "ami-setup",
"name": "On-Prem VM Setup",
"description": "",
"mediaImage": "",
"file": "nx-cloud/enterprise/on-premise/ami-setup",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/enterprise/on-premise/ami-setup",
"path": "/ci/recipes/enterprise/single-tenant/auth-github",
"tags": []
},
{
@@ -1332,10 +1322,10 @@
"name": "Authenticate with GitLab",
"description": "",
"mediaImage": "",
"file": "nx-cloud/enterprise/on-premise/auth-gitlab",
"file": "nx-cloud/enterprise/single-tenant/auth-gitlab",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/enterprise/on-premise/auth-gitlab",
"path": "/ci/recipes/enterprise/single-tenant/auth-gitlab",
"tags": []
},
{
@@ -1343,10 +1333,10 @@
"name": "Authenticate with BitBucket",
"description": "",
"mediaImage": "",
"file": "nx-cloud/enterprise/on-premise/auth-bitbucket",
"file": "nx-cloud/enterprise/single-tenant/auth-bitbucket",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/enterprise/on-premise/auth-bitbucket",
"path": "/ci/recipes/enterprise/single-tenant/auth-bitbucket",
"tags": []
},
{
@@ -1354,10 +1344,10 @@
"name": "Authenticate with BitBucket Data Center",
"description": "",
"mediaImage": "",
"file": "nx-cloud/enterprise/on-premise/auth-bitbucket-data-center",
"file": "nx-cloud/enterprise/single-tenant/auth-bitbucket-data-center",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/enterprise/on-premise/auth-bitbucket-data-center",
"path": "/ci/recipes/enterprise/single-tenant/auth-bitbucket-data-center",
"tags": []
},
{
@@ -1365,21 +1355,10 @@
"name": "Authenticate via SAML",
"description": "",
"mediaImage": "",
"file": "nx-cloud/enterprise/on-premise/auth-saml",
"file": "nx-cloud/enterprise/single-tenant/auth-saml",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/enterprise/on-premise/auth-saml",
"tags": []
},
{
"id": "advanced-config",
"name": "Advanced Configuration",
"description": "",
"mediaImage": "",
"file": "nx-cloud/enterprise/on-premise/advanced-config",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/enterprise/on-premise/advanced-config",
"path": "/ci/recipes/enterprise/single-tenant/auth-saml",
"tags": []
},
{
@@ -1387,15 +1366,15 @@
"name": "Custom GitHub App",
"description": "",
"mediaImage": "",
"file": "nx-cloud/enterprise/on-premise/custom-github-app",
"file": "nx-cloud/enterprise/single-tenant/custom-github-app",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/enterprise/on-premise/custom-github-app",
"path": "/ci/recipes/enterprise/single-tenant/custom-github-app",
"tags": []
}
],
"isExternal": false,
"path": "/ci/recipes/enterprise/on-premise",
"path": "/ci/recipes/enterprise/single-tenant",
"tags": []
},
{
@@ -1475,61 +1454,73 @@
"isExternal": false,
"path": "/ci/recipes/enterprise/dte",
"tags": []
},
{
"id": "conformance",
"name": "Conformance",
"description": "Conformance features that are available to Nx Cloud Enterprise customers",
"mediaImage": "",
"file": "",
"itemList": [
{
"id": "configure-conformance-rules-in-nx-cloud",
"name": "Configure Conformance Rules in Nx Cloud",
"description": "",
"mediaImage": "",
"file": "nx-cloud/enterprise/conformance/configure-conformance-rules-in-nx-cloud",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/enterprise/conformance/configure-conformance-rules-in-nx-cloud",
"tags": ["conformance"]
},
{
"id": "publish-conformance-rules-to-nx-cloud",
"name": "Publish Conformance Rules to Nx Cloud",
"description": "",
"mediaImage": "",
"file": "nx-cloud/enterprise/conformance/publish-conformance-rules-to-nx-cloud",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/enterprise/conformance/publish-conformance-rules-to-nx-cloud",
"tags": ["conformance"]
}
],
"isExternal": false,
"path": "/ci/recipes/enterprise/conformance",
"tags": []
}
],
"isExternal": false,
"path": "/ci/recipes/enterprise",
"tags": []
},
"/ci/recipes/enterprise/on-premise": {
"id": "on-premise",
"name": "On-Premise",
"/ci/recipes/enterprise/single-tenant": {
"id": "single-tenant",
"name": "Single Tenant",
"description": "Manage an on-premise installation of Nx Cloud",
"mediaImage": "",
"file": "",
"itemList": [
{
"id": "on-premise",
"name": "Set up Nx Cloud On-Premise",
"description": "Set up Nx Cloud on machines that you control",
"mediaImage": "",
"file": "nx-cloud/features/nx-enterprise-on-prem",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/enterprise/on-premise/on-premise",
"tags": ["on-premise"]
},
{
"id": "auth-single-admin",
"name": "Authenticate with a Single Admin",
"id": "overview",
"name": "Single Tenant Nx Cloud Hosting",
"description": "",
"mediaImage": "",
"file": "nx-cloud/enterprise/on-premise/auth-single-admin",
"file": "nx-cloud/enterprise/single-tenant/overview",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/enterprise/on-premise/auth-single-admin",
"tags": []
"path": "/ci/recipes/enterprise/single-tenant/overview",
"tags": ["single-tenant"]
},
{
"id": "auth-github",
"name": "Authenticate with GitHub",
"description": "",
"mediaImage": "",
"file": "nx-cloud/enterprise/on-premise/auth-github",
"file": "nx-cloud/enterprise/single-tenant/auth-github",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/enterprise/on-premise/auth-github",
"tags": []
},
{
"id": "ami-setup",
"name": "On-Prem VM Setup",
"description": "",
"mediaImage": "",
"file": "nx-cloud/enterprise/on-premise/ami-setup",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/enterprise/on-premise/ami-setup",
"path": "/ci/recipes/enterprise/single-tenant/auth-github",
"tags": []
},
{
@@ -1537,10 +1528,10 @@
"name": "Authenticate with GitLab",
"description": "",
"mediaImage": "",
"file": "nx-cloud/enterprise/on-premise/auth-gitlab",
"file": "nx-cloud/enterprise/single-tenant/auth-gitlab",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/enterprise/on-premise/auth-gitlab",
"path": "/ci/recipes/enterprise/single-tenant/auth-gitlab",
"tags": []
},
{
@@ -1548,10 +1539,10 @@
"name": "Authenticate with BitBucket",
"description": "",
"mediaImage": "",
"file": "nx-cloud/enterprise/on-premise/auth-bitbucket",
"file": "nx-cloud/enterprise/single-tenant/auth-bitbucket",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/enterprise/on-premise/auth-bitbucket",
"path": "/ci/recipes/enterprise/single-tenant/auth-bitbucket",
"tags": []
},
{
@@ -1559,10 +1550,10 @@
"name": "Authenticate with BitBucket Data Center",
"description": "",
"mediaImage": "",
"file": "nx-cloud/enterprise/on-premise/auth-bitbucket-data-center",
"file": "nx-cloud/enterprise/single-tenant/auth-bitbucket-data-center",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/enterprise/on-premise/auth-bitbucket-data-center",
"path": "/ci/recipes/enterprise/single-tenant/auth-bitbucket-data-center",
"tags": []
},
{
@@ -1570,21 +1561,10 @@
"name": "Authenticate via SAML",
"description": "",
"mediaImage": "",
"file": "nx-cloud/enterprise/on-premise/auth-saml",
"file": "nx-cloud/enterprise/single-tenant/auth-saml",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/enterprise/on-premise/auth-saml",
"tags": []
},
{
"id": "advanced-config",
"name": "Advanced Configuration",
"description": "",
"mediaImage": "",
"file": "nx-cloud/enterprise/on-premise/advanced-config",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/enterprise/on-premise/advanced-config",
"path": "/ci/recipes/enterprise/single-tenant/auth-saml",
"tags": []
},
{
@@ -1592,125 +1572,92 @@
"name": "Custom GitHub App",
"description": "",
"mediaImage": "",
"file": "nx-cloud/enterprise/on-premise/custom-github-app",
"file": "nx-cloud/enterprise/single-tenant/custom-github-app",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/enterprise/on-premise/custom-github-app",
"path": "/ci/recipes/enterprise/single-tenant/custom-github-app",
"tags": []
}
],
"isExternal": false,
"path": "/ci/recipes/enterprise/on-premise",
"path": "/ci/recipes/enterprise/single-tenant",
"tags": []
},
"/ci/recipes/enterprise/on-premise/on-premise": {
"id": "on-premise",
"name": "Set up Nx Cloud On-Premise",
"description": "Set up Nx Cloud on machines that you control",
"mediaImage": "",
"file": "nx-cloud/features/nx-enterprise-on-prem",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/enterprise/on-premise/on-premise",
"tags": ["on-premise"]
},
"/ci/recipes/enterprise/on-premise/auth-single-admin": {
"id": "auth-single-admin",
"name": "Authenticate with a Single Admin",
"/ci/recipes/enterprise/single-tenant/overview": {
"id": "overview",
"name": "Single Tenant Nx Cloud Hosting",
"description": "",
"mediaImage": "",
"file": "nx-cloud/enterprise/on-premise/auth-single-admin",
"file": "nx-cloud/enterprise/single-tenant/overview",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/enterprise/on-premise/auth-single-admin",
"tags": []
"path": "/ci/recipes/enterprise/single-tenant/overview",
"tags": ["single-tenant"]
},
"/ci/recipes/enterprise/on-premise/auth-github": {
"/ci/recipes/enterprise/single-tenant/auth-github": {
"id": "auth-github",
"name": "Authenticate with GitHub",
"description": "",
"mediaImage": "",
"file": "nx-cloud/enterprise/on-premise/auth-github",
"file": "nx-cloud/enterprise/single-tenant/auth-github",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/enterprise/on-premise/auth-github",
"path": "/ci/recipes/enterprise/single-tenant/auth-github",
"tags": []
},
"/ci/recipes/enterprise/on-premise/ami-setup": {
"id": "ami-setup",
"name": "On-Prem VM Setup",
"description": "",
"mediaImage": "",
"file": "nx-cloud/enterprise/on-premise/ami-setup",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/enterprise/on-premise/ami-setup",
"tags": []
},
"/ci/recipes/enterprise/on-premise/auth-gitlab": {
"/ci/recipes/enterprise/single-tenant/auth-gitlab": {
"id": "auth-gitlab",
"name": "Authenticate with GitLab",
"description": "",
"mediaImage": "",
"file": "nx-cloud/enterprise/on-premise/auth-gitlab",
"file": "nx-cloud/enterprise/single-tenant/auth-gitlab",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/enterprise/on-premise/auth-gitlab",
"path": "/ci/recipes/enterprise/single-tenant/auth-gitlab",
"tags": []
},
"/ci/recipes/enterprise/on-premise/auth-bitbucket": {
"/ci/recipes/enterprise/single-tenant/auth-bitbucket": {
"id": "auth-bitbucket",
"name": "Authenticate with BitBucket",
"description": "",
"mediaImage": "",
"file": "nx-cloud/enterprise/on-premise/auth-bitbucket",
"file": "nx-cloud/enterprise/single-tenant/auth-bitbucket",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/enterprise/on-premise/auth-bitbucket",
"path": "/ci/recipes/enterprise/single-tenant/auth-bitbucket",
"tags": []
},
"/ci/recipes/enterprise/on-premise/auth-bitbucket-data-center": {
"/ci/recipes/enterprise/single-tenant/auth-bitbucket-data-center": {
"id": "auth-bitbucket-data-center",
"name": "Authenticate with BitBucket Data Center",
"description": "",
"mediaImage": "",
"file": "nx-cloud/enterprise/on-premise/auth-bitbucket-data-center",
"file": "nx-cloud/enterprise/single-tenant/auth-bitbucket-data-center",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/enterprise/on-premise/auth-bitbucket-data-center",
"path": "/ci/recipes/enterprise/single-tenant/auth-bitbucket-data-center",
"tags": []
},
"/ci/recipes/enterprise/on-premise/auth-saml": {
"/ci/recipes/enterprise/single-tenant/auth-saml": {
"id": "auth-saml",
"name": "Authenticate via SAML",
"description": "",
"mediaImage": "",
"file": "nx-cloud/enterprise/on-premise/auth-saml",
"file": "nx-cloud/enterprise/single-tenant/auth-saml",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/enterprise/on-premise/auth-saml",
"path": "/ci/recipes/enterprise/single-tenant/auth-saml",
"tags": []
},
"/ci/recipes/enterprise/on-premise/advanced-config": {
"id": "advanced-config",
"name": "Advanced Configuration",
"description": "",
"mediaImage": "",
"file": "nx-cloud/enterprise/on-premise/advanced-config",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/enterprise/on-premise/advanced-config",
"tags": []
},
"/ci/recipes/enterprise/on-premise/custom-github-app": {
"/ci/recipes/enterprise/single-tenant/custom-github-app": {
"id": "custom-github-app",
"name": "Custom GitHub App",
"description": "",
"mediaImage": "",
"file": "nx-cloud/enterprise/on-premise/custom-github-app",
"file": "nx-cloud/enterprise/single-tenant/custom-github-app",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/enterprise/on-premise/custom-github-app",
"path": "/ci/recipes/enterprise/single-tenant/custom-github-app",
"tags": []
},
"/ci/recipes/enterprise/dte": {
@@ -1857,6 +1804,62 @@
"path": "/ci/recipes/enterprise/dte/jenkins-dte",
"tags": []
},
"/ci/recipes/enterprise/conformance": {
"id": "conformance",
"name": "Conformance",
"description": "Conformance features that are available to Nx Cloud Enterprise customers",
"mediaImage": "",
"file": "",
"itemList": [
{
"id": "configure-conformance-rules-in-nx-cloud",
"name": "Configure Conformance Rules in Nx Cloud",
"description": "",
"mediaImage": "",
"file": "nx-cloud/enterprise/conformance/configure-conformance-rules-in-nx-cloud",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/enterprise/conformance/configure-conformance-rules-in-nx-cloud",
"tags": ["conformance"]
},
{
"id": "publish-conformance-rules-to-nx-cloud",
"name": "Publish Conformance Rules to Nx Cloud",
"description": "",
"mediaImage": "",
"file": "nx-cloud/enterprise/conformance/publish-conformance-rules-to-nx-cloud",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/enterprise/conformance/publish-conformance-rules-to-nx-cloud",
"tags": ["conformance"]
}
],
"isExternal": false,
"path": "/ci/recipes/enterprise/conformance",
"tags": []
},
"/ci/recipes/enterprise/conformance/configure-conformance-rules-in-nx-cloud": {
"id": "configure-conformance-rules-in-nx-cloud",
"name": "Configure Conformance Rules in Nx Cloud",
"description": "",
"mediaImage": "",
"file": "nx-cloud/enterprise/conformance/configure-conformance-rules-in-nx-cloud",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/enterprise/conformance/configure-conformance-rules-in-nx-cloud",
"tags": ["conformance"]
},
"/ci/recipes/enterprise/conformance/publish-conformance-rules-to-nx-cloud": {
"id": "publish-conformance-rules-to-nx-cloud",
"name": "Publish Conformance Rules to Nx Cloud",
"description": "",
"mediaImage": "",
"file": "nx-cloud/enterprise/conformance/publish-conformance-rules-to-nx-cloud",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/enterprise/conformance/publish-conformance-rules-to-nx-cloud",
"tags": ["conformance"]
},
"/ci/recipes/other": {
"id": "other",
"name": "Other",
@@ -1885,6 +1888,17 @@
"isExternal": false,
"path": "/ci/recipes/other/ci-deployment",
"tags": ["docker", "deploy"]
},
{
"id": "cipe-affected-project-graph",
"name": "Reduce the Number of Affected Projects in a CI Pipeline Execution",
"description": "",
"mediaImage": "",
"file": "nx-cloud/recipes/cipe-affected-project-graph",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/other/cipe-affected-project-graph",
"tags": []
}
],
"isExternal": false,
@@ -1913,6 +1927,17 @@
"path": "/ci/recipes/other/ci-deployment",
"tags": ["docker", "deploy"]
},
"/ci/recipes/other/cipe-affected-project-graph": {
"id": "cipe-affected-project-graph",
"name": "Reduce the Number of Affected Projects in a CI Pipeline Execution",
"description": "",
"mediaImage": "",
"file": "nx-cloud/recipes/cipe-affected-project-graph",
"itemList": [],
"isExternal": false,
"path": "/ci/recipes/other/cipe-affected-project-graph",
"tags": []
},
"/ci/reference": {
"id": "reference",
"name": "Reference",
@@ -1953,6 +1978,17 @@
"path": "/ci/reference/launch-templates",
"tags": []
},
{
"id": "assignment-rules",
"name": "Assignment Rules",
"description": "",
"mediaImage": "",
"file": "nx-cloud/reference/assignment-rules",
"itemList": [],
"isExternal": false,
"path": "/ci/reference/assignment-rules",
"tags": []
},
{
"id": "custom-steps",
"name": "Custom Steps",
@@ -2024,6 +2060,17 @@
"path": "/ci/reference/launch-templates",
"tags": []
},
"/ci/reference/assignment-rules": {
"id": "assignment-rules",
"name": "Assignment Rules",
"description": "",
"mediaImage": "",
"file": "nx-cloud/reference/assignment-rules",
"itemList": [],
"isExternal": false,
"path": "/ci/reference/assignment-rules",
"tags": []
},
"/ci/reference/custom-steps": {
"id": "custom-steps",
"name": "Custom Steps",
+2 -2
View File
@@ -160,7 +160,7 @@
"itemList": [],
"isExternal": false,
"path": "/extending-nx/recipes/create-sync-generator",
"tags": ["generate-code"]
"tags": ["generate-code", "sync"]
},
{
"id": "migration-generators",
@@ -308,7 +308,7 @@
"itemList": [],
"isExternal": false,
"path": "/extending-nx/recipes/create-sync-generator",
"tags": ["generate-code"]
"tags": ["generate-code", "sync"]
},
"/extending-nx/recipes/migration-generators": {
"id": "migration-generators",
File diff suppressed because it is too large Load Diff
+133 -23
View File
@@ -108,7 +108,7 @@
"type": "executor"
},
"/nx-api/angular/executors/application": {
"description": "Builds an Angular application using [esbuild](https://esbuild.github.io/) with integrated SSR and prerendering capabilities. _Note: this is only supported in Angular versions >= 17.0.0_.",
"description": "Builds an Angular application using [esbuild](https://esbuild.github.io/) with integrated SSR and prerendering capabilities.",
"file": "generated/packages/angular/executors/application.json",
"hidden": false,
"name": "application",
@@ -200,7 +200,7 @@
"type": "generator"
},
"/nx-api/angular/generators/convert-to-application-executor": {
"description": "Converts projects to use the `@nx/angular:application` executor or the `@angular-devkit/build-angular:application` builder. _Note: this is only supported in Angular versions >= 17.0.0_.",
"description": "Converts projects to use the `@nx/angular:application` executor or the `@angular-devkit/build-angular:application` builder.",
"file": "generated/packages/angular/generators/convert-to-application-executor.json",
"hidden": false,
"name": "convert-to-application-executor",
@@ -1306,6 +1306,18 @@
},
"path": "/nx-api/js"
},
"module-federation": {
"githubRoot": "https://github.com/nrwl/nx/blob/master",
"name": "module-federation",
"packageName": "@nx/module-federation",
"description": "The Nx Plugin for Module Federation contains executors and utilities that support building applications using Module Federation.",
"documents": {},
"root": "/packages/module-federation",
"source": "/packages/module-federation/src",
"executors": {},
"generators": {},
"path": "/nx-api/module-federation"
},
"nest": {
"githubRoot": "https://github.com/nrwl/nx/blob/master",
"name": "nest",
@@ -1531,15 +1543,6 @@
"originalFilePath": "/packages/next/src/executors/server/schema.json",
"path": "/nx-api/next/executors/server",
"type": "executor"
},
"/nx-api/next/executors/export": {
"description": "Export a Next.js application. The exported application is located at `dist/$outputPath/exported`.",
"file": "generated/packages/next/executors/export.json",
"hidden": false,
"name": "export",
"originalFilePath": "/packages/next/src/executors/export/schema.json",
"path": "/nx-api/next/executors/export",
"type": "executor"
}
},
"generators": {
@@ -1745,7 +1748,7 @@
"itemList": [],
"isExternal": false,
"path": "/nx-api/nx/documents/create-nx-workspace",
"tags": [],
"tags": ["installation"],
"originalFilePath": "generated/cli/create-nx-workspace"
},
"/nx-api/nx/documents/init": {
@@ -1756,7 +1759,7 @@
"itemList": [],
"isExternal": false,
"path": "/nx-api/nx/documents/init",
"tags": [],
"tags": ["init"],
"originalFilePath": "generated/cli/init"
},
"/nx-api/nx/documents/generate": {
@@ -1789,7 +1792,7 @@
"itemList": [],
"isExternal": false,
"path": "/nx-api/nx/documents/daemon",
"tags": [],
"tags": ["daemon"],
"originalFilePath": "generated/cli/daemon"
},
"/nx-api/nx/documents/dep-graph": {
@@ -1921,7 +1924,7 @@
"itemList": [],
"isExternal": false,
"path": "/nx-api/nx/documents/sync",
"tags": [],
"tags": ["sync"],
"originalFilePath": "generated/cli/sync"
},
"/nx-api/nx/documents/sync-check": {
@@ -1932,7 +1935,7 @@
"itemList": [],
"isExternal": false,
"path": "/nx-api/nx/documents/sync-check",
"tags": [],
"tags": ["sync"],
"originalFilePath": "generated/cli/sync-check"
},
"/nx-api/nx/documents/import": {
@@ -1943,7 +1946,7 @@
"itemList": [],
"isExternal": false,
"path": "/nx-api/nx/documents/import",
"tags": [],
"tags": ["import"],
"originalFilePath": "generated/cli/import"
},
"/nx-api/nx/documents/exec": {
@@ -1954,7 +1957,7 @@
"itemList": [],
"isExternal": false,
"path": "/nx-api/nx/documents/exec",
"tags": [],
"tags": ["exec"],
"originalFilePath": "generated/cli/exec"
},
"/nx-api/nx/documents/watch": {
@@ -1976,7 +1979,7 @@
"itemList": [],
"isExternal": false,
"path": "/nx-api/nx/documents/show",
"tags": [],
"tags": ["explore-graph"],
"originalFilePath": "generated/cli/show"
},
"/nx-api/nx/documents/view-logs": {
@@ -2009,7 +2012,7 @@
"itemList": [],
"isExternal": false,
"path": "/nx-api/nx/documents/add",
"tags": [],
"tags": ["add"],
"originalFilePath": "generated/cli/add"
},
"/nx-api/nx/documents/login": {
@@ -2020,7 +2023,7 @@
"itemList": [],
"isExternal": false,
"path": "/nx-api/nx/documents/login",
"tags": [],
"tags": ["login"],
"originalFilePath": "generated/cli/login"
},
"/nx-api/nx/documents/logout": {
@@ -2031,7 +2034,7 @@
"itemList": [],
"isExternal": false,
"path": "/nx-api/nx/documents/logout",
"tags": [],
"tags": ["login"],
"originalFilePath": "generated/cli/logout"
}
},
@@ -3000,6 +3003,33 @@
"originalFilePath": "/packages/rspack/src/generators/application/schema.json",
"path": "/nx-api/rspack/generators/application",
"type": "generator"
},
"/nx-api/rspack/generators/convert-webpack": {
"description": "Convert a webpack application to use rspack.",
"file": "generated/packages/rspack/generators/convert-webpack.json",
"hidden": false,
"name": "convert-webpack",
"originalFilePath": "/packages/rspack/src/generators/convert-webpack/schema.json",
"path": "/nx-api/rspack/generators/convert-webpack",
"type": "generator"
},
"/nx-api/rspack/generators/convert-config-to-rspack-plugin": {
"description": "Convert the project to use the `NxAppRspackPlugin` and `NxReactRspackPlugin`.",
"file": "generated/packages/rspack/generators/convert-config-to-rspack-plugin.json",
"hidden": false,
"name": "convert-config-to-rspack-plugin",
"originalFilePath": "/packages/rspack/src/generators/convert-config-to-rspack-plugin/schema.json",
"path": "/nx-api/rspack/generators/convert-config-to-rspack-plugin",
"type": "generator"
},
"/nx-api/rspack/generators/convert-to-inferred": {
"description": "Convert existing Rspack project(s) using `@nx/rspack:rspack` executor to use `@nx/rspack/plugin`.",
"file": "generated/packages/rspack/generators/convert-to-inferred.json",
"hidden": false,
"name": "convert-to-inferred",
"originalFilePath": "/packages/rspack/src/generators/convert-to-inferred/schema.json",
"path": "/nx-api/rspack/generators/convert-to-inferred",
"type": "generator"
}
},
"path": "/nx-api/rspack"
@@ -3606,6 +3636,30 @@
},
"path": "/nx-api/workspace"
},
"powerpack-azure-cache": {
"githubRoot": "https://github.com/nrwl/nx/blob/master",
"name": "powerpack-azure-cache",
"packageName": "@nx/powerpack-azure-cache",
"description": "A Nx Powerpack plugin which provides a Nx cache which can be self hosted on Azure Blob Storage.",
"documents": {
"/nx-api/powerpack-azure-cache/documents/overview": {
"id": "overview",
"name": "Overview",
"description": "A Nx Powerpack plugin which provides a Nx cache which can be self hosted on Azure Blob Storage.",
"file": "external-generated/packages/powerpack-azure-cache/documents/overview",
"itemList": [],
"isExternal": false,
"path": "/nx-api/powerpack-azure-cache/documents/overview",
"tags": [],
"originalFilePath": "shared/packages/powerpack-azure-cache/powerpack-azure-cache-plugin"
}
},
"root": "/libs/nx-packages/powerpack-azure-cache",
"source": "/libs/nx-packages/powerpack-azure-cache/src",
"executors": {},
"generators": {},
"path": "/nx-api/powerpack-azure-cache"
},
"powerpack-conformance": {
"githubRoot": "https://github.com/nrwl/nx/blob/master",
"name": "powerpack-conformance",
@@ -3626,10 +3680,66 @@
},
"root": "/libs/nx-packages/powerpack-conformance",
"source": "/libs/nx-packages/powerpack-conformance/src",
"executors": {},
"executors": {
"/nx-api/powerpack-conformance/executors/bundle-rules": {
"description": "Compile and bundle one or more Nx Conformance Rules",
"file": "external-generated/packages/powerpack-conformance/executors/bundle-rules.json",
"hidden": false,
"name": "bundle-rules",
"originalFilePath": "/libs/nx-packages/powerpack-conformance/src/executors/bundle-rules/schema.json",
"path": "/nx-api/powerpack-conformance/executors/bundle-rules",
"type": "executor"
}
},
"generators": {},
"path": "/nx-api/powerpack-conformance"
},
"powerpack-enterprise-cloud": {
"githubRoot": "https://github.com/nrwl/nx/blob/master",
"name": "powerpack-enterprise-cloud",
"packageName": "@nx/powerpack-enterprise-cloud",
"description": "A Nx Powerpack plugin which is specific to Nx Enterprise Cloud workspaces.",
"documents": {},
"root": "/libs/nx-packages/powerpack-enterprise-cloud",
"source": "/libs/nx-packages/powerpack-enterprise-cloud/src",
"executors": {},
"generators": {
"/nx-api/powerpack-enterprise-cloud/generators/init": {
"description": "Initialize Nx Powerpack Enterprise Cloud config",
"file": "external-generated/packages/powerpack-enterprise-cloud/generators/init.json",
"hidden": false,
"name": "init",
"originalFilePath": "/libs/nx-packages/powerpack-enterprise-cloud/src/generators/init/schema.json",
"path": "/nx-api/powerpack-enterprise-cloud/generators/init",
"type": "generator"
}
},
"path": "/nx-api/powerpack-enterprise-cloud"
},
"powerpack-gcs-cache": {
"githubRoot": "https://github.com/nrwl/nx/blob/master",
"name": "powerpack-gcs-cache",
"packageName": "@nx/powerpack-gcs-cache",
"description": "A Nx Powerpack plugin which provides a Nx cache which can be self hosted on Google Cloud Storage.",
"documents": {
"/nx-api/powerpack-gcs-cache/documents/overview": {
"id": "overview",
"name": "Overview",
"description": "A Nx Powerpack plugin which provides a Nx cache which can be self hosted on Google Cloud Storage.",
"file": "external-generated/packages/powerpack-gcs-cache/documents/overview",
"itemList": [],
"isExternal": false,
"path": "/nx-api/powerpack-gcs-cache/documents/overview",
"tags": [],
"originalFilePath": "shared/packages/powerpack-gcs-cache/powerpack-gcs-cache-plugin"
}
},
"root": "/libs/nx-packages/powerpack-gcs-cache",
"source": "/libs/nx-packages/powerpack-gcs-cache/src",
"executors": {},
"generators": {},
"path": "/nx-api/powerpack-gcs-cache"
},
"powerpack-license": {
"githubRoot": "https://github.com/nrwl/nx/blob/master",
"name": "powerpack-license",
File diff suppressed because it is too large Load Diff
+229 -40
View File
@@ -278,6 +278,13 @@
"id": "dep-graph",
"name": "graph",
"path": "/nx-api/nx/documents/dep-graph"
},
{
"description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.",
"file": "generated/packages/nx/documents/show",
"id": "show",
"name": "show",
"path": "/nx-api/nx/documents/show"
}
],
"generate-code": [
@@ -567,6 +574,13 @@
"name": "Build Before Versioning",
"path": "/recipes/nx-release/build-before-versioning"
},
{
"description": "",
"file": "shared/recipes/nx-release/configuration-version-prefix",
"id": "configuration-version-prefix",
"name": "Configuring Version Prefix for Dependency Versions",
"path": "/recipes/nx-release/configuration-version-prefix"
},
{
"description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.",
"file": "generated/packages/nx/documents/release",
@@ -575,33 +589,6 @@
"path": "/nx-api/nx/documents/release"
}
],
"conformance": [
{
"description": "Write and apply rules for your Nx workspace",
"file": "shared/features/powerpack/conformance",
"id": "conformance",
"name": "Run Language-Agnostic Conformance Rules",
"path": "/features/powerpack/conformance"
}
],
"owners": [
{
"description": "Configure and maintain code owners for projects in an Nx workspace",
"file": "shared/features/powerpack/owners",
"id": "owners",
"name": "Define Code Ownership at the Project Level",
"path": "/features/powerpack/owners"
}
],
"custom-caching": [
{
"description": "Host the remote cache without using Nx Cloud",
"file": "shared/features/powerpack/custom-caching",
"id": "custom-caching",
"name": "Self-Host the Remote Cache",
"path": "/features/powerpack/custom-caching"
}
],
"intro": [
{
"description": "",
@@ -648,6 +635,29 @@
"path": "/extending-nx/recipes/project-graph-plugins"
}
],
"add": [
{
"description": "",
"file": "shared/concepts/nx-plugins",
"id": "nx-plugins",
"name": "What Are Nx Plugins",
"path": "/concepts/nx-plugins"
},
{
"description": "",
"file": "shared/recipes/tips-n-tricks/keep-nx-versions-in-sync",
"id": "keep-nx-versions-in-sync",
"name": "Keep Nx Versions in Sync",
"path": "/recipes/tips-n-tricks/keep-nx-versions-in-sync"
},
{
"description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.",
"file": "generated/packages/nx/documents/add",
"id": "add",
"name": "add",
"path": "/nx-api/nx/documents/add"
}
],
"create-your-own-plugin": [
{
"description": "",
@@ -699,6 +709,52 @@
"path": "/nx-api/angular/documents/nx-devkit-angular-devkit"
}
],
"daemon": [
{
"description": "",
"file": "shared/concepts/daemon",
"id": "nx-daemon",
"name": "Nx Daemon",
"path": "/concepts/nx-daemon"
},
{
"description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.",
"file": "generated/packages/nx/documents/daemon",
"id": "daemon",
"name": "daemon",
"path": "/nx-api/nx/documents/daemon"
}
],
"sync": [
{
"description": "",
"file": "shared/concepts/sync-generators",
"id": "sync-generators",
"name": "Sync Generators",
"path": "/concepts/sync-generators"
},
{
"description": "",
"file": "shared/recipes/generators/create-sync-generator",
"id": "create-sync-generator",
"name": "Create a Sync Generator",
"path": "/extending-nx/recipes/create-sync-generator"
},
{
"description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.",
"file": "generated/packages/nx/documents/sync",
"id": "sync",
"name": "sync",
"path": "/nx-api/nx/documents/sync"
},
{
"description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.",
"file": "generated/packages/nx/documents/sync-check",
"id": "sync-check",
"name": "sync:check",
"path": "/nx-api/nx/documents/sync-check"
}
],
"module-federation": [
{
"description": "",
@@ -811,13 +867,6 @@
}
],
"installation": [
{
"description": "",
"file": "shared/recipes/installation/activate-powerpack",
"id": "activate-powerpack",
"name": "Activate Powerpack",
"path": "/recipes/installation/activate-powerpack"
},
{
"description": "",
"file": "shared/recipes/installation/install-non-javascript",
@@ -831,6 +880,36 @@
"id": "update-global-installation",
"name": "Update Your Global Nx Installation",
"path": "/recipes/installation/update-global-installation"
},
{
"description": "",
"file": "shared/recipes/installation/activate-powerpack",
"id": "activate-powerpack",
"name": "Activate Powerpack",
"path": "/nx-enterprise/activate-powerpack"
},
{
"description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.",
"file": "generated/packages/nx/documents/create-nx-workspace",
"id": "create-nx-workspace",
"name": "create-nx-workspace",
"path": "/nx-api/nx/documents/create-nx-workspace"
}
],
"exec": [
{
"description": "",
"file": "shared/recipes/running-tasks/root-level-scripts",
"id": "root-level-scripts",
"name": "Run Root-Level NPM Scripts with Nx",
"path": "/recipes/running-tasks/root-level-scripts"
},
{
"description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.",
"file": "generated/packages/nx/documents/exec",
"id": "exec",
"name": "exec",
"path": "/nx-api/nx/documents/exec"
}
],
"workspace-watching": [
@@ -849,6 +928,52 @@
"path": "/nx-api/nx/documents/watch"
}
],
"init": [
{
"description": "",
"file": "shared/migration/adding-to-monorepo",
"id": "adding-to-monorepo",
"name": "NPM/Yarn/PNPM workspaces",
"path": "/recipes/adopting-nx/adding-to-monorepo"
},
{
"description": "",
"file": "shared/migration/adding-to-existing-project",
"id": "adding-to-existing-project",
"name": "Add to any Project",
"path": "/recipes/adopting-nx/adding-to-existing-project"
},
{
"description": "",
"file": "shared/migration/migration-angular",
"id": "angular",
"name": "Migrating from Angular CLI",
"path": "/recipes/angular/migration/angular"
},
{
"description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.",
"file": "generated/packages/nx/documents/init",
"id": "init",
"name": "init",
"path": "/nx-api/nx/documents/init"
}
],
"import": [
{
"description": "",
"file": "shared/migration/import-project",
"id": "import-project",
"name": "Import an Existing Project into an Nx Workspace",
"path": "/recipes/adopting-nx/import-project"
},
{
"description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.",
"file": "generated/packages/nx/documents/import",
"id": "import",
"name": "import",
"path": "/nx-api/nx/documents/import"
}
],
"environment-variables": [
{
"description": "",
@@ -1103,6 +1228,47 @@
"path": "/recipes/tips-n-tricks/flat-config"
}
],
"conformance": [
{
"description": "Write and apply rules for your Nx workspace",
"file": "shared/features/powerpack/conformance",
"id": "conformance",
"name": "Run Language-Agnostic Conformance Rules",
"path": "/nx-enterprise/powerpack/conformance"
},
{
"description": "",
"file": "nx-cloud/enterprise/conformance/configure-conformance-rules-in-nx-cloud",
"id": "configure-conformance-rules-in-nx-cloud",
"name": "Configure Conformance Rules in Nx Cloud",
"path": "/ci/recipes/enterprise/conformance/configure-conformance-rules-in-nx-cloud"
},
{
"description": "",
"file": "nx-cloud/enterprise/conformance/publish-conformance-rules-to-nx-cloud",
"id": "publish-conformance-rules-to-nx-cloud",
"name": "Publish Conformance Rules to Nx Cloud",
"path": "/ci/recipes/enterprise/conformance/publish-conformance-rules-to-nx-cloud"
}
],
"owners": [
{
"description": "Configure and maintain code owners for projects in an Nx workspace",
"file": "shared/features/powerpack/owners",
"id": "owners",
"name": "Define Code Ownership at the Project Level",
"path": "/nx-enterprise/powerpack/owners"
}
],
"custom-caching": [
{
"description": "Host the remote cache without using Nx Cloud",
"file": "shared/features/powerpack/custom-caching",
"id": "custom-caching",
"name": "Self-Host the Remote Cache",
"path": "/nx-enterprise/powerpack/custom-caching"
}
],
"database": [
{
"description": "",
@@ -1188,13 +1354,36 @@
"path": "/ci/features/remote-cache"
}
],
"on-premise": [
"login": [
{
"description": "Set up Nx Cloud on machines that you control",
"file": "nx-cloud/features/nx-enterprise-on-prem",
"id": "on-premise",
"name": "Set up Nx Cloud On-Premise",
"path": "/ci/recipes/enterprise/on-premise/on-premise"
"description": "",
"file": "nx-cloud/recipes/personal-access-tokens",
"id": "personal-access-tokens",
"name": "Personal Access Tokens",
"path": "/ci/recipes/security/personal-access-tokens"
},
{
"description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.",
"file": "generated/packages/nx/documents/login",
"id": "login",
"name": "login",
"path": "/nx-api/nx/documents/login"
},
{
"description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.",
"file": "generated/packages/nx/documents/logout",
"id": "logout",
"name": "logout",
"path": "/nx-api/nx/documents/logout"
}
],
"single-tenant": [
{
"description": "",
"file": "nx-cloud/enterprise/single-tenant/overview",
"id": "overview",
"name": "Single Tenant Nx Cloud Hosting",
"path": "/ci/recipes/enterprise/single-tenant/overview"
}
],
"docker": [
+51 -22
View File
@@ -103,7 +103,7 @@
"type": "executor"
},
{
"description": "Builds an Angular application using [esbuild](https://esbuild.github.io/) with integrated SSR and prerendering capabilities. _Note: this is only supported in Angular versions >= 17.0.0_.",
"description": "Builds an Angular application using [esbuild](https://esbuild.github.io/) with integrated SSR and prerendering capabilities.",
"file": "generated/packages/angular/executors/application.json",
"hidden": false,
"name": "application",
@@ -195,7 +195,7 @@
"type": "generator"
},
{
"description": "Converts projects to use the `@nx/angular:application` executor or the `@angular-devkit/build-angular:application` builder. _Note: this is only supported in Angular versions >= 17.0.0_.",
"description": "Converts projects to use the `@nx/angular:application` executor or the `@angular-devkit/build-angular:application` builder.",
"file": "generated/packages/angular/generators/convert-to-application-executor.json",
"hidden": false,
"name": "convert-to-application-executor",
@@ -1292,6 +1292,17 @@
"root": "/packages/js",
"source": "/packages/js/src"
},
{
"description": "The Nx Plugin for Module Federation contains executors and utilities that support building applications using Module Federation.",
"documents": [],
"executors": [],
"generators": [],
"githubRoot": "https://github.com/nrwl/nx/blob/master",
"name": "module-federation",
"packageName": "@nx/module-federation",
"root": "/packages/module-federation",
"source": "/packages/module-federation/src"
},
{
"description": "The Nx Plugin for Nest contains executors and generators for allowing your workspace to create powerful Nest best in class APIs.",
"documents": [
@@ -1511,15 +1522,6 @@
"originalFilePath": "/packages/next/src/executors/server/schema.json",
"path": "next/executors/server",
"type": "executor"
},
{
"description": "Export a Next.js application. The exported application is located at `dist/$outputPath/exported`.",
"file": "generated/packages/next/executors/export.json",
"hidden": false,
"name": "export",
"originalFilePath": "/packages/next/src/executors/export/schema.json",
"path": "next/executors/export",
"type": "executor"
}
],
"generators": [
@@ -1724,7 +1726,7 @@
"itemList": [],
"isExternal": false,
"path": "nx/documents/create-nx-workspace",
"tags": [],
"tags": ["installation"],
"originalFilePath": "generated/cli/create-nx-workspace"
},
{
@@ -1735,7 +1737,7 @@
"itemList": [],
"isExternal": false,
"path": "nx/documents/init",
"tags": [],
"tags": ["init"],
"originalFilePath": "generated/cli/init"
},
{
@@ -1768,7 +1770,7 @@
"itemList": [],
"isExternal": false,
"path": "nx/documents/daemon",
"tags": [],
"tags": ["daemon"],
"originalFilePath": "generated/cli/daemon"
},
{
@@ -1900,7 +1902,7 @@
"itemList": [],
"isExternal": false,
"path": "nx/documents/sync",
"tags": [],
"tags": ["sync"],
"originalFilePath": "generated/cli/sync"
},
{
@@ -1911,7 +1913,7 @@
"itemList": [],
"isExternal": false,
"path": "nx/documents/sync-check",
"tags": [],
"tags": ["sync"],
"originalFilePath": "generated/cli/sync-check"
},
{
@@ -1922,7 +1924,7 @@
"itemList": [],
"isExternal": false,
"path": "nx/documents/import",
"tags": [],
"tags": ["import"],
"originalFilePath": "generated/cli/import"
},
{
@@ -1933,7 +1935,7 @@
"itemList": [],
"isExternal": false,
"path": "nx/documents/exec",
"tags": [],
"tags": ["exec"],
"originalFilePath": "generated/cli/exec"
},
{
@@ -1955,7 +1957,7 @@
"itemList": [],
"isExternal": false,
"path": "nx/documents/show",
"tags": [],
"tags": ["explore-graph"],
"originalFilePath": "generated/cli/show"
},
{
@@ -1988,7 +1990,7 @@
"itemList": [],
"isExternal": false,
"path": "nx/documents/add",
"tags": [],
"tags": ["add"],
"originalFilePath": "generated/cli/add"
},
{
@@ -1999,7 +2001,7 @@
"itemList": [],
"isExternal": false,
"path": "nx/documents/login",
"tags": [],
"tags": ["login"],
"originalFilePath": "generated/cli/login"
},
{
@@ -2010,7 +2012,7 @@
"itemList": [],
"isExternal": false,
"path": "nx/documents/logout",
"tags": [],
"tags": ["login"],
"originalFilePath": "generated/cli/logout"
}
],
@@ -2970,6 +2972,33 @@
"originalFilePath": "/packages/rspack/src/generators/application/schema.json",
"path": "rspack/generators/application",
"type": "generator"
},
{
"description": "Convert a webpack application to use rspack.",
"file": "generated/packages/rspack/generators/convert-webpack.json",
"hidden": false,
"name": "convert-webpack",
"originalFilePath": "/packages/rspack/src/generators/convert-webpack/schema.json",
"path": "rspack/generators/convert-webpack",
"type": "generator"
},
{
"description": "Convert the project to use the `NxAppRspackPlugin` and `NxReactRspackPlugin`.",
"file": "generated/packages/rspack/generators/convert-config-to-rspack-plugin.json",
"hidden": false,
"name": "convert-config-to-rspack-plugin",
"originalFilePath": "/packages/rspack/src/generators/convert-config-to-rspack-plugin/schema.json",
"path": "rspack/generators/convert-config-to-rspack-plugin",
"type": "generator"
},
{
"description": "Convert existing Rspack project(s) using `@nx/rspack:rspack` executor to use `@nx/rspack/plugin`.",
"file": "generated/packages/rspack/generators/convert-to-inferred.json",
"hidden": false,
"name": "convert-to-inferred",
"originalFilePath": "/packages/rspack/src/generators/convert-to-inferred/schema.json",
"path": "rspack/generators/convert-to-inferred",
"type": "generator"
}
],
"githubRoot": "https://github.com/nrwl/nx/blob/master",
@@ -14,6 +14,7 @@ We provide a recommended version, and it is usually the latest minor version of
| Angular Version | **Nx Version _(recommended)_** | Nx Version _(range)_ |
| --------------- | ------------------------------ | ---------------------------------------- |
| ~19.0.0 | **latest** | >=20.2.0 <=latest |
| ~18.2.0 | **latest** | >=19.6.0 <=latest |
| ~18.1.0 | **latest** | >=19.5.0 <=latest |
| ~18.0.0 | **latest** | >=19.1.0 <=latest |
@@ -21,9 +22,9 @@ We provide a recommended version, and it is usually the latest minor version of
| ~17.2.0 | **latest** | >=18.1.1 <=latest |
| ~17.1.0 | **latest** | >=17.3.0 <=latest |
| ~17.0.0 | **latest** | >=17.1.0 <=latest |
| ~16.2.0 | **latest** | >=16.7.0 <=latest |
| ~16.1.0 | **latest** | >=16.4.0 <=latest |
| ~16.0.0 | **latest** | >=16.1.0 <=latest |
| ~16.2.0 | **~20.1.0** | >=16.7.0 <20.2.0 |
| ~16.1.0 | **~20.1.0** | >=16.4.0 <20.2.0 |
| ~16.0.0 | **~20.1.0** | >=16.1.0 <20.2.0 |
| ~15.2.0 | **~19.0.0** | >=15.8.0 <19.1.0 |
| ~15.1.0 | **~19.0.0** | >=15.5.0 <19.1.0 |
| ~15.0.0 | **~19.0.0** | >=15.2.0 <=15.4.8 \|\| >=15.7.0 <19.1.0 |
@@ -4,7 +4,7 @@
"schema": {
"$schema": "http://json-schema.org/draft-07/schema",
"title": "Schema for Nx Application Executor",
"description": "Builds an Angular application using [esbuild](https://esbuild.github.io/) with integrated SSR and prerendering capabilities. _Note: this is only supported in Angular versions >= 17.0.0_.",
"description": "Builds an Angular application using [esbuild](https://esbuild.github.io/) with integrated SSR and prerendering capabilities.",
"examplesFile": "This executor is a drop-in replacement for the `@angular-devkit/build-angular:application` builder provided by the Angular CLI. It builds an Angular application using [esbuild](https://esbuild.github.io/) with integrated SSR and prerendering capabilities.\n\nIn addition to the features provided by the Angular CLI builder, the `@nx/angular:application` executor also supports the following:\n\n- Providing esbuild plugins\n- Providing a function to transform the application's `index.html` file\n- Incremental builds\n\n{% callout type=\"check\" title=\"Dev Server\" %}\nThe [`@nx/angular:dev-server` executor](/nx-api/angular/executors/dev-server) is required to serve your application when using the `@nx/angular:application` to build it. It is a drop-in replacement for the Angular CLI's `@angular-devkit/build-angular:dev-server` builder and ensures the application is correctly served with Vite when using the `@nx/angular:application` executor.\n{% /callout %}\n\n## Examples\n\n{% tabs %}\n{% tab label=\"Providing esbuild plugins\" %}\n\nThe executor accepts a `plugins` option that allows you to provide esbuild plugins that will be used when building your application. It allows providing a path to a plugin file or an object with a `path` and `options` property to provide options to the plugin.\n\n```json {% fileName=\"apps/my-app/project.json\" highlightLines=[\"8-16\"] %}\n{\n ...\n \"targets\": {\n \"build\": {\n \"executor\": \"@nx/angular:application\",\n \"options\": {\n ...\n \"plugins\": [\n \"apps/my-app/plugins/plugin1.js\",\n {\n \"path\": \"apps/my-app/plugins/plugin2.js\",\n \"options\": {\n \"someOption\": \"some value\"\n }\n }\n ]\n }\n }\n ...\n }\n}\n```\n\n```ts {% fileName=\"apps/my-app/plugins/plugin1.js\" %}\nconst plugin1 = {\n name: 'plugin1',\n setup(build) {\n const options = build.initialOptions;\n options.define.PLUGIN1_TEXT = '\"Value was provided at build time\"';\n },\n};\n\nmodule.exports = plugin1;\n```\n\n```ts {% fileName=\"apps/my-app/plugins/plugin2.js\" %}\nfunction plugin2({ someOption }) {\n return {\n name: 'plugin2',\n setup(build) {\n const options = build.initialOptions;\n options.define.PLUGIN2_TEXT = JSON.stringify(someOption);\n },\n };\n}\n\nmodule.exports = plugin2;\n```\n\nAdditionally, we need to inform TypeScript of the defined variables to prevent type-checking errors during the build. We can achieve this by creating or updating a type definition file included in the TypeScript build process (e.g. `src/types.d.ts`) with the following content:\n\n```ts {% fileName=\"apps/my-app/src/types.d.ts\" %}\ndeclare const PLUGIN1_TEXT: number;\ndeclare const PLUGIN2_TEXT: string;\n```\n\n{% /tab %}\n\n{% tab label=\"Transforming the 'index.html' file\" %}\n\nThe executor accepts an `indexHtmlTransformer` option to provide a path to a file with a default export for a function that receives the application's `index.html` file contents and outputs the updated contents.\n\n```json {% fileName=\"apps/my-app/project.json\" highlightLines=[8] %}\n{\n ...\n \"targets\": {\n \"build\": {\n \"executor\": \"@nx/angular:application\",\n \"options\": {\n ...\n \"indexHtmlTransformer\": \"apps/my-app/index-html.transformer.ts\"\n }\n }\n ...\n }\n}\n```\n\n```ts {% fileName=\"apps/my-app/index-html.transformer.ts\" %}\nexport default function (indexContent: string) {\n return indexContent.replace(\n '<title>my-app</title>',\n '<title>my-app (transformed)</title>'\n );\n}\n```\n\n{% /tab %}\n{% /tabs %}\n",
"outputCapture": "direct-nodejs",
"type": "object",
@@ -55,7 +55,18 @@
},
"server": {
"type": "string",
"description": "The full path for the server entry point to the application, relative to the current workspace."
"description": "The full path for the server entry point to the application, relative to the current workspace.",
"oneOf": [
{
"type": "string",
"description": "The full path for the server entry point to the application, relative to the current workspace."
},
{
"const": false,
"type": "boolean",
"description": "Indicates that a server entry point is not provided. _Note: this is only supported in Angular versions >= 19.0.0_."
}
]
},
"polyfills": {
"description": "A list of polyfills to include in the build. Can be a full path for a file, relative to the current workspace or module specifier. Example: 'zone.js'.",
@@ -71,6 +82,29 @@
"type": "string",
"description": "Customize the base path for the URLs of resources in 'index.html' and component stylesheets. This option is only necessary for specific deployment scenarios, such as with Angular Elements or when utilizing different CDN locations. _Note: this is only supported in Angular versions >= 17.3.0_."
},
"security": {
"description": "Security features to protect against XSS and other common attacks. _Note: this is only supported in Angular versions >= 19.0.0_.",
"type": "object",
"additionalProperties": false,
"properties": {
"autoCsp": {
"description": "Enables automatic generation of a hash-based Strict Content Security Policy (https://web.dev/articles/strict-csp#choose-hash) based on scripts in index.html. Will default to true once we are out of experimental/preview phases. It defaults to `false`.",
"oneOf": [
{
"type": "object",
"properties": {
"unsafeEval": {
"type": "boolean",
"description": "Include the `unsafe-eval` directive (https://web.dev/articles/strict-csp#remove-eval) in the auto-CSP. Please only enable this if you are absolutely sure that you need to, as allowing calls to eval will weaken the XSS defenses provided by the auto-CSP. It default to `false`."
}
},
"additionalProperties": false
},
{ "type": "boolean" }
]
}
}
},
"scripts": {
"description": "Global scripts to be included in the build.",
"type": "array",
@@ -157,6 +191,28 @@
"type": "array",
"items": { "type": "string" },
"default": []
},
"sass": {
"description": "Options to pass to the sass preprocessor. _Note: this is only supported in Angular versions >= 19.0.0_.",
"type": "object",
"properties": {
"fatalDeprecations": {
"description": "A set of deprecations to treat as fatal. If a deprecation warning of any provided type is encountered during compilation, the compiler will error instead. If a Version is provided, then all deprecations that were active in that compiler version will be treated as fatal.",
"type": "array",
"items": { "type": "string" }
},
"silenceDeprecations": {
"description": " A set of active deprecations to ignore. If a deprecation warning of any provided type is encountered during compilation, the compiler will ignore it instead.",
"type": "array",
"items": { "type": "string" }
},
"futureDeprecations": {
"description": "A set of future deprecations to opt into early. Future deprecations passed here will be treated as active by the compiler, emitting warnings as necessary.",
"type": "array",
"items": { "type": "string" }
}
},
"additionalProperties": false
}
},
"additionalProperties": false
@@ -175,7 +231,6 @@
"optimization": {
"description": "Enables optimization of the build output. Including minification of scripts and styles, tree-shaking, dead-code elimination, inlining of critical CSS and fonts inlining. For more information, see https://angular.dev/reference/configs/workspace-config#optimization-configuration.",
"default": true,
"x-user-analytics": "ep.ng_optimization",
"oneOf": [
{
"type": "object",
@@ -304,7 +359,6 @@
"aot": {
"type": "boolean",
"description": "Build using Ahead of Time compilation.",
"x-user-analytics": "ep.ng_aot",
"default": true
},
"sourceMap": {
@@ -548,8 +602,7 @@
"default": []
},
"prerender": {
"description": "Prerender (SSG) pages of your application during build time.",
"default": false,
"description": "Prerender (SSG) pages of your application during build time. It defaults to `false` in Angular versions < 19.0.0. Otherwise, the value will be `undefined`.",
"oneOf": [
{
"type": "boolean",
@@ -586,6 +639,11 @@
"entry": {
"type": "string",
"description": "The server entry-point that when executed will spawn the web server."
},
"experimentalPlatform": {
"description": "Specifies the platform for which the server bundle is generated. This affects the APIs and modules available in the server-side code. \n\n- `node`: (Default) Generates a bundle optimized for Node.js environments. \n- `neutral`: Generates a platform-neutral bundle suitable for environments like edge workers, and other serverless platforms. This option avoids using Node.js-specific APIs, making the bundle more portable. \n\nPlease note that this feature does not provide polyfills for Node.js modules. Additionally, it is experimental, and the feature may undergo changes in future versions. _Note: this is only supported in Angular versions >= 19.0.0_.",
"default": "node",
"enum": ["node", "neutral"]
}
},
"additionalProperties": false
@@ -594,8 +652,12 @@
},
"appShell": {
"type": "boolean",
"description": "Generates an application shell during build time.",
"default": false
"description": "Generates an application shell during build time. It defaults to `false` in Angular versions < 19.0.0. Otherwise, the value will be `undefined`."
},
"outputMode": {
"type": "string",
"description": "Defines the build output target. 'static': Generates a static site for deployment on any static hosting service. 'server': Produces an application designed for deployment on a server that supports server-side rendering (SSR). _Note: this is only supported in Angular versions >= 19.0.0_.",
"enum": ["static", "server"]
},
"buildLibsFromSource": {
"type": "boolean",
@@ -741,7 +803,7 @@
},
"presets": []
},
"description": "Builds an Angular application using [esbuild](https://esbuild.github.io/) with integrated SSR and prerendering capabilities. _Note: this is only supported in Angular versions >= 17.0.0_.",
"description": "Builds an Angular application using [esbuild](https://esbuild.github.io/) with integrated SSR and prerendering capabilities.",
"aliases": [],
"hidden": false,
"path": "/packages/angular/src/executors/application/schema.json",

Some files were not shown because too many files have changed in this diff Show More