nrwl / nx

Smart Monorepos · Fast CI
https://nx.dev
MIT License
23.28k stars 2.32k forks source link

Can't migrate to nx 14 (uses angular devkit in non-angular repo) #11970

Closed cyrus-za closed 2 years ago

cyrus-za commented 2 years ago

I upgraded from nx 13.8.3 to 14.7.3 by running nx migrate latest

It successfully ran the first migration, but then failed when it tried to run update-cypress-if-v10 (cypress is currently on v7.7.0)

The error seems to be due to it wanting to use angular devkit, despite not using angular in this repo. Should it not use @nrwl/nx-devkit or something?

Output logs

>  NX   Running migrations from 'migrations.json'

Please run yarn to ensure the correct version of Nx is installed.

 >  NX   Failed to run update-cypress-if-v10 from @nrwl/cypress. This workspace is NOT up to date!

 >  NX   Cannot find module '@angular-devkit/schematics'

   Require stack:
   - /node_modules/@nrwl/workspace/src/utils/ast-utils.js
   - /node_modules/@nrwl/workspace/src/utils/project-type.js
   - /node_modules/@nrwl/workspace/index.js
   - /node_modules/@nrwl/cypress/src/migrations/update-14-7-0/update-cypress-version-if-10.js
   - /private/var/folders/cv/rw2kbr2n4qgbc6n_jt_xb9kc0000gn/T/tmp-14591-2125504jYXn6/node_modules/nx/src/command-line/migrate.js
   - /private/var/folders/cv/rw2kbr2n4qgbc6n_jt_xb9kc0000gn/T/tmp-14591-2125504jYXn6/node_modules/nx/src/command-line/nx-commands.js
   - /private/var/folders/cv/rw2kbr2n4qgbc6n_jt_xb9kc0000gn/T/tmp-14591-2125504jYXn6/node_modules/nx/bin/init-local.js
   - /private/var/folders/cv/rw2kbr2n4qgbc6n_jt_xb9kc0000gn/T/tmp-14591-2125504jYXn6/node_modules/nx/bin/nx.js
   Pass --verbose to see the stacktrace.

Command failed: /var/folders/cv/rw2kbr2n4qgbc6n_jt_xb9kc0000gn/T/tmp-14591-2125504jYXn6/node_modules/.bin/nx _migrate --run-migrations

migrations.json

{
  "migrations": [
    {
      "cli": "nx",
      "version": "14.0.6",
      "description": "Remove root property from project.json files",
      "implementation": "./src/migrations/update-14-0-6/remove-roots",
      "package": "nx",
      "name": "14-0-6-remove-root"
    },
    {
      "cli": "nx",
      "version": "14.2.0-beta.0",
      "description": "Add JSON Schema to Nx configuration files",
      "implementation": "./src/migrations/update-14-2-0/add-json-schema",
      "package": "nx",
      "name": "14-2-0-add-json-schema"
    },
    {
      "cli": "nx",
      "version": "14.2.0-beta.0",
      "description": "Remove default collection from configuration to switch to prompts for collection",
      "implementation": "./src/migrations/update-14-2-0/remove-default-collection",
      "package": "nx",
      "name": "14-2-0-remove-default-collection"
    },
    {
      "cli": "nx",
      "version": "14.2.0-beta.5",
      "description": "Replace all ./ and ../ in outputs with absolute paths",
      "implementation": "./src/migrations/update-14-2-0/replace-all-relative-outputs-with-absolute",
      "package": "nx",
      "name": "14-2-0-replace-relative-outputs-with-absolute"
    },
    {
      "cli": "nx",
      "version": "14.3.4-beta.1",
      "description": "Replace targetDependencies with targetDefaults",
      "implementation": "./src/migrations/update-14-3-4/create-target-defaults",
      "package": "nx",
      "name": "14.3.4-create-target-defaults"
    },
    {
      "version": "13.9.0-beta.0",
      "description": "Replace @nrwl/tao with nx",
      "cli": "nx",
      "implementation": "./src/migrations/update-13-9-0/replace-tao-with-nx",
      "package": "@nrwl/workspace",
      "name": "13-9-0-replace-tao-with-nx"
    },
    {
      "version": "13.10.0-beta.0",
      "description": "Update the decorate-angular-cli script to require nx instead of @nrwl/cli",
      "cli": "nx",
      "implementation": "./src/migrations/update-13-10-0/update-decorate-cli",
      "package": "@nrwl/workspace",
      "name": "13-10-0-update-decorate-cli"
    },
    {
      "version": "13.10.0-beta.0",
      "description": "Update the tasks runner property to import it from the nx package instead of @nrwl/worksapce",
      "cli": "nx",
      "implementation": "./src/migrations/update-13-10-0/update-tasks-runner",
      "package": "@nrwl/workspace",
      "name": "13-10-0-update-tasks-runner"
    },
    {
      "version": "14.0.0-beta.0",
      "description": "Changes the presets in nx.json to come from the nx package",
      "cli": "nx",
      "implementation": "./src/migrations/update-14-0-0/change-nx-json-presets",
      "package": "@nrwl/workspace",
      "name": "14-0-0-change-nx-json-presets"
    },
    {
      "version": "14.0.0-beta.0",
      "description": "Migrates from @nrwl/workspace:run-script to nx:run-script",
      "cli": "nx",
      "implementation": "./src/migrations/update-14-0-0/change-npm-script-executor",
      "package": "@nrwl/workspace",
      "name": "14-0-0-change-npm-script-executor"
    },
    {
      "version": "14.2.0",
      "description": "Explicitly enable sourceAnalysis for all workspaces extending from npm.json or core.json (this was default behavior prior to 14.2)",
      "cli": "nx",
      "implementation": "./src/migrations/update-14-2-0/enable-source-analysis",
      "package": "@nrwl/workspace",
      "name": "14-2-0-enable-source-analysis"
    },
    {
      "cli": "nx",
      "version": "14.6.1-beta.0",
      "description": "Change Cypress e2e and component testing presets to use __filename instead of __dirname and include a devServerTarget for component testing.",
      "factory": "./src/migrations/update-14-6-1/update-cypress-configs-presets",
      "package": "@nrwl/cypress",
      "name": "update-cypress-configs-preset"
    },
    {
      "cli": "nx",
      "version": "14.7.0-beta.0",
      "description": "Update Cypress if using v10 to support latest component testing features",
      "factory": "./src/migrations/update-14-7-0/update-cypress-version-if-10",
      "package": "@nrwl/cypress",
      "name": "update-cypress-if-v10"
    },
    {
      "version": "14.0.0-beta.2",
      "cli": "nx",
      "description": "Update move jest config files to .ts files.",
      "factory": "./src/migrations/update-14-0-0/update-jest-config-ext",
      "package": "@nrwl/jest",
      "name": "update-jest-config-extensions"
    },
    {
      "version": "14.1.5-beta.0",
      "cli": "nx",
      "description": "Update to export default in jest config and revert jest.preset.ts to jest.preset.js",
      "factory": "./src/migrations/update-14-1-5/update-exports-jest-config",
      "package": "@nrwl/jest",
      "name": "update-to-export-default"
    },
    {
      "version": "14.5.5-beta.0",
      "cli": "nx",
      "description": "Exclude jest.config.ts from tsconfig where missing.",
      "factory": "./src/migrations/update-14-0-0/update-jest-config-ext",
      "package": "@nrwl/jest",
      "name": "exclude-jest-config-from-ts-config"
    },
    {
      "version": "14.6.0-beta.0",
      "cli": "nx",
      "description": "Update jest configs to support jest 28 changes (https://jestjs.io/docs/upgrading-to-jest28#configuration-options)",
      "factory": "./src/migrations/update-14-6-0/update-configs-jest-28",
      "package": "@nrwl/jest",
      "name": "update-configs-jest-28"
    },
    {
      "version": "14.6.0-beta.0",
      "cli": "nx",
      "description": "Update jest test files  to support jest 28 changes (https://jestjs.io/docs/upgrading-to-jest28)",
      "factory": "./src/migrations/update-14-6-0/update-tests-jest-28",
      "package": "@nrwl/jest",
      "name": "update-tests-jest-28"
    },
    {
      "cli": "nx",
      "version": "14.0.0-beta.0",
      "description": "Add a default development configuration for build and serve targets.",
      "factory": "./src/migrations/update-14-0-0/add-default-development-configurations",
      "package": "@nrwl/next",
      "name": "add-default-development-configurations-14.0.0"
    },
    {
      "cli": "nx",
      "version": "14.4.3-beta.0",
      "description": "Add a development outputPath to avoid conflict with the production build.",
      "factory": "./src/migrations/update-14-4-3/add-dev-output-path",
      "package": "@nrwl/next",
      "name": "add-dev-output-path"
    },
    {
      "cli": "nx",
      "version": "14.5.3-beta.0",
      "description": "Add .next folder to gitignore.",
      "factory": "./src/migrations/update-14-5-3/add-gitignore-entry",
      "package": "@nrwl/next",
      "name": "add-gitignore-entry"
    },
    {
      "cli": "nx",
      "version": "14.5.3-beta.0",
      "description": "Update development outputPath to the project root.",
      "factory": "./src/migrations/update-14-5-3/update-dev-output-path",
      "package": "@nrwl/next",
      "name": "update-dev-output-path"
    },
    {
      "cli": "nx",
      "version": "13.8.5-beta.1",
      "description": "Renames @nrwl/node:build to @nrwl/node:webpack",
      "factory": "./src/migrations/update-13-8-5/rename-build-to-webpack",
      "package": "@nrwl/node",
      "name": "rename-build-to-webpack"
    },
    {
      "cli": "nx",
      "version": "13.8.5-beta.1",
      "description": "Renames @nrwl/node:execute to @nrwl/node:node",
      "factory": "./src/migrations/update-13-8-5/rename-execute-to-node",
      "package": "@nrwl/node",
      "name": "rename-execute-to-node"
    },
    {
      "cli": "nx",
      "version": "13.8.5-beta.1",
      "description": "Renames @nrwl/node:package to @nrwl/js:tsc",
      "factory": "./src/migrations/update-13-8-5/update-package-to-tsc",
      "package": "@nrwl/node",
      "name": "update-package-to-tsc"
    },
    {
      "cli": "nx",
      "version": "13.10.0-beta.0",
      "description": "Update to React 18",
      "factory": "./src/migrations/update-13-10-0/update-13-10-0",
      "package": "@nrwl/react",
      "name": "update-react-18-13.10.0"
    },
    {
      "cli": "nx",
      "version": "14.0.0-beta.0",
      "description": "Update to React DOM render call to React 18 API.",
      "factory": "./src/migrations/update-14-0-0/update-react-dom-render-for-v18",
      "package": "@nrwl/react",
      "name": "update-react-dom-render-14.0.0"
    },
    {
      "cli": "nx",
      "version": "14.0.0-beta.0",
      "description": "Replace deprecated '@testing-library/react-hook' package with `renderHook` from '@testing-library/react'.",
      "factory": "./src/migrations/update-14-0-0/replace-testing-library-react-hook",
      "package": "@nrwl/react",
      "name": "replace-testing-library-react-hook-14.0.0"
    },
    {
      "cli": "nx",
      "version": "14.0.0-beta.0",
      "description": "Add a default development configuration for build and serve targets.",
      "factory": "./src/migrations/update-14-0-0/add-default-development-configurations",
      "package": "@nrwl/react",
      "name": "add-default-development-configurations-14.0.0"
    },
    {
      "cli": "nx",
      "version": "14.1.0-beta.0",
      "description": "Update external option in projects for Emotion",
      "factory": "./src/migrations/update-14-1-0/update-external-emotion-jsx-runtime",
      "package": "@nrwl/react",
      "name": "update-external-emotion-jsx-runtime-14.1.0"
    },
    {
      "cli": "nx",
      "version": "14.6.0-beta.0",
      "description": "Update babel-jest to include the @nrwl/react/babel preset in project jest config",
      "factory": "./src/migrations/update-14-6-0/add-preset-jest-config",
      "package": "@nrwl/react",
      "name": "update-babel-jest-transform-option"
    },
    {
      "version": "14.0.0",
      "cli": "nx",
      "description": "Migrate Storybook to v6",
      "factory": "./src/migrations/update-14-0-0/migrate-to-storybook-6",
      "package": "@nrwl/storybook",
      "name": "update-14.0.0"
    },
    {
      "version": "14.1.8",
      "cli": "nx",
      "description": "Change storybook targets for Angular projects to use @storybook/angular executors",
      "factory": "./src/migrations/update-14-1-8/change-storybook-targets",
      "package": "@nrwl/storybook",
      "name": "update-14.1.8"
    },
    {
      "cli": "nx",
      "version": "13.8.5-beta.1",
      "description": "Renames @nrwl/js:node to @nrwl/node:node",
      "factory": "./src/migrations/update-13-8-5/update-node-executor",
      "package": "@nrwl/js",
      "name": "update-node-executor"
    },
    {
      "cli": "nx",
      "version": "13.8.5-beta.1",
      "description": "Adjust .swcrc to .lib.swcrc",
      "factory": "./src/migrations/update-13-8-5/update-swcrc",
      "package": "@nrwl/js",
      "name": "update-swcrc"
    },
    {
      "cli": "nx",
      "version": "13.10.1-beta.1",
      "description": "Update .lib.swcrc to exclude missing test files",
      "factory": "./src/migrations/update-13-10-1/update-lib-swcrc-exclude",
      "package": "@nrwl/js",
      "name": "update-swcrc-exclude"
    },
    {
      "cli": "nx",
      "version": "14.0.0-beta.2",
      "description": "Exclude jest config from .lib.swcrc",
      "factory": "./src/migrations/update-14-0-0/exclude-jest-config-swcrc",
      "package": "@nrwl/js",
      "name": "exclude-jest-config-swcrc"
    },
    {
      "cli": "nx",
      "version": "14.1.5-beta.0",
      "description": "Rename option swcrcPath to swcrc, and resolve relative to workspace root",
      "factory": "./src/migrations/update-14.1.5-beta.0/update-swcrc-path",
      "package": "@nrwl/js",
      "name": "update-swcrc-path"
    }
  ]
}
juristr commented 2 years ago

Might be already fixed by #11961. We can cut a patch tomorrow.

juristr commented 2 years ago

We just released 14.7.4, so this should be fixed now.

github-actions[bot] commented 1 year ago

This issue has been closed for more than 30 days. If this issue is still occuring, please open a new issue with more recent context.