Skip to content

Bump typescript to 6.0.2, ts-jest to 29.4.9, eslint to 10.1.0, typescript-eslint to 8.58.0, and eslint-plugin-import-x to 4.16.2 - #1700

Merged
Fan Yang (fanyang-mono) merged 7 commits into
mainfrom
copilot/bump-typescript-versions
Apr 3, 2026
Merged

Bump typescript to 6.0.2, ts-jest to 29.4.9, eslint to 10.1.0, typescript-eslint to 8.58.0, and eslint-plugin-import-x to 4.16.2#1700
Fan Yang (fanyang-mono) merged 7 commits into
mainfrom
copilot/bump-typescript-versions

Conversation

Copilot AI commented Apr 3, 2026

Copy link
Copy Markdown
Contributor

Modernizes the TypeScript toolchain across the repo. Key blocker: ts-jest <29.4.7 declared typescript: ">=4.3 <6" as a peer dep, making TypeScript 6.x incompatible — 29.4.7 extended that range to <7.

Changes

  • typescript6.0.2 across all packages (tests/, scripts/, dashboard/, dashboard/api/)
  • ts-jest^29.4.9 in tests/ (first version with TypeScript 6.x peer dep support)
  • eslint^10.1.0 and @eslint/js^10.0.0 in tests/ (already at this level in scripts/)
  • typescript-eslint^8.58.0 in tests/ and scripts/
  • eslint-plugin-import replaced with eslint-plugin-import-x@^4.16.2 in tests/ — the v2.x line only declares eslint ≤9 peer dependency support; eslint-plugin-import-x is the maintained fork that supports eslint 8/9/10
  • eslint-import-resolver-typescript@^4.4.4 added to tests/ for TypeScript module resolution with the new plugin
  • engines field added to tests/package.json (^20.19.0 || ^22.13.0 || >=24) matching scripts/package.json, making the Node.js version requirement explicit for contributors and CI

TypeScript 6 compatibility fix

TypeScript 6 no longer auto-resolves @types/node for node: protocol imports — it now requires an explicit types declaration. Added to scripts/tsconfig.json:

"types": ["node"]

Without this, the compiler emits TS2591 on every node:* import and TS2503 on NodeJS.* namespace references.

ESLint config update

tests/eslint.config.mjs updated to import from eslint-plugin-import-x and use the import-x/ rule prefix. The no-unused-modules rule includes suppressMissingFileEnumeratorAPIWarning: true since ESLint 10 removed the FileEnumerator API that rule depends on.

…8.0, eslint to 10.1.0

Agent-Logs-Url: https://github.com/microsoft/GitHub-Copilot-for-Azure/sessions/d3e12f48-eef0-4bdd-b35b-2b79f79d6c46

Co-authored-by: fanyang-mono <52458914+fanyang-mono@users.noreply.github.com>
Copilot AI changed the title [WIP] Bump TypeScript, ts-jest and typescript-eslint versions Bump typescript to 6.0.2, ts-jest to 29.4.9, eslint to 10.1.0, and typescript-eslint to 8.58.0 Apr 3, 2026
@fanyang-mono

Copy link
Copy Markdown
Contributor

Copilot bump the version of eslint-plugin-import to the one which works with @eslint/js: 10.0.0

Copilot AI commented Apr 3, 2026

Copy link
Copy Markdown
Contributor Author

Copilot bump the version of eslint-plugin-import to the one which works with @eslint/js: 10.0.0

Done in 435dcfc. eslint-plugin-import v2.x only supports eslint ≤9, so it's been replaced with eslint-plugin-import-x@^4.16.2 (a maintained fork that supports eslint 8/9/10) along with eslint-import-resolver-typescript@^4.4.4 for TypeScript resolution. The eslint config import and rule prefix were updated from import/import-x/.

Copilot AI changed the title Bump typescript to 6.0.2, ts-jest to 29.4.9, eslint to 10.1.0, and typescript-eslint to 8.58.0 Bump typescript to 6.0.2, ts-jest to 29.4.9, eslint to 10.1.0, typescript-eslint to 8.58.0, and eslint-plugin-import-x to 4.16.2 Apr 3, 2026
@fanyang-mono
Fan Yang (fanyang-mono) marked this pull request as ready for review April 3, 2026 17:05
Copilot AI review requested due to automatic review settings April 3, 2026 17:05
@fanyang-mono

Copy link
Copy Markdown
Contributor

Testing result that I ran from vscode copilot

Changes Tested:
TypeScript: 5.3.3 → 6.0.2
ESLint: 9.0.0 → 10.1.0
ts-jest: 29.1.2 → 29.4.9
typescript-eslint: 8.57.1 → 8.58.0
eslint-plugin-import replaced with eslint-plugin-import-x 4.16.2
Added tsconfig.json "types": ["node"] configuration
Test Results:
✅ TypeScript Compilation - All files compile successfully with TypeScript 6.0.2

tests/ - No errors
scripts/ - No errors
dashboard/ - No errors
✅ ESLint 10 - Linting works correctly with new version

Only 13 pre-existing warnings about any types in scripts/
ESLint 10's import-x plugin working properly
FileEnumerator API warning suppression configured correctly
✅ Unit Tests (Jest + ts-jest 29.4.9)

69 test suites passed
1,692 tests passed
68 snapshots passed
✅ Vitest Tests (scripts directory)

27 test files passed
452 tests passed
⚠️ Integration Tests - 42 tests failing in azure-deploy

These failures are pre-existing (verified by testing main branch)
Same failures occur on main branch
Not related to the TypeScript/ESLint upgrade
Conclusion:
The TypeScript 6.0.2, ESLint 10, and related dependency upgrades are working perfectly. All compilation, linting, and test infrastructure is functioning correctly with the new versions. The branch is ready to merge! 🚀

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Modernizes the repo’s TypeScript + lint/test toolchain to support TypeScript 6.x (notably aligning ts-jest with the expanded TS peer range) and updates ESLint configuration to use the maintained eslint-plugin-import-x fork for ESLint 10 compatibility.

Changes:

  • Bump TypeScript to 6.0.2 across packages and upgrade ts-jest in tests/ to a TS 6–compatible version.
  • Upgrade tests/ lint stack to ESLint 10 and switch from eslint-plugin-import to eslint-plugin-import-x (+ add TS resolver).
  • Add explicit Node typings in scripts/tsconfig.json to restore node:* import / NodeJS.* namespace type resolution under TypeScript 6.

Reviewed changes

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

Show a summary per file
File Description
tests/package.json Updates ESLint/TS toolchain deps (ESLint 10, import-x, ts-jest, TS 6).
tests/package-lock.json Lockfile refresh for upgraded ESLint/TS dependencies and new resolver/plugin packages.
tests/eslint.config.mjs Switches import plugin to eslint-plugin-import-x and updates rule prefix/config for ESLint 10.
scripts/tsconfig.json Adds types: ["node"] to fix TS 6 behavior with node: imports and NodeJS namespace types.
scripts/package.json Updates TypeScript + typescript-eslint versions used by repo tooling scripts.
scripts/package-lock.json Lockfile refresh for the updated TS/TypeScript-ESLint versions in scripts/.
dashboard/package.json Pins TypeScript to 6.0.2 for the dashboard package.
dashboard/package-lock.json Lockfile refresh for the dashboard TypeScript bump.
dashboard/api/package.json Pins TypeScript to 6.0.2 for the dashboard API package.
dashboard/api/package-lock.json Lockfile refresh for the dashboard API TypeScript bump.
Files not reviewed (3)
  • dashboard/api/package-lock.json: Language not supported
  • dashboard/package-lock.json: Language not supported
  • scripts/package-lock.json: Language not supported

Comment thread tests/package.json
Comment thread scripts/package.json Outdated
@fanyang-mono

Copy link
Copy Markdown
Contributor

Launched dashboard locally with this change. It launched well. This PR is ready for review.

kvenkatrajan
kvenkatrajan previously approved these changes Apr 3, 2026
Fan Yang (fanyang-mono) and others added 2 commits April 3, 2026 13:25
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@fanyang-mono
Fan Yang (fanyang-mono) merged commit ec7d38c into main Apr 3, 2026
11 checks passed
@fanyang-mono
Fan Yang (fanyang-mono) deleted the copilot/bump-typescript-versions branch April 3, 2026 17:47
Barbara 4bes (Ba4bes) pushed a commit to Ba4bes/GitHub-Copilot-for-Azure that referenced this pull request Apr 24, 2026
…ript-eslint to 8.58.0, and eslint-plugin-import-x to 4.16.2 (microsoft#1700)

* Initial plan

* Bump typescript to 6.0.2, ts-jest to 29.4.9, typescript-eslint to 8.58.0, eslint to 10.1.0

Agent-Logs-Url: https://github.com/microsoft/GitHub-Copilot-for-Azure/sessions/d3e12f48-eef0-4bdd-b35b-2b79f79d6c46

Co-authored-by: fanyang-mono <52458914+fanyang-mono@users.noreply.github.com>

* Replace eslint-plugin-import with eslint-plugin-import-x for eslint 10 compatibility

Agent-Logs-Url: https://github.com/microsoft/GitHub-Copilot-for-Azure/sessions/ff18e4ac-1c62-4497-af0e-afa7d1768ea7

Co-authored-by: fanyang-mono <52458914+fanyang-mono@users.noreply.github.com>

* Add comment explaining suppressMissingFileEnumeratorAPIWarning option

Agent-Logs-Url: https://github.com/microsoft/GitHub-Copilot-for-Azure/sessions/ff18e4ac-1c62-4497-af0e-afa7d1768ea7

Co-authored-by: fanyang-mono <52458914+fanyang-mono@users.noreply.github.com>

* Add engines field to tests/package.json matching scripts/package.json

Agent-Logs-Url: https://github.com/microsoft/GitHub-Copilot-for-Azure/sessions/2d4e94d5-8a06-4a03-a9a8-8c7bc1c9c184

Co-authored-by: fanyang-mono <52458914+fanyang-mono@users.noreply.github.com>

* Update scripts/package.json

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: fanyang-mono <52458914+fanyang-mono@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Bump typescript, ts-jest and typescript-eslint versions

5 participants