feat(core)!: remove CreateNodes v1 types for Nx 22#32951
feat(core)!: remove CreateNodes v1 types for Nx 22#32951FrozenPandaz merged 23 commits intomasterfrom
Conversation
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]>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
✅ Deploy Preview for nx-docs ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
|
View your CI Pipeline Execution ↗ for commit 49ceb56
☁️ Nx Cloud last updated this comment at |
b3f1cc4 to
53214b2
Compare
4f869c8 to
49ceb56
Compare
There was a problem hiding this comment.
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:
-
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.
-
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.
-
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.
-
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.
-
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.
⚙️ An Nx Cloud workspace admin can disable these reviews in workspace settings.
There was a problem hiding this comment.
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 () => { |
There was a problem hiding this comment.
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.
| ): 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; | ||
| } |
There was a problem hiding this comment.
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.
|
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. |
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 #