Repository navigation
Revert typescript to ~6.0.3 so eslint runs again - #457
Merged
Merged
Conversation
`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
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.
npx eslintis dead repo-wide, failing before it lints a single file:typescript-eslint@8.67.0hard-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 lintisn't part of CI. Thelintscript exists but nothing intest.ymlcalls it, so there was never a red build. Lint has simply been unavailable, quietly.~6.0.3, not back to^5.8.3History went
^5.8.3→^7.0.2with 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.3would allow6.1.0, which is outside the<6.1.0peer range — so a caret would break lint again the moment 6.1 ships.~6.0.3stays on 6.0.x patches.Verified on 6.0.3
npx eslintnpm run build(tsc)npm run build:testnpm lsinvalid/EBADPEERThat 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 lintintotest.ymlwould 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