nx
Nx
GitHub
Nx
Workspace
GitHub
CI Pipeline Executions
Filtered
Runs
Demo
Insights
Compare tasks
Analytics
Sign in
Toggle sidebar
Overview
⌘K
Nx
Loading workspace stats
Loading workspace insights...
Statistics interval
7 days
30 days
Latest CI Pipeline Executions
Status
Fix filter
Filter
Fuzzy
Filter range
Sort by
Sort by
Start time
Sort ascending
Sort descending
Succeeded
23.1.x
8841f1cc fix(core): keep real dependencies when omitting peers from npm temp installs (#36518) ## Current Behavior `ensurePackage` installs on-demand plugins into a temp dir. Since #36295 that install passes `--omit=peer` for npm, so peers resolve from the workspace instead of being duplicated into the temp dir. npm flags a package as a peer if **anything** in the tree peer-depends on it — a real `dependencies` edge does not clear the flag. `--omit=peer` therefore also prunes packages that are genuine dependencies of the package being installed. `@nx/detox` hard-depends on `@nx/jest` and `@nx/eslint`; `@nx/web` declares both as optional peers. So installing `@nx/detox` on npm silently drops both: ```console $ npm i -D @nx/detox@22.7.7 --omit=peer --ignore-scripts $ ls node_modules/@nx detox devkit js module-federation nx-darwin-arm64 react rollup vitest web workspace # @nx/jest and @nx/eslint are missing ``` They are still written to `package-lock.json` with `"peer": true`, are absent from `node_modules/.package-lock.json`, and the install exits 0 with no warning. Generating a React Native app with Detox then fails. Observed on 22.7.x, where `ensure-dependencies.ts` imports `@nx/jest/src/utils/versions`: ``` NX Cannot find module '@nx/jest/src/utils/versions' Require stack: - <tmp>/node_modules/@nx/detox/src/generators/application/lib/ensure-dependencies.js ``` On master the same file imports `@nx/jest/internal` instead — a different subpath of the same pruned package, so it fails the same way. This is not Detox-specific: 14 first-party plugins hard-depend on `@nx/jest` or `@nx/eslint`, and several deep-import `@nx/eslint/src/*` at runtime. Any of them fetched on demand in an npm workspace can lose a dependency it needs. ## Expected Behavior npm uses `--legacy-peer-deps` instead. That ignores `peerDependencies` — the intent of #36295 — without pruning real dependencies: ```console $ npm i -D @nx/detox@22.7.7 --legacy-peer-deps --ignore-scripts $ ls node_modules/@nx detox devkit eslint jest js module-federation nx-darwin-arm64 react rollup vite vitest web workspace ``` bun does not over-prune (verified against the same tree), so bun keeps `--omit=peer`. pnpm and yarn are unchanged. ## Related Issue(s) N/A — regression from #36295, which has not been released yet. ## Notes for reviewers **CI will not exercise this change.** Two independent reasons: 1. The macOS Detox e2e only runs when the diff touches `packages/detox`, `packages/react-native`, `packages/expo`, or their e2e projects (`scripts/check-react-native-changes.js`). #36295 touched only `packages/nx`, so the gate skipped it — and it skips this PR too. 2. Even when that job does run, master's e2e uses a shared base workspace that preinstalls the plugins (`<e2e>/nx/proj-backup/npm/node_modules/@nx/` contains detox, jest, eslint, react-native). So `ensurePackage` short-circuits on `require('@nx/detox')` and the temp-install path never executes at all. Verified locally instead. The end-to-end run was done on **22.7.x**, which has no shared base workspace and so genuinely fetches `@nx/detox` on demand — same branch, same e2e, only the flag differing: | temp dir | `node_modules/@nx/` contents | result | | --- | --- | --- | | `--omit=peer` | detox devkit js module-federation nx-darwin-arm64 react rollup vitest web workspace | 4 tests failed | | `--legacy-peer-deps` | detox devkit **eslint jest** js module-federation nx-darwin-arm64 react rollup vite vitest web workspace | 4 tests passed | `ensurePackage` never calls `cleanup()`, so these temp dirs survive and are the reliable signal — `Fetching ...` log lines are absent from passing runs either way because `runCLI` swallows child stdout on success. Also run: - `nx run e2e-detox:e2e-macos-local` on 22.7.x with this change — 2 suites / 4 tests pass - `nx test nx --testPathPatterns=src/utils/package-json.spec.ts` — passes - `tsc -p packages/nx/tsconfig.lib.json --noEmit` — clean - `nx prepush` — passes - the two `npm i` runs above, against published 22.7.7 **Needs backporting to 22.7.x**, which carries the same flag via `74311e713d` and is the active patch line. Neither line has released `--omit=peer` yet (`nx@22.7.7` still ships the old flag-less install command), so there is no user impact today. <!-- polygraph-session-start --> --- <p><picture><source media="(prefers-color-scheme: dark)" srcset="https://static.ops.cloud.nx.app/polygraph/session-logo-v4-dark.svg"><img src="https://static.ops.cloud.nx.app/polygraph/session-logo-v4-light.svg" width="16" height="22" align="middle" alt="Polygraph"></picture> <a href="https://app.trypolygraph.com/orgs/6a061dcb561c062131116eca/sessions/Fix-npm-temp-install-pruning-real-dependencies-via---omitpeer-f7aff304">View session ↗</a></p> <!-- polygraph-session-end --> --------- Co-authored-by: nx-cloud[bot] <71083854+nx-cloud[bot]@users.noreply.github.com> (cherry picked from commit 1a1fbe97eeb63d5d693a381a76c49a94cf6a6218)
by Jason Jean
J
Failed
23.1.x
8841f1cc fix(core): keep real dependencies when omitting peers from npm temp installs (#36518) ## Current Behavior `ensurePackage` installs on-demand plugins into a temp dir. Since #36295 that install passes `--omit=peer` for npm, so peers resolve from the workspace instead of being duplicated into the temp dir. npm flags a package as a peer if **anything** in the tree peer-depends on it — a real `dependencies` edge does not clear the flag. `--omit=peer` therefore also prunes packages that are genuine dependencies of the package being installed. `@nx/detox` hard-depends on `@nx/jest` and `@nx/eslint`; `@nx/web` declares both as optional peers. So installing `@nx/detox` on npm silently drops both: ```console $ npm i -D @nx/detox@22.7.7 --omit=peer --ignore-scripts $ ls node_modules/@nx detox devkit js module-federation nx-darwin-arm64 react rollup vitest web workspace # @nx/jest and @nx/eslint are missing ``` They are still written to `package-lock.json` with `"peer": true`, are absent from `node_modules/.package-lock.json`, and the install exits 0 with no warning. Generating a React Native app with Detox then fails. Observed on 22.7.x, where `ensure-dependencies.ts` imports `@nx/jest/src/utils/versions`: ``` NX Cannot find module '@nx/jest/src/utils/versions' Require stack: - <tmp>/node_modules/@nx/detox/src/generators/application/lib/ensure-dependencies.js ``` On master the same file imports `@nx/jest/internal` instead — a different subpath of the same pruned package, so it fails the same way. This is not Detox-specific: 14 first-party plugins hard-depend on `@nx/jest` or `@nx/eslint`, and several deep-import `@nx/eslint/src/*` at runtime. Any of them fetched on demand in an npm workspace can lose a dependency it needs. ## Expected Behavior npm uses `--legacy-peer-deps` instead. That ignores `peerDependencies` — the intent of #36295 — without pruning real dependencies: ```console $ npm i -D @nx/detox@22.7.7 --legacy-peer-deps --ignore-scripts $ ls node_modules/@nx detox devkit eslint jest js module-federation nx-darwin-arm64 react rollup vite vitest web workspace ``` bun does not over-prune (verified against the same tree), so bun keeps `--omit=peer`. pnpm and yarn are unchanged. ## Related Issue(s) N/A — regression from #36295, which has not been released yet. ## Notes for reviewers **CI will not exercise this change.** Two independent reasons: 1. The macOS Detox e2e only runs when the diff touches `packages/detox`, `packages/react-native`, `packages/expo`, or their e2e projects (`scripts/check-react-native-changes.js`). #36295 touched only `packages/nx`, so the gate skipped it — and it skips this PR too. 2. Even when that job does run, master's e2e uses a shared base workspace that preinstalls the plugins (`<e2e>/nx/proj-backup/npm/node_modules/@nx/` contains detox, jest, eslint, react-native). So `ensurePackage` short-circuits on `require('@nx/detox')` and the temp-install path never executes at all. Verified locally instead. The end-to-end run was done on **22.7.x**, which has no shared base workspace and so genuinely fetches `@nx/detox` on demand — same branch, same e2e, only the flag differing: | temp dir | `node_modules/@nx/` contents | result | | --- | --- | --- | | `--omit=peer` | detox devkit js module-federation nx-darwin-arm64 react rollup vitest web workspace | 4 tests failed | | `--legacy-peer-deps` | detox devkit **eslint jest** js module-federation nx-darwin-arm64 react rollup vite vitest web workspace | 4 tests passed | `ensurePackage` never calls `cleanup()`, so these temp dirs survive and are the reliable signal — `Fetching ...` log lines are absent from passing runs either way because `runCLI` swallows child stdout on success. Also run: - `nx run e2e-detox:e2e-macos-local` on 22.7.x with this change — 2 suites / 4 tests pass - `nx test nx --testPathPatterns=src/utils/package-json.spec.ts` — passes - `tsc -p packages/nx/tsconfig.lib.json --noEmit` — clean - `nx prepush` — passes - the two `npm i` runs above, against published 22.7.7 **Needs backporting to 22.7.x**, which carries the same flag via `74311e713d` and is the active patch line. Neither line has released `--omit=peer` yet (`nx@22.7.7` still ships the old flag-less install command), so there is no user impact today. <!-- polygraph-session-start --> --- <p><picture><source media="(prefers-color-scheme: dark)" srcset="https://static.ops.cloud.nx.app/polygraph/session-logo-v4-dark.svg"><img src="https://static.ops.cloud.nx.app/polygraph/session-logo-v4-light.svg" width="16" height="22" align="middle" alt="Polygraph"></picture> <a href="https://app.trypolygraph.com/orgs/6a061dcb561c062131116eca/sessions/Fix-npm-temp-install-pruning-real-dependencies-via---omitpeer-f7aff304">View session ↗</a></p> <!-- polygraph-session-end --> --------- Co-authored-by: nx-cloud[bot] <71083854+nx-cloud[bot]@users.noreply.github.com> (cherry picked from commit 1a1fbe97eeb63d5d693a381a76c49a94cf6a6218)
by Jason Jean
J
Succeeded
23.1.x
14edd805 docs(misc): audit inferred plugin options and behavior across technology pages (#36399) ## Current Behavior the technology pages drifted from what the inferred plugins actually do. matching rules, option lists, and defaults were hand-written at different times and never re-checked against `createNodes`/`createNodesV2`, so some pages list options that don't exist and omit ones that do. the jest `targetDefaults` example in the nx-json reference filters on `@nx/jest`, which matches nothing, since the filter wants the configured entry point `@nx/jest/plugin`. ## Expected Behavior each page says which identifier goes in `nx.json`, what files the plugin matches, its options and defaults, and what targets it configures, all read off plugin source instead of the previous docs. - treated the implementation and its tests as authoritative wherever they disagreed with the docs - rollup and rsbuild had no inferred-task section at all, now they do - worth a look: playwright used to say set `ciTargetName` to `false` to disable atomizer. the option is typed `string` and nothing tests `false`, though `if (options.ciTargetName)` suggests it does work in practice. i dropped that line and pointed at running the `targetName` task instead, which is not the same thing (the atomized targets still get created). put it back if someone is relying on it. - generating this from a schema is still blocked on NXC-3871, so this is the manual accuracy pass in the meantime draft because i haven't run the docs style check over the final state of all 25 pages yet. ## Related Issue(s) DOC-554 (cherry picked from commit edb7dfd9c4b55acce6df64d97517474c700f2391)
by Caleb Ukle
C
Succeeded
23.1.x
cff77e2c fix(core): bump pinned axios and brace-expansion past vulnerable versions (#36507) ## Current Behavior axios pinned at 1.16.1 and brace-expansion override at 5.0.6; both are flagged by July 2026 advisories (axios < 1.18.0, brace-expansion <= 5.0.7). ## Expected Behavior axios 1.18.1 (nx, create-nx-workspace, root, plus a pnpm override so transitive copies resolve patched too) and brace-expansion 5.0.8. No source changes. ## Related Issue(s) Fixes #36474, NXC-4739 <!-- polygraph-session-start --> --- <p><picture><source media="(prefers-color-scheme: dark)" srcset="https://static.ops.cloud.nx.app/polygraph/session-logo-v4-dark.svg"><img src="https://static.ops.cloud.nx.app/polygraph/session-logo-v4-light.svg" width="16" height="22" align="middle" alt="Polygraph"></picture> <a href="https://snapshot.app.trypolygraph.com/orgs/69cdc268b6aa527e4129c2b4/sessions/nxc-4739-66bb9743">View session ↗</a></p> <!-- polygraph-session-end --> (cherry picked from commit a6bafb5afa4f2ea2387e97a1c7bea3f1ca1efe13)
by Jack Hsu
J
Failed
23.1.x
9bcb835a fix(core): render critical-path tasks as a nested list in the job summary (#36394) ## Current Behavior In the GitHub Actions job summary, the Nx Run Report's "Speed up or split the longest tasks on the critical path" recommendation renders its task list as terminal-style rows collapsed with `<br>`: ``` - Speed up or split the longest tasks on the critical path:<br>e2e-react-native:e2e-macos-local 20m 2s<br>@nx/nx-source:populate-local-registry-storage 5m 31s ``` The rows are space-padded for terminal column alignment, but HTML collapses runs of spaces, so the rendered summary shows ragged, hard-to-read lines jammed into a single bullet. ## Expected Behavior The Markdown renderer formats the task list as a nested list under the recommendation's bullet: ``` - Speed up or split the longest tasks on the critical path: - `e2e-react-native:e2e-macos-local` — 20m 2s - `@nx/nx-source:populate-local-registry-storage` — 5m 31s ``` Structurally, the critical-path recommendation now carries its task rows as data (`RecTaskRows`) instead of a pre-joined terminal string, and each renderer formats them natively. The terminal report and the TUI popup payload output are byte-for-byte unchanged (covered by the existing tests, which pass unmodified); only the job-summary Markdown changes. ## Related Issue(s) N/A <!-- polygraph-session-start --> --- [View session information ↗](https://app.trypolygraph.com/orgs/6a061dcb561c062131116eca/sessions/Speed-up-main-macos-CI-job-parallel-e2e--drop-dead-Homebrew-cache-7918829a) <!-- polygraph-session-end --> --------- Co-authored-by: nx-cloud[bot] <71083854+nx-cloud[bot]@users.noreply.github.com> (cherry picked from commit 5c4419adef48858991fb3d23a48b74267f8a08b3)
by Jason Jean
J
Succeeded
23.1.x
a5b10cd1 chore(repo): migrate to nx 23.1.0-rc.3 (#36321)
by Jason Jean
J
Previous page
Previous
Next
Next page