chore: skip TypeScript 7.0 in Renovate until 7.1 ships an API - #581
Merged
Conversation
TypeScript 7.0 is the native (tsgo) port and deliberately shipped with no
programmatic compiler API. Its entire JS export surface is `version` and
`versionMajorMinor`, so every tool built on the old API breaks:
- typescript-eslint throws at import time, failing `pnpm lint`
- ts-jest declares peer `typescript: >=4.3 <7`, which would fail
`pnpm test` next
Both maintainers have said they are waiting on the API expected in TS 7.1,
and typescript-eslint has locked its thread in the meantime.
Use `<7.0.0 || >=7.1.0` rather than a flat `<7` so the upgrade flows again
on its own once 7.1 is released. The range excludes 7.1.0-dev prereleases,
so this will not pull nightlies.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019dUo24dvyCizU9GbU9dTww
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.
Tells Renovate to skip TypeScript 7.0 but take 7.1 as soon as it comes out. This closes out #576, which cannot pass today.
The problem
TypeScript 7 is a rewrite of the compiler in Go. It is much faster, but it shipped on purpose without a programmatic API, meaning other tools cannot call into it from JavaScript. If you load it, this is everything you get:
Two of our tools are built on that missing API:
pnpm lintdies. That is what chore: update dependency typescript to v7 #576 has been failing on.typescript: >=4.3 <7. We have not seen this failure yet only because lint runs first and stops the build.So #576 is not one broken thing we could patch around. It is two, and neither is ours to fix.
What upstream says
Both maintainers have answered this directly, and both are waiting on the same thing.
typescript-eslint (issue #10940), 2026-07-09:
They locked that thread to keep the noise down, so it looks quiet. It is not abandoned.
ts-jest (issue #5366), 2026-07-29:
Microsoft's own TypeScript 7.0 announcement says the same, and names typescript-eslint as one of the tools it affects:
The change
One new rule in
renovate.json:{ "matchPackageNames": ["typescript"], "allowedVersions": "<7.0.0 || >=7.1.0" }The range is
<7.0.0 || >=7.1.0rather than a plain<7on purpose. A plain<7would block TypeScript forever until a person noticed and removed it. This version skips only the broken 7.0.x releases and starts offering upgrades again by itself the day 7.1 ships.I checked the range against real version numbers:
The
7.1.0-devline matters. TypeScript is publishing nightly builds of 7.1 right now, and this range leaves them alone. We will get 7.1.0 proper, not a nightly.The rule carries a
descriptionfield explaining why it exists and linking both upstream issues, so whoever finds it later does not have to work this out again.How I checked
renovate-config-validator --strictpasses.pnpm verifypasses: lint, format, type-check, build, and 34 test suites / 265 tests.When to remove this
Once TS 7.1 is out and both typescript-eslint and ts-jest support it, delete the rule. TypeScript 7.1 is currently expected in autumn 2026, so this may be a short wait.
Also
Please close #576. It cannot pass, and once this merges Renovate will stop proposing that upgrade.
🤖 Generated with Claude Code
https://claude.ai/code/session_019dUo24dvyCizU9GbU9dTww