Skip to content

feat(core)!: remove CreateNodes v1 types for Nx 22#32951

Merged
FrozenPandaz merged 23 commits intomasterfrom
v22-create-nodes
Oct 7, 2025
Merged

feat(core)!: remove CreateNodes v1 types for Nx 22#32951
FrozenPandaz merged 23 commits intomasterfrom
v22-create-nodes

Conversation

@AgentEnder
Copy link
Copy Markdown
Member

Remove the old CreateNodes v1 signature and related types from the public API.
This standardizes on CreateNodesV2 as the primary interface.

Related to Nx 22 createNodes v2 compatibility work.

🤖 Generated with Claude Code

Co-Authored-By: Claude [email protected]

Current Behavior

Expected Behavior

Related Issue(s)

Fixes #

AgentEnder and others added 19 commits October 3, 2025 10:34
Remove the old CreateNodes v1 signature and related types from the public API.
This standardizes on CreateNodesV2 as the primary interface.

Related to Nx 22 createNodes v2 compatibility work.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Update @nx/playwright plugin to use CreateNodesV2 signature as the primary export.
The createNodes export now uses CreateNodesV2 type, with createNodesV2 as an alias
for backward compatibility.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Update @nx/jest plugin to use CreateNodesV2 signature as the primary export.
The createNodes export now uses CreateNodesV2 type, with createNodesV2 as an alias
for backward compatibility.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Update @nx/eslint plugin to use CreateNodesV2 signature as the primary export.
The createNodes export now uses CreateNodesV2 type, with createNodesV2 as an alias
for backward compatibility.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Update @nx/cypress plugin to use CreateNodesV2 signature as the primary export.
The createNodes export now uses CreateNodesV2 type, with createNodesV2 as an alias
for backward compatibility.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Update @nx/vite plugin to use CreateNodesV2 signature as the primary export.
The createNodes export now uses CreateNodesV2 type, with createNodesV2 as an alias
for backward compatibility.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Update @nx/next plugin to use CreateNodesV2 signature as the primary export.
The createNodes export now uses CreateNodesV2 type, with createNodesV2 as an alias
for backward compatibility.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Update @nx/webpack plugin to use CreateNodesV2 signature as the primary export.
The createNodes export now uses CreateNodesV2 type, with createNodesV2 as an alias
for backward compatibility.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Update @nx/storybook plugin to use CreateNodesV2 signature as the primary export.
The createNodes export now uses CreateNodesV2 type, with createNodesV2 as an alias
for backward compatibility.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Update @nx/rollup plugin to use CreateNodesV2 signature as the primary export.
The createNodes export now uses CreateNodesV2 type, with createNodesV2 as an alias
for backward compatibility.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Update @nx/remix plugin to use CreateNodesV2 signature as the primary export.
The createNodes export now uses CreateNodesV2 type, with createNodesV2 as an alias
for backward compatibility.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Update @nx/react-native plugin to use CreateNodesV2 signature as the primary export.
The createNodes export now uses CreateNodesV2 type, with createNodesV2 as an alias
for backward compatibility.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Update @nx/nuxt plugin to use CreateNodesV2 signature as the primary export.
The createNodes export now uses CreateNodesV2 type, with createNodesV2 as an alias
for backward compatibility.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Update @nx/expo plugin to use CreateNodesV2 signature as the primary export.
The createNodes export now uses CreateNodesV2 type, with createNodesV2 as an alias
for backward compatibility.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Update @nx/detox plugin to use CreateNodesV2 signature as the primary export.
The createNodes export now uses CreateNodesV2 type, with createNodesV2 as an alias
for backward compatibility.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Complete the transition to CreateNodesContextV2 by updating all remaining
internal function signatures that still referenced the old CreateNodesContext type.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Remove unused calculateHashForCreateNodes import that is no longer needed after
migrating to CreateNodesV2 as the primary API.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
@vercel
Copy link
Copy Markdown

vercel bot commented Oct 3, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Preview Updated (UTC)
nx-dev Ready Ready Preview Oct 6, 2025 2:50pm

@netlify
Copy link
Copy Markdown

netlify bot commented Oct 3, 2025

Deploy Preview for nx-docs ready!

Name Link
🔨 Latest commit 49ceb56
🔍 Latest deploy log https://app.netlify.com/projects/nx-docs/deploys/68e3d37f20929f0008952916
😎 Deploy Preview https://deploy-preview-32951--nx-docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@AgentEnder AgentEnder changed the title feat(core): remove CreateNodes v1 types for Nx 22 feat(core)!: remove CreateNodes v1 types for Nx 22 Oct 3, 2025
@nx-cloud
Copy link
Copy Markdown
Contributor

nx-cloud bot commented Oct 3, 2025

View your CI Pipeline Execution ↗ for commit 49ceb56

Command Status Duration Result
nx affected --targets=lint,test,test-kt,build,e... ✅ Succeeded 5m 49s View ↗
nx run-many -t check-imports check-commit check... ✅ Succeeded 2m 28s View ↗
nx-cloud record -- nx-cloud conformance:check ✅ Succeeded 2s View ↗
nx-cloud record -- nx format:check ✅ Succeeded 10s View ↗
nx-cloud record -- nx sync:check ✅ Succeeded 7s View ↗
nx documentation ✅ Succeeded 2m 4s View ↗
nx affected -t e2e-macos-local --parallel=1 --b... ✅ Succeeded 14m 28s View ↗

☁️ Nx Cloud last updated this comment at 2025-10-06 17:12:58 UTC

nx-cloud[bot]

This comment was marked as outdated.

nx-cloud[bot]

This comment was marked as outdated.

Copy link
Copy Markdown
Contributor

@nx-cloud nx-cloud bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nx Cloud has identified a possible root cause for your failed CI:

The test failure in e2e-js:e2e-ci--src/js-executor-prune-lockfile.test.ts is classified as environment_state for the following reasons:

  1. No logical connection between PR changes and failure: The PR changes include CI workflow configuration updates, removal of JavaScript search tracking code, and documentation updates (reverting ESLint flat config examples to legacy format). None of these changes would affect yarn's ability to install dependencies during workspace creation in an e2e test.

  2. Yarn-specific installation failure: The error "Failed to install dependencies with yarn" with exit code 1 and log file reference indicates an external dependency installation problem. The test successfully passed with pnpm and npm package managers, isolating this to a yarn-specific issue.

  3. No similar failures in baseline: The similar_task_failures section shows an empty task_outputs_in_another_branch for the master branch, indicating this is not a pre-existing or recurring issue with the test itself.

  4. External dependency: The failure occurs during "npx --yes [email protected]" execution when yarn attempts to install dependencies. This relies on:

    • Network connectivity to yarn registry
    • Availability of the yarn package registry
    • Proper yarn binary execution
      All of these are external environmental factors beyond the control of the code changes.
  5. Transient failure pattern: Installation failures with specific package managers are classic examples of environment_state issues, often caused by temporary registry outages, network timeouts, rate limiting, or corrupted caches.

No code changes are warranted. This is a transient environmental issue that should resolve on retry or when the external yarn registry/network conditions improve.

A code change would likely not resolve this issue, so no action was taken.

Nx CloudView in Nx Cloud ↗


⚙️ An Nx Cloud workspace admin can disable these reviews in workspace settings.

@AgentEnder AgentEnder marked this pull request as ready for review October 6, 2025 19:18
@AgentEnder AgentEnder requested a review from Copilot October 7, 2025 14:12
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR removes the deprecated CreateNodes v1 types and signatures from the Nx public API, standardizing on CreateNodesV2 as the primary interface. This is part of preparing for Nx 22 where only the v2 API will be supported.

  • Removes CreateNodes v1 types and deprecation warnings from plugin implementations
  • Updates all plugin files to use CreateNodesV2 as the primary export with v1 compatibility aliases
  • Updates internal utilities and type signatures to only support CreateNodesContextV2

Reviewed Changes

Copilot reviewed 61 out of 61 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
packages//plugins/.ts Replaced deprecated CreateNodes v1 implementations with CreateNodesV2, added compatibility aliases
packages/nx/src/project-graph/plugins/public-api.ts Removed CreateNodes v1 types and CreateNodesContext interface
packages/nx/src/devkit-exports.ts Removed CreateNodes v1 type exports
packages/*/spec.ts files Updated test contexts to use CreateNodesContextV2 and removed configFiles property
utility functions Updated function signatures to only accept CreateNodesContextV2

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

let configFiles: string[];

beforeEach(() => {
beforeEach(async () => {
Copy link

Copilot AI Oct 7, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The beforeEach function was changed to async but the corresponding changes to await the applyFilesToTempFsAndContext calls maintain consistency. This is a good practice for async test setup.

Copilot uses AI. Check for mistakes.
Comment on lines +5709 to 5716
): Promise<string[]> {
await tempFs.createFiles(fileSys);
// @ts-expect-error update otherwise readonly property for testing
context.configFiles = Object.keys(fileSys).filter((file) =>
const configFiles = Object.keys(fileSys).filter((file) =>
picomatch(createNodesV2[0], { dot: true })(file)
);
setupWorkspaceContext(tempFs.tempDir);
return configFiles;
}
Copy link

Copilot AI Oct 7, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The applyFilesToTempFsAndContext function now returns configFiles array instead of mutating the context object, which is a cleaner approach that avoids side effects and makes the function more functional.

Copilot uses AI. Check for mistakes.
@FrozenPandaz FrozenPandaz merged commit b96cfd3 into master Oct 7, 2025
20 of 22 checks passed
@FrozenPandaz FrozenPandaz deleted the v22-create-nodes branch October 7, 2025 19:22
@github-actions
Copy link
Copy Markdown
Contributor

This pull request has already been merged/closed. If you experience issues related to these changes, please open a new issue referencing this pull request.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Oct 13, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants