14343 Commits

Author SHA1 Message Date
Emily Xiong
42e860d3ea
feat(js): upgrade verdaccio to 6 (#30015) 2025-02-19 13:44:31 +04:00
James Henry
443d4fd27a
feat(core): support bun's new text-based lockfile and use bun publish within nx release (#30064) 2025-02-19 13:42:35 +04:00
Emily Xiong
1047991200
fix(js): identify correct circular dependecies (#29759) 2025-02-19 13:13:08 +04:00
Jack Hsu
51a0bae574
fix(nx-dev): remove OTel-based tracing for now to remove local dev erros (#30096)
Locally, when running `nx serve-docs nx-dev`, you'll see errors coming
from `/blog` URLs due to instrumentation problems. This is caused by the
`@grafana/faro-web-tracing` packages as soon as it is imported in an app
router environment.

We don't need it for now, so we can just remove it. It means that we
will be missing tracing on HTTP requests like XHRs, but we still get
performance metrics and error reporting.

## Current Behavior
See errors in logs during development

## Expected Behavior
No errors in logs

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

Fixes #
2025-02-18 14:06:48 -05:00
Craigory Coppola
3f90f7eea9
fix(core): NX_PLUGIN_NO_TIMEOUTS should also remove timeout on plugin worker connection (#30095) 2025-02-18 18:12:10 +00:00
Jonathan Cammisuli
6e789f547f
chore(repo): update powerpack version (#30032) 2025-02-18 20:45:05 +04:00
James Henry
e82b811fe1
fix(core): make hash_array resilient to None values (#30090) 2025-02-18 15:54:45 +00:00
Emily Xiong
4f70cdb721
feat(angular): add release option to angular publishable libraries (#29869) 2025-02-18 19:54:35 +04:00
Louie Weng
377f5f6dfc
docs(nx-cloud): ensure nx cloud statuses are not enforced on github (#30080)
<!-- 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 -->

Since statuses are generated dynamically based off of commands executed,
enforcing old statuses on Github will result in a "Waiting for status"
message which can block in progress PRs. The recommendation is then to
only enforce status checks on the default branch and not enforce any Nx
Cloud related status checks.

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

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

Fixes #
2025-02-18 07:32:26 -08:00
Leosvel Pérez Espinosa
f6404f57be
fix(devkit): handle missing include and exclude in tsconfig options when updating tsconfig to support js (#30073)
## Current Behavior

The `updateTsConfigsToJs` helper from `@nx/devkit` doesn't handle
tsconfig files without the `include` or `exclude` properties.

## Expected Behavior

The `updateTsConfigsToJs` helper from `@nx/devkit` should handle
tsconfig files without the `include` or `exclude` properties.

## Related Issue(s)

Fixes #30067
2025-02-18 12:42:30 +01:00
Leosvel Pérez Espinosa
96c775b4cf
fix(js): invalidate tsconfig files cache in the @nx/js/typescript plugin when extended files change (#30071)
## Current Behavior

- The persistent tsconfig files cache used by the `@nx/js/typescript`
plugin does not get invalidated when the tsconfig files it extends from
are updated.
- Absolute paths are stored in the cache, which would be incorrect when
distributing the cache.
- The plugin throws a cryptic error when the lock file doesn't exist.

## Expected Behavior

- The persistent tsconfig files cache used by the `@nx/js/typescript`
plugin should get invalidated when the tsconfig files it extends from
are updated.
- Paths should be stored relative to the workspace root.
- The plugin should handle when the lock file is missing.

Additionally, a few other performance improvements were made to offset
the overhead introduced by creating a stricter cache key:

- cache and reuse file reads between tsconfig reads and file hashing
(now each file is only read once, if read at all)
- initialize a pre-populate tsconfig files cache in a first pass to skip
checking cache entries' key in subsequent reads
- reduce the tsconfig file cached content we store to disk
- cache the check for external project references

## Related Issue(s)

Fixes #29429
2025-02-18 12:34:59 +01:00
Leosvel Pérez Espinosa
c78279990d
fix(rspack): handle potentially missing lockfile in @nx/rspack/plugin plugin (#30086)
## Current Behavior

If the lock file is missing the `@nx/rspack/plugin` plugin throws a
cryptic error.

## Expected Behavior

The `@nx/rspack/plugin` should handle a missing lock file.

## Related Issue(s)

Fixes #
2025-02-18 12:30:43 +01:00
Ethan Koenig
9cdc1ccba4
fix(core): respect extends when reading tsconfig options (#30062)
Fix a bug introduced in https://github.com/nrwl/nx/pull/29774.

## Current Behavior

If a local plugin's `tsconfig.json` uses `extends`, the referenced base
config is not loaded.

## Expected Behavior

If a local plugin's `tsconfig.json` uses `extends`, the referenced base
config is loaded.

## Related Issue(s)

Fixes #30007

---------

Co-authored-by: Leosvel Pérez Espinosa <leosvel.perez.espinosa@gmail.com>
2025-02-18 09:51:01 +00:00
Juri
3d63da2661 docs(nx-dev): link AI docs page from homepage 2025-02-17 19:49:37 +01:00
Juri
5887baf27f docs(core): adds feature for LLM enhancing 2025-02-17 17:41:21 +01:00
Juri
46cac5bd56 docs(nx-dev): article about monorepos being AI future-proof 2025-02-17 17:04:07 +01:00
Benjamin Cabanes
80e6ca1251
docs(nx-dev): update descriptions of nx (#30054)
Revised the description across documentation, metadata, and SEO content
to emphasize Nx's AI-powered architectural awareness alongside its
monorepo optimization and advanced CI capabilities.
2025-02-17 10:35:34 -05:00
Colum Ferry
090364ad39
feat(module-federation): add NxModuleFederationPlugin for inferred usage (#30003)
## Current Behaviour
Currently, Module Federation with Nx is forced to use executors to
provide the best DX.

## Expected Behaviour
As part of the transition to inferred targets, we will need Rspack
plugins that replicates the DX provided by our executors.
Add `NxModuleFederationPlugin` and `NxModuleFederationDevServerPlugin`
to handle this.
2025-02-17 15:21:36 +00:00
Jordan
f659d2fd5e
chore(misc): update .gitignore help link (#30051)
<!-- 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
Currently when we generate a `.gitignore` file we include a help link to
http://help.github.com/ignore-files/ which is no longer a valid url.

## Expected Behavior
It should link to the new help link
https://docs.github.com/en/get-started/getting-started-with-git/ignoring-files

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

Fixes #29794
2025-02-17 09:52:57 -05:00
Denis Bendrikov
af930c396d
feat(testing): add type annotation for Jest configuration export (#30059) 2025-02-17 16:49:07 +04:00
Alejandro Forero
d8345147ed
fix(release): allow preid option in release command (#29264) 2025-02-17 15:17:15 +04:00
Juri Strumpflohner
804df721a7
docs(misc): update links on adopting Nx page from Turbo (#30060) 2025-02-15 21:18:12 +04:00
Emily Xiong
fc39b3dc49
fix(react): add release option for @nx/react:lib --publishable (#29776) 2025-02-15 13:27:18 +04:00
Nicholas Cunningham
3152502629
feat(react): Update react-router-dom to latest (#29919)
Update `react-router-dom` and `remix` package versions to latest.
Currently, there should be no breaking changes from our generators.
2025-02-14 14:10:56 -07:00
James Henry
1257621031
docs(nx-dev): update migration guide (#30052) 2025-02-15 00:43:38 +04:00
Benjamin Cabanes
0006fbfc0b
docs(nx-dev): update tag in hero subtitle (#30053)
Replaced an instance of `<strong>` with `<Strong>` to maintain
consistent tag usage across the component. It ensures readability and
uniformity in the codebase styling.
2025-02-14 14:35:24 -05:00
Austin Fahsl
d36e4aa9ee
docs(nx-dev): creating conformance rules docs adjustments (#30038) 2025-02-14 20:19:26 +04:00
James Henry
888957a010
fix(release): ensure tags for version match stable variant before prerelease (#30047) 2025-02-14 11:08:34 -05:00
Benjamin Cabanes
2413a4393c
docs(nx-cloud): update home hero subtitle (#30049)
Revised the text to highlight the new AI-powered architectural awareness
and adjusted formatting for better readability on larger screens.
2025-02-14 10:49:17 -05:00
Colum Ferry
309a2a9228
fix(rspack): pin rspack 1.2.2 (#29997)
## Current Behavior
Rspack v1.2.3 was released with some issues around resolving and
transforming modules throwing errors at build time.

## Expected Behavior
Pin Rpsack to 1.2.2 until a solution for the above problem can be
resolved.
2025-02-14 08:04:11 -05:00
James Henry
b10856bb32
feat(release): configure when all branches should be checked for a matching releaseTagPattern (#30044) 2025-02-14 17:02:02 +04:00
Hikari Hayashi
b821d2954b
fix(core): add the extends field to nx-schema.json (#30027) 2025-02-14 09:26:29 +00:00
Emily Xiong
ef08108f7a
fix(core): change to use init generator during import (#30029)
<!-- 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 -->
- call init generator using implementationFactory, causing issue because
schema.json file isnt respected, and then NX_INTERACTIVE is never set to
true

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
- change back to run init command

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

Fixes #
2025-02-13 22:02:12 -05:00
Nicholas Cunningham
3c0820f707
fix(vite): prevent asset copying when NX_GRAPH_CREATION is enabled (#30037)
This PR includes updates to the `nxCopyAssetsPlugin` function in the
`packages/vite/plugins/nx-copy-assets.plugin.ts` file to improve asset
handling and daemon integration.

The most important changes include adding a check for
`NX_GRAPH_CREATION`.

Additionally, it also contains a check to ensure that before attempting
to watch for file changes the daemon should be available.
2025-02-13 22:01:57 -05:00
Leosvel Pérez Espinosa
13319a857d
fix(js): improve the @nx/js/typescript plugin performance (#30024)
Improve the perf of the `@nx/js/typescript` plugin both in cold and warm
scenarios. The main changes done are:

- Batch some processing to do it once instead of doing it per config
file (avoids some duplicated processing)
- Use a custom TS host to read tsconfig files to reduce I/O operations
- Cache tsconfig files' reads

Benchmark results in a repo with 656 TS projects:

```
# Before the changes

Cold (NX_CACHE_PROJECT_GRAPH=false): ~2285 ms
Warm (NX_CACHE_PROJECT_GRAPH=true): ~2142 ms

# After the changes

Cold (NX_CACHE_PROJECT_GRAPH=false): ~597 ms
Warm (NX_CACHE_PROJECT_GRAPH=true): ~220 ms
```

Note: Once https://github.com/nrwl/nx/pull/29935 is merged. I'll send
another change to batch the file hashes.

## Current Behavior

## Expected Behavior

## Related Issue(s)

Fixes #
2025-02-13 14:26:38 -05:00
Craigory Coppola
c2e89f87b5
feat(core): add multi hash fn (#29935)
Adds function to compute multiple glob hashes in native code at the same time, greatly speeding up certain plugin performance.
2025-02-13 14:21:54 -05:00
Jack Hsu
2ebdd2e5a2
feat(nx-dev): add Faro for observability (#30021)
This PR adds frontend observability using Grafana Faro. It will provide
traffic data and performance data.
2025-02-13 14:12:21 -05:00
Mike Hartington
4cdbd2cb32
docs(misc): add canonical urls to website (#30025) 2025-02-13 12:01:12 -05:00
Leosvel Pérez Espinosa
eb0505b1ad
fix(vite): ignore vite temp files in eslint config (#29909)
## Current Behavior

Vite config temp files can sometimes cause errors to be thrown by
ESLint.

## Expected Behavior

Vite config temp files should be ignored by ESLint.

## Related Issue(s)

Fixes #
2025-02-13 17:04:26 +01:00
Leosvel Pérez Espinosa
9e204f973c
feat(webpack): add option to opt out of watching buildable dependencies (#29984)
Add a `watchDependencies` options to the relevant webpack executors and
plugins to allow opting out of watching buildable dependencies.

## Current Behavior

## Expected Behavior

## Related Issue(s)

Fixes #29961
2025-02-13 17:00:54 +01:00
Craigory Coppola
9234241570
fix(testing): remove dependency on @nx/vite and @nx/webpack from @nx/playwright (#30023) 2025-02-13 15:16:31 +00:00
Isaac Mann
b5df8c25be
chore(nx-dev): webinar page styling (#30010)
Updates the /webinar page styling
2025-02-13 09:52:37 -05:00
Chau Tran
1c2d0860b5
feat(graph): update graph lib to latest nx graph (#29768) 2025-02-13 06:58:03 -06:00
Emily Xiong
b8ee838e23
fix(gradle): log gradlew output for verbose (#29966)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

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

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

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

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

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

Fixes #
2025-02-12 20:33:40 -05:00
James Henry
8b1cd482e3
fix(core): tweaks to nx init (#30002)
<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

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

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

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

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

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

Fixes #
2025-02-12 15:37:42 -05:00
Leosvel Pérez Espinosa
672318de7f
fix(core): handle nullable lock when creating project graph (#30000)
## Current Behavior

The project graph construction can throw an error when the lock is not
created:
https://github.com/nrwl/nx/issues/29821#issuecomment-2653007563.

## Expected Behavior

The project graph construction should correctly handle the nullable
lock.

## Related Issue(s)

Fixes #
2025-02-12 12:21:23 -05:00
Philip Fulcher
0ff3d70108
docs(nx-dev): add vattenfall article (#29896)
- **doccs(nx-dev): add vattenfall article**
- **feat(nx-dev): add testimonial markdown component**
2025-02-12 09:43:39 -07:00
Benjamin Cabanes
9d95520fa3
docs(nx-dev): update NxPowerpack-Trial PDF & remove old duplicate file (#30004)
The duplicate PDF file in the `docs/shared/features` directory was
removed. The updated version of `NxPowerpack-Trial-v1.1.pdf` is now
properly placed in the `public/assets/powerpack` directory.
2025-02-12 10:29:26 -05:00
Nicholas Cunningham
4e04979a36
fix(rspack): should be inferred by default (#29736)
This PR updates the Rspack Plugin to be inferred by default.

### Currently
When you generate a project using rspack it would not be inferred and
would add the executor to `project.json`.

### After
Generating a project using rspack will add it to inferred plugins inside
`nx.json` and update the `rspack.config.js` to be a standard config and
use Nx plugins.
2025-02-12 07:24:39 -07:00
Emily Xiong
7c5fcf3566
fix(gradle): fix gradle undefined dependency target (#29943)
<!-- 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 -->
got this error:
```
 NX   Cannot read properties of undefined (reading '1')

TypeError: Cannot read properties of undefined (reading '1')
    at fileDataDepTarget (/Users/emily/code/tmp/spring-boot/.nx/installation/node_modules/nx/src/config/project-graph.js:13:18)
    at ProjectGraphBuilder.calculateTargetDepsFromFiles (/Users/emily/code/tmp/spring-boot/.nx/installation/node_modules/nx/src/project-graph/project-graph-builder.js:271:74)
```

this happens because the project in the dependency file is in format
like `:spring-boot-project:spring-boot-autoconfigure (*)`. need to take
out the text after space.

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

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

Fixes #
2025-02-11 20:14:58 -05:00