Repository navigation
build: 📦 update nx to v24 - #1105
Merged
Merged
Conversation
Package updates from `nx migrate 23.3.1`, except TypeScript, which stays on 5.9.3: Angular 21 requires typescript >=5.9 <6.0. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Generated by `nx migrate --run-migrations --create-commits` (nx: 22-7-0-add-polygraph-to-git-ignore). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Generated by `nx migrate --run-migrations --create-commits` (nx: 22-7-0-add-self-healing-to-gitignore). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Generated by `nx migrate --run-migrations --create-commits` (@nx/eslint: update-executor-lint-inputs). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Generated by `nx migrate --run-migrations --create-commits` (@nx/vite: ensure-vitest-package-migration-23). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Generated by `nx migrate --run-migrations --create-commits` (nx: 23-0-0-consolidate-release-tag-config). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Generated by `nx migrate --run-migrations --create-commits` (nx: 23-0-0-add-migrate-runs-to-git-ignore). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Generated by `nx migrate --run-migrations --create-commits` (@nx/vite: migrate-to-vitest-4). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Generated by `nx migrate --run-migrations --create-commits` (@nx/eslint: update-23-1-0-convert-to-flat-config). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Generated by `nx migrate --run-migrations --create-commits` (@nx/eslint: update-23-1-0-remove-removed-typescript-eslint-extension-rules). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Generated by `nx migrate --run-migrations --create-commits` (@nx/cypress: disable-webpack-ct-just-in-time-compile). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Generated by `nx migrate --run-migrations --create-commits` (@nx/cypress: upgrade-to-cypress-16). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
- bump @typescript-eslint/* to 8.72.0: @nx/eslint-plugin 23 requires @typescript-eslint/parser ^8 - pin cypress to 16.2.0, as the repo pins its other dependencies - replace the FlatCompat shims with flat-native configs: the Angular inline-template processor already comes from nx flat/angular, Cypress from eslint-plugin-cypress/flat; drop the now unused @eslint/eslintrc and @eslint/js - turn off @typescript-eslint/no-unused-expressions, newly enabled by the typescript-eslint v8 recommended set (chai `expect(x).to.be.true`) - remove the playwright-ct-angular tests' .eslintrc.json: they have no lint target and extended the deleted root .eslintrc.json Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
- bump unplugin-swc to 1.5.11: Vite 8 transforms TypeScript with Oxc unless `oxc: false` is set, and unplugin-swc only sets it since 1.5.10. With 1.5.9, Oxc stripped the decorators before swc-angular-plugin saw them and 22 of the 25 swc-angular-wide vitest tests failed. - typecheck swc-angular's spec files with `moduleResolution: bundler`: vite 8 only exposes its types through package exports, so the vite.config.ts typecheck failed under `node`. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Package updates from `nx migrate latest`. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Generated by `nx migrate --run-migrations --create-commits` (nx: 24-0-0-enable-legacy-affected). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Generated by `nx migrate --run-migrations --create-commits` (@nx/eslint: remove-deprecated-executors). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Generated by `nx migrate --run-migrations --create-commits` (@nx/vitest: remove-deprecated-executors). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Generated by `nx migrate --run-migrations --create-commits` (@nx/vite: update-24-0-0-migrate-config-helpers). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Generated by `nx migrate --run-migrations --create-commits` (@nx/jest: remove-deprecated-executors). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Generated by `nx migrate --run-migrations --create-commits` (@nx/cypress: remove-deprecated-executors). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Generated by `nx migrate --run-migrations --create-commits` (@nx/rollup: remove-deprecated-executors). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Generated by `nx migrate --run-migrations --create-commits` (@nx/angular: update-24-0-0-add-ready-when-signal). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Generated by `nx migrate --run-migrations --create-commits` (@nx/angular: update-24-0-0-remove-scam-generator-defaults). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
- game-of-life: load jest.config.ts as ESM (`export default`). It mixed
an ESM import with `module.exports` and has failed to load since before
this upgrade. Move its test target off the removed @nx/jest:jest
executor to an explicit `jest` run-command, not to @nx/jest/plugin:
its config imports @jscutlery/swc-angular from dist/, so inferring it
breaks the project graph until swc-angular is built (e.g. on a fresh CI
checkout).
- drop the @nx/jest:jest target defaults; the filtered `test` defaults
carry them and the plugin adds jest.preset.js to the inputs
- run inferred vitest targets with `vitest run`, as the removed
@nx/vitest:test executor did, instead of watch mode
- drop swc-angular's test `config` option: the inferred target runs in
the project root, where the workspace-relative path does not resolve
- swc-angular: exclude the generated rollup.config.cjs from
@nx/dependency-checks, which otherwise wants @nx/rollup as a peer
dependency of the published package
- cypress-harness-e2e: set `baseUrl` to the sandbox dev server. The
removed @nx/cypress:cypress executor passed it from `devServerTarget`;
without it, `cy.visit('/')` hit Cypress's file server and 404ed.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
`nx migrate --run-migrations` runs `yarn` after migrations that edit package.json (e.g. @nx/vite's switch to @nx/vitest). Yarn makes installs immutable when CI is set, so the daily workflow has failed with YN0028 on every run since at least August. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Updates Nx from 22.6.1 to 24.0.1 in two steps (23.3.1, then 24.0.1). Migrations ran with
--create-commits, and each manual fix is its own commit. Easiest to review commit by commit.Migrations
@nx/js:23-1-0-add-ignore-deprecations-for-ts6was dropped: it writes"ignoreDeprecations": "6.0", which TypeScript 5.9 rejects (TS5103).Manual fixes
>=5.9 <6.0.@nx/eslint-plugin23+.FlatCompatshims are replaced with plain flat config.eslint --print-configgives identical rules before and after.@typescript-eslint/no-unused-expressionsis off, because it fires on chai'sexpect(x).to.be.true..eslintrc.jsonfiles are deleted.rollup.config.cjsis excluded from@nx/dependency-checks.tsconfig.spec.jsonusesmoduleResolution: bundler.runmode, not watch.configoption and the@nx/jest:jesttarget defaults are removed.baseUrlitself, which the old executor used to pass in.jestrun-command, because its config imports fromdist/. Itsjest.config.tsalso mixed ESM and CJS, which already broke it on main.YARN_ENABLE_IMMUTABLE_INSTALLS: falseon the migrations step. Every scheduled run since at least August failed with YN0028, becausenx migrate --run-migrationsrunsyarnwith the lockfile read-only.Other bumps pulled in by the Nx package updates
@nx/vitest,angular-eslint,typescript-eslint,rollupValidation (local)
run-many -t build lint teston 13 projects after the rebase onto main: all pass.dist/packages/*/package.jsonand file list is identical to the Nx 22 build. The operators and playwright-ct-angular JS is byte-identical to what's on npm.nx release --dry-runworks on Nx 24.adjustSemverBumpsForZeroMajorVersion(build: bump 0.x versions by minor for breaking changes #1104) is already the Nx 23+ default.Follow-ups
🤖 Generated with Claude Code