eslint / typescript-eslint-parser

An ESLint custom parser which leverages TypeScript ESTree to allow for ESLint to lint TypeScript source code.
Other
915 stars 92 forks source link

Breaking: typescript-estree to 13.5.2 and typescript to 3.2.1 #592

Closed armano2 closed 5 years ago

armano2 commented 5 years ago

This PR contains changes from #576, #584, #589, #590, #591 and deprecates changes from #581

v13.5.1 - v12.0.0 changes:

https://github.com/JamesHenry/typescript-estree/compare/v12.0.0...v13.5.1

changes with master: https://github.com/JamesHenry/typescript-estree/compare/v5.3.0...v13.5.1

PRs with changes to ast:


fixes: #414, #588, #384, #593

platinumazure commented 5 years ago

I haven't had a chance to discuss with other team members how best to do the releases for these changes, so here's a straw proposal: I would like to do releases for the latest typescript-estree corresponding with each Typescript version. So for example, this PR has the latest release for Typescript 3.2.1. I don't have a strong desire to release for every version of Typescript, so if we (for example) don't have a PR for a typescript-estree release for 3.2.0, we don't need to create one. In this way, there'll be at least one typescript-eslint-parser release for most Typescript versions.

@armano2 Could you please comment here with which PRs correspond with each Typescript version? Don't close the other PRs yet, in case we end up going a different direction.

@kaicataldo @mysticatea Thoughts on the proposal above?

armano2 commented 5 years ago

starting from typescript-estree v6 there is support for typescript 3.2.1

all my prs except https://github.com/eslint/typescript-eslint-parser/pull/583 are from versions 3.2.1.

latest version of typescript-estree with before ts3.2.1 is currently used one 5.3.0


typescript-estree releases one version per change, if change is breaking it increases major version. there was a lot of small fixes with ranges, missing fields, etc in AST, but there was also a lot of changes to names of properties, names of nodes and structure of AST.

most of major changes to ast seems to be done (unless i missed something)


from ast perspective typescript 3.2.x introduced only 2 changes, BooleanKeyword and BooleanLiteral.


nodes TS***Type are present in currently used version of typescript-estree, and properties for them didn't change (in most cases), but they had fallback support in typescript-estree (copy nodes from ts to estree as any unknown node)


you can see difference in produced AST without errorOnUnknownASTType here estree-13.5.2...estree-5.3

JamesHenry commented 5 years ago

@platinumazure Please see my comment here: https://github.com/eslint/typescript-eslint-parser/pull/584#issuecomment-453097356

JamesHenry commented 5 years ago

Closing in favour of https://github.com/eslint/typescript-eslint-parser/pull/596