Skip to content

Revert typescript to ~6.0.3 so eslint runs again - #457

Merged
TimelordUK merged 1 commit into
masterfrom
fix/typescript-downgrade-for-eslint
Sep 13, 2026
Merged

TimelordUK merged 1 commit into
masterfrom
fix/typescript-downgrade-for-eslint

Conversation

@TimelordUK

Copy link
Copy Markdown
Owner

npx eslint is dead repo-wide, failing before it lints a single file:

Error: typescript-eslint does not support TS 7.0.

typescript-eslint@8.67.0 hard-throws on any TypeScript major ≥ 7 (dist/index.js:45) and declares a peer range of >=4.8.4 <6.1.0. TypeScript 7 is the native rewrite and needs the side-by-side TS 6 API, which typescript-eslint doesn't use yet — upstream tracking is typescript-eslint#10940.

Why it went unnoticed

npm run lint isn't part of CI. The lint script exists but nothing in test.yml calls it, so there was never a red build. Lint has simply been unavailable, quietly.

~6.0.3, not back to ^5.8.3

History went ^5.8.3 → ^7.0.2 with no 6.x in between. I went forward to 6.0.3 rather than back, since it's the newest TypeScript typescript-eslint will accept.

The tilde is deliberate. ^6.0.3 would allow 6.1.0, which is outside the <6.1.0 peer range — so a caret would break lint again the moment 6.1 ships. ~6.0.3 stays on 6.0.x patches.

Verified on 6.0.3

Check Result
npx eslint runs — 75 problems, the same count as before the bump, so nothing drifted while it was broken
npm run build (tsc) exit 0
npm run build:test exit 0
npm ls no invalid / EBADPEER
pool suite 42 passing

That 75 matching the earlier count is the useful signal — the TypeScript revert doesn't itself introduce or hide violations.

Also: a Dependabot ignore for typescript majors

Without it, TypeScript 7 gets offered again every Monday, and the failure is silent, so it would very likely be taken again. The rule carries the reason and the upstream issue to lift it against.

Follow-up worth doing

The root cause isn't really the version — it's that nothing runs lint in CI, so breaking it costs nothing. Wiring npm run lint into test.yml would have caught this immediately. I haven't done it here because it would currently fail on the 75 pre-existing violations, so it belongs with that cleanup rather than in a revert.

🤖 Generated with Claude Code

https://claude.ai/code/session_01K5wuZia58hUzEqN7CvHtz9

`npx eslint` has been dead repo-wide, failing before it lints anything:

    Error: typescript-eslint does not support TS 7.0.

typescript-eslint 8.67.0 hard-throws on any TypeScript major >= 7
(typescript-eslint/dist/index.js:45) and declares a peer range of
>=4.8.4 <6.1.0. TypeScript 7 is the native rewrite and needs the side-by-side
TS 6 API, which typescript-eslint does not yet use. Upstream tracking issue is
typescript-eslint/typescript-eslint#10940.

So the bump to ^7.0.2 took lint out entirely, and because nothing in CI runs
`npm run lint`, it failed quietly for weeks - the `lint` script is not wired
into test.yml, so there was no red build to notice.

Reverted to ~6.0.3 rather than the previous ^5.8.3. 6.0.3 is the newest
TypeScript typescript-eslint will accept, and the tilde matters: a caret would
allow 6.1.0, which is outside the peer range and would break lint again the
moment 6.1 ships.

Verified on 6.0.3:

  - npx eslint runs, reporting 75 problems - the same count as before the
    bump, so nothing has drifted while it was broken
  - npm run build (tsc) exits 0
  - npm run build:test (tsc -p tsconfig.json) exits 0
  - npm ls reports no invalid or EBADPEER entries
  - pool suite still 42 passing

Also added a Dependabot ignore for typescript majors. Without it the same
upgrade gets offered again every Monday, and the failure mode is silent, so it
would likely be taken again.

Note the deeper reason this went unnoticed: `npm run lint` is not part of CI.
Wiring it in is a separate change and would currently fail on the 75
pre-existing violations, so it wants doing alongside that cleanup.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K5wuZia58hUzEqN7CvHtz9
@TimelordUK
TimelordUK merged commit 0586bf0 into master Sep 13, 2026
11 checks passed
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