-
Notifications
You must be signed in to change notification settings - Fork 213
ESLint 6.0.0 compatibility #1423
Comments
Link to their migration guide: https://eslint.org/docs/user-guide/migrating-to-6.0.0 |
Did some digging, looks like they just moved the location: https://github.com/eslint/eslint/blob/v6.0.0/lib/shared/config-ops.js |
Hi! Thank you for opening an issue. Adding support for ESLint 6 is on our list of things to do, however it's blocked on a few pre-requisites first (eg support in the AirBnB preset and plugins), along with some changes on our side. Some initial discussion has occurred in #1421 :-) |
Eslint 5 currently has a few dependencies with active sec vulns. It'd be really nice to not be stuck on such an ancient version. |
Hi! ESLint 5 isn't vulnerable itself, one of its transitive dependencies can be, if not updated via the lockfile. ESLint 6 bumping its deps to force users onto the newer version (thereby not relying on them knowing to refresh the lockfile) is definitely a win - though more the icing on the cake: For what it's worth, I'd love to upgrade to ESLint 6, it's just non-trivial given #1421 (comment) - and I no longer work on JS for my day job so don't get a huge amount of time to spend on Neutrino. I'd also point out that v6.2.1 (that contains the dep bump to force the security fix) was only released 20th Aug, and ESLint 6 itself only June (and it's never possible to upgrade immediately given preset ecosystem), so "ancient" is perhaps a little bit of an overstatement :-) |
Sorry about "ancient" - I was referring to v5, rather than 6.2.1. |
In #1182, the previous broken ESLint config merging functionality was replaced by using an internal ESLint `merge` function from `config-ops`. Unfortunately in ESLint 6 that function no longer exists in a form that is easy for us to use, so in order to support ESLint 6, I have replaced it with simpler manual merges. These are virtually identical, with one difference - `rules` are now merged by a later rule entry completely replacing the first, rather than updating it. For example, merging these: `'foo': ['error', {'someSetting': false}]` `'foo': 'warn'` ...used to give: `'foo': ['warn', {'someSetting': false}]` ...but now results in: `'foo': 'warn'` I think this difference is a reasonable compromise for not having to rely on ESLint internals and/or implement our own more complex merging. I also believe hitting this will be rare, since: * it doesn't affect merging with rules defined inside an `extends` external file * it won't make a difference for rules that were already at default settings (or that were overridden with custom settings in the later rule definition being merged in) This more simplistic merging behaviour is also what's used by Neutrino 8 (#1182 landed for Neutrino 9 only) - and we still have the other bug fixes included in #1182 that were the primary motivation for refactoring in the first place. Refs #1423.
Bug or issue?
Please try to answer the following questions:
Yarnclient or the npm client? What version?The text was updated successfully, but these errors were encountered: