Skip to content

chore(maintenance): 🤖 upgrade typescript to v6#942

Draft
punkbit wants to merge 1 commit intomainfrom
chore/upgrade-typescript-v6
Draft

chore(maintenance): 🤖 upgrade typescript to v6#942
punkbit wants to merge 1 commit intomainfrom
chore/upgrade-typescript-v6

Conversation

@punkbit
Copy link
Collaborator

@punkbit punkbit commented Mar 24, 2026

Why?

Upgrade Typescript to latest release v6 as announced https://devblogs.microsoft.com/typescript/announcing-typescript-6-0

⚠️ In quarantine for some time, e.g. awaits @typescript-eslint/eslint-plugin support for v6. Isn't it redundant since there's a concurrent ""typescript-eslint": "^8""? See #943

How?

  • NPM package update

Preview?

N/A

@changeset-bot
Copy link

changeset-bot bot commented Mar 24, 2026

⚠️ No Changeset found

Latest commit: ddc48a8

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@github-actions
Copy link

github-actions bot commented Mar 24, 2026

Claude finished @punkbit's task in 1m 46s —— View job


PR Review

  • Gather context
  • Review changes
  • Post findings

Thanks for the proactive upgrade! The PR is clean and minimal (just package.json + yarn.lock). The PR description is honest about the risk, but digging into the lock file surfaces a concrete compatibility blocker.


🚨 Must Fix

  • @typescript-eslint peer dependency incompatibility: Both typescript-eslint@8.52.0 and @typescript-eslint/eslint-plugin@8.57.2 declare typescript: ">=4.8.4 <6.0.0" in their peer dependencies — TypeScript 6 is explicitly excluded. This is the risk the PR description flags, and it's a real one: linting may fail at CI or silently regress (type-aware rules broken).

    "typescript-eslint@npm:^8":         peerDeps → typescript: ">=4.8.4 <6.0.0"
    "@typescript-eslint/eslint-plugin": peerDeps → typescript: ">=4.8.4 <6.0.0"
    

    Support for TypeScript 6 lands in typescript-eslint@v9 (currently in beta). Until then, merging this will produce peer dependency warnings at minimum and potentially broken type-aware lint rules at worst.

  • Version split between typescript-eslint and @typescript-eslint/eslint-plugin: The meta package typescript-eslint@^8 resolves to 8.52.0, but @typescript-eslint/eslint-plugin is pinned separately at ^8.57.2. The meta package pins its own sub-packages at 8.52.0, so you end up with two different versions installed side-by-side. These should be kept in sync to avoid rule/parser mismatches.


💡 Suggestions

  • Consider holding this PR open (as the "in quarantine" note implies) and tracking typescript-eslint v9 beta → stable. Once typescript-eslint@^9 ships with TypeScript 6 support, a single coordinated bump of both typescript and typescript-eslint would land cleanly.
  • If you want to unblock experimentation locally, you can add a resolutions field in package.json to force the TypeScript version and suppress the peer dep warning — but that's not a substitute for actual upstream support.

The TypeScript 6 upgrade itself is exactly right; the blocker is purely the linting toolchain not yet catching up. 🙌

@workflow-authentication-public
Copy link
Contributor

📚 Storybook Preview Deployed

✅ Preview URL: https://click-pb74l1opu-clickhouse.vercel.app

Built from commit: 45ec8621f77b40187a458865a00c6c8dab18f754

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.

1 participant