1 | # Changelog
|
2 |
|
3 | ## [Unreleased]
|
4 |
|
5 | ## [35.1.0] - 2020-03-23
|
6 |
|
7 | - Update `@typescript-eslint/eslint-plugin` and `@typescript-eslint/parser` to 2.25.0, to support new syntax introduced in Typescript 3.8. ([#523](https://github.com/Shopify/eslint-plugin-shopify/pull/523))
|
8 |
|
9 | ## [35.0.0] - 2020-02-14
|
10 |
|
11 | - remove `no-vague-titles` because the rule was adopted into `eslint-plugin-jest`'s `valid-title` rule. See [the `valid-title` documentation](https://github.com/jest-community/eslint-plugin-jest/blob/master/docs/rules/valid-title.md#disallowedwords)
|
12 | - Fixed an issue with `typescript/prefer-pascal-case-enum` when you had enum with key as string. ([517](https://github.com/Shopify/eslint-plugin-shopify/pull/517))
|
13 |
|
14 | ## [34.0.1] - 2019-01-13
|
15 |
|
16 | - fix enabled graphql rules by specifying `env: 'literal'` ([514](https://github.com/Shopify/eslint-plugin-shopify/pull/518))
|
17 |
|
18 | ## [34.0.0] - 2019-01-13
|
19 |
|
20 | - changed `no-vague-titles` rule to catch blacklisted **words** (instead of **sequences**) in the title ([514](https://github.com/Shopify/eslint-plugin-shopify/pull/514))
|
21 | - removed `jest/no-empty-title` and renamed `jest/require-tothrow-message` to `jest/require-to-throw-message` ([499](https://github.com/Shopify/eslint-plugin-shopify/pull/499))
|
22 |
|
23 | ### New Rules
|
24 | The followiing new rules were introduced in `eslint@6.7.0`. More information can be found on the [eslint blog](https://eslint.org/blog/2019/11/eslint-v6.7.0-released).
|
25 | - [`grouped-accessor-pairs`](https://eslint.org/docs/rules/grouped-accessor-pairs)
|
26 | - [`no-constructor-return`](https://eslint.org/docs/rules/no-constructor-return)
|
27 | - [`no-dupe-else-if`](https://eslint.org/docs/rules/no-dupe-else-if)
|
28 | - [`no-setter-return`](https://eslint.org/docs/rules/no-setter-return)
|
29 | - [`prefer-exponentiation-operator`](https://eslint.org/docs/rules/prefer-exponentiation-operator)
|
30 |
|
31 | ## [33.0.0] - 2019-11-20
|
32 |
|
33 | ### Breaking Change
|
34 |
|
35 | - The `graphql` configs have been pushed to an `override` for files matching a `.graphql` extension. This will allow this config to chain together with other parser-setting configs without changing the parser value. Consider the following config:
|
36 |
|
37 | ```
|
38 | // .eslintrc
|
39 | {
|
40 | extends: [
|
41 | "plugin:shopify/typescript",
|
42 | "plugin:shopify/graphql"
|
43 | ]
|
44 | }
|
45 | ```
|
46 |
|
47 | **Before this change** the final parser becomes `babel-eslint` for all files. This will cause errors when parsing TypeScript files even though we are extending the typescript config :( You could workaround this by moving the `plugin:shopify/graphql` first in the extends array or lint GraphQL files in a seperate script.
|
48 |
|
49 | **After this change** Final parser is `babel-eslint` for only `.graphql` files while `@typescript-eslint/parser` is set for all `.ts` and `.tsx` files. This should not cause any parser-related errors :)
|
50 |
|
51 | ### New Rules
|
52 |
|
53 | - `shopify/no-all-mocks-methods` ([#204](https://github.com/Shopify/eslint-plugin-shopify/pull/204))
|
54 | - `shopify/no-namespace-imports` Prevent namespace import declarations. ([262](https://github.com/Shopify/eslint-plugin-shopify/pull/262))
|
55 |
|
56 | ## [32.0.0] - 2019-11-05
|
57 |
|
58 | - `jest/valid-title`
|
59 | - `jest/prefer-hooks-on-top`
|
60 | - `jest/require-top-level-describe`
|
61 | - Enforce new-lines between groups import groups ([#409](https://github.com/Shopify/eslint-plugin-shopify/pull/409))
|
62 |
|
63 | ## [31.0.0] - 2019-10-23
|
64 |
|
65 | ### Using `@typescript-eslint/parser` and `@typescript-eslint/eslint-plugin`
|
66 |
|
67 | - **Breaking Change** Updated from `eslint-plugin-typescript` to `@typescript-eslint/eslint-plugin`. If you have any rules defined under the typescript namespace, you will need to change those to use the new `@typescript-eslint` namespace.
|
68 |
|
69 | For example:
|
70 |
|
71 | ```json
|
72 | "rules": {
|
73 | "typescript/restrict-plus-operands": "error"
|
74 | }
|
75 | ```
|
76 |
|
77 | Will become:
|
78 |
|
79 | ```json
|
80 | "rules": {
|
81 | "@typescript-eslint/restrict-plus-operands": "error"
|
82 | }
|
83 | ```
|
84 |
|
85 | ### Config Changes
|
86 |
|
87 | - **Breaking Change** The `plugin:shopify/react` is no longer a core config and must augment one of the `plugin:shopify/typescript` or `plugin:shopify/esnext` configs. See examples below
|
88 |
|
89 | _Example config for react without typescript projects:_
|
90 |
|
91 | ```json
|
92 | {
|
93 | "extends": [
|
94 | "plugin:shopify/esnext",
|
95 | "plugin:shopify/react"
|
96 | // ...other configs
|
97 | ]
|
98 | }
|
99 | ```
|
100 |
|
101 | _Example config for react with typescript projects:_
|
102 |
|
103 | ```json
|
104 | {
|
105 | "extends": [
|
106 | "plugin:shopify/typescript",
|
107 | "plugin:shopify/react"
|
108 | // ...other configs
|
109 | ]
|
110 | }
|
111 | ```
|
112 |
|
113 | - **Note** If using the `plugin:shopify/typescript-type-checking` augmented config, you must specify a path to your tsconfig.json file in the "project" property of "parserOptions"
|
114 |
|
115 |
|
116 | ### New Rules
|
117 |
|
118 | - `jest/no-standalone-expect` Prevents `expect` statements outside of a `test` or `it` block ([368](https://github.com/Shopify/eslint-plugin-shopify/pull/368))
|
119 | - `jest/no-expect-resolves` Avoid using `expect().resolves` ([370](https://github.com/Shopify/eslint-plugin-shopify/pull/370))
|
120 |
|
121 |
|
122 | ## [30.0.1] - 2019-06-24
|
123 |
|
124 | - bump eslint peer depndency to 6
|
125 |
|
126 | ## [30.0.0] - 2019-06-24
|
127 |
|
128 | ### Changed
|
129 | - Enabled `jest/no-export` rule ([344](https://github.com/Shopify/eslint-plugin-shopify/pull/344))
|
130 | - [Major] depreciated `shopify/jest/no-try-expect` in favour of [`jest/no-try-expect`](https://github.com/jest-community/eslint-plugin-jest/pull/) ([331](https://github.com/jest-community/eslint-plugin-jest/pull/331))
|
131 | - [Major] depreciated `shopify/jest/no-if` in favour of [`jest/no-if`](https://github.com/jest-community/eslint-plugin-jest/pull/293) ([347](https://github.com/Shopify/eslint-plugin-shopify/pull/347))
|
132 | - [Major] Updated to eslint v6, enabled `no-console` and enabled `no-async-promise-executor` ([330](https://github.com/Shopify/eslint-plugin-shopify/pull/330))
|
133 | - Enabled `typescript/interface-name-prefix` to prevent `I` prefixes in TypeScript interface names
|
134 | - Enabled `jest/no-duplicate-hooks` rule ([344](https://github.com/Shopify/eslint-plugin-shopify/pull/344))
|
135 |
|
136 | ### Fixed
|
137 | - [Patch] Fix `jest/no-if` from falsely reporting if statements inside of functions ([331](https://github.com/Shopify/eslint-plugin-shopify/pull/331))
|
138 |
|
139 | ## [29.0.2] - 2019-06-18
|
140 |
|
141 | ### Changed
|
142 |
|
143 | - Removed `react/prop-types` in typescript config ([309](https://github.com/Shopify/eslint-plugin-shopify/pull/309))
|
144 |
|
145 | ## [29.0.1] - 2019-06-18
|
146 |
|
147 | ### Changed
|
148 |
|
149 | - Removed `import/no-namespace` ([308](https://github.com/Shopify/eslint-plugin-shopify/pull/308))
|
150 |
|
151 | ## [29.0.0] - 2019-06-17
|
152 |
|
153 | ### Changed
|
154 |
|
155 | - added "necessary" to `shopify/jest/no-vague-titles` ([265](https://github.com/Shopify/eslint-plugin-shopify/pull/265))
|
156 | - `shopify/jest/no-if` now recognizes conditional statements ([298](https://github.com/Shopify/eslint-plugin-shopify/pull/298))
|
157 |
|
158 | ### Added
|
159 |
|
160 | - New Rules:
|
161 | - `jest/no-commented-out-tests` disallows commented out tests.([275](https://github.com/Shopify/eslint-plugin-shopify/pull/275))
|
162 | - `jest/no-try-expect` disallows `expect` calls in `catch` blocks ([300](https://github.com/Shopify/eslint-plugin-shopify/pull/300))
|
163 | - `node/prefer-promises/dns` and `node/prefer-promises/fs` These rules disallow the callback API in favor of promise API for the dns and fs modules. ([257](https://github.com/Shopify/eslint-plugin-shopify/pull/257))
|
164 | - `jest/no-mocks-import` This rule disallows manually importing from `__mocks__` ([246](https://github.com/Shopify/eslint-plugin-shopify/pull/246))
|
165 | - `react/state-in-constructor` Enforce state initialization to be in a class property. ([256](https://github.com/Shopify/eslint-plugin-shopify/pull/246))
|
166 | - `import/no-namespace` Prevents namespace imports. ([305](https://github.com/Shopify/eslint-plugin-shopify/pull/305))
|
167 |
|
168 | ### Fixed
|
169 |
|
170 | - `shopify/jest/no-if` ignores if statements nested within block statements ([299](https://github.com/Shopify/eslint-plugin-shopify/pull/299))
|
171 | - `react-prefer-private-members` from incorrectly reporting the members of a parent class if a React class is defined within its constructor. ([258](https://github.com/Shopify/eslint-plugin-shopify/pull/258))
|
172 |
|
173 | ## [28.0.0] - 2019-04-26
|
174 |
|
175 | ### Changed
|
176 |
|
177 | * Reverted a previous update from `eslint-plugin-typescript` to `@typescript-eslint/eslint-plugin`. If you have any rules defined under the `@typescript-eslint` namespace, you will need to change those to use the older `typescript` namespace.
|
178 |
|
179 | For example:
|
180 |
|
181 | ```json
|
182 | "rules": {
|
183 | "@typescript-eslint/restrict-plus-operands": "error"
|
184 | }
|
185 | ```
|
186 |
|
187 | Will become:
|
188 |
|
189 | ```json
|
190 | "rules": {
|
191 | "typescript/restrict-plus-operands": "error"
|
192 | }
|
193 | ```
|
194 |
|
195 | **Note:** This is a temporary work-around to resolve a bug in prettier-eslint and will attempt the typescript updates again when resolved.
|
196 |
|
197 | ### Fixed
|
198 |
|
199 | * `shopify/restrict-full-import` "empty" array pattern (eg: `const [, bar] = foo` errors ([#243](https://github.com/Shopify/eslint-plugin-shopify/pull/243))
|
200 | * Optimized `shopify/images/no-direct-imports` to be much faster in the common case ([#247](https://github.com/Shopify/eslint-plugin-shopify/pull/247))
|
201 | * `shopify/react-hooks-strict-return` from crashing when a hook returns undefined ([#251](https://github.com/Shopify/eslint-plugin-shopify/pull/251))
|
202 |
|
203 | ### Added
|
204 |
|
205 | * updated `eslint-plugin-import` to version `22.4.1` which introduces the [`no-unused-modules`](https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-unused-modules.md) rule.
|
206 | * updated `eslint-plugin-jest` to version `22.4.1` which introduces the [`no-empty-title`](https://github.com/jest-community/eslint-plugin-jest/commit/c793b7a) rule.
|
207 | * `shopify/react-hooks-strict-return` Restrict the number of returned items from React hooks. ([#237](https://github.com/Shopify/eslint-plugin-shopify/pull/237))
|
208 |
|
209 | ### Removed
|
210 |
|
211 | * turned off `node/no-extraneous-require` because it duplicates reported violations from `import/no-extraneous-dependencies` ([#240](https://github.com/Shopify/eslint-plugin-shopify/pull/240)
|
212 |
|
213 | ## [27.0.1] - 2019-04-10
|
214 |
|
215 | ### Changed
|
216 |
|
217 | * `shopify/jest/no-if` no longer considers if statements in describe blocks as invalid. ([#235](https://github.com/Shopify/eslint-plugin-shopify/pull/235))
|
218 |
|
219 | ### Removed
|
220 |
|
221 | * turned off `consistent-return` ([#236](https://github.com/Shopify/eslint-plugin-shopify/pull/236)
|
222 | * turned off `react/jsx-no-bind` ([#239](https://github.com/Shopify/eslint-plugin-shopify/pull/239))
|
223 | * turned off `babel/camelcase` in typescript config because it overlaps with `@typescript-eslint/camelcase`. ([#238](https://github.com/Shopify/eslint-plugin-shopify/pull/238))
|
224 | * `shopify/jest/no-if` no longer considers if statements in describe blocks as invalid. ([#235](https://github.com/Shopify/eslint-plugin-shopify/pull/235))
|
225 |
|
226 | ## [27.0.0] - 2019-04-08
|
227 |
|
228 | ### Added
|
229 |
|
230 | #### Plugin updates and additions ([#233](https://github.com/Shopify/eslint-plugin-shopify/pull/233))
|
231 |
|
232 | #### Breaking Changes
|
233 |
|
234 | * `shopify/jquery-dollar-sign-reference` has been removed.
|
235 | * The `eslint-comments` ruleset has been removed and is now enabled by default as part of core - if you're using `es5`, `esnext`, `react` or `typescript` then you can remove the reference to `eslint-comments`.
|
236 | * The `ava`, `mocha`, `jquery` and `lodash` rulesets have been removed as these tools are are not commonly used at Shopify.
|
237 | * The `typescript-react` and `typescript-prettier` rulesets have been removed. Replace `["plugin:shopify/typescript-react"]` with `["plugin:shopify/typescript", "plugin:shopify/react"]` and replace`["plugin:shopify/typescript-prettier"]` with `["plugin:shopify/prettier"]`
|
238 | * Updated from `eslint-plugin-typescript` to `@typescript-eslint/eslint-plugin`. If you have any rules defined under the `typescript` namespace, you will need to change those to use the new `@typescript-eslint` namespace.
|
239 |
|
240 | For example:
|
241 |
|
242 | ```json
|
243 | "rules": {
|
244 | "typescript/restrict-plus-operands": "error"
|
245 | }
|
246 | ```
|
247 |
|
248 | Will become:
|
249 |
|
250 | ```json
|
251 | "rules": {
|
252 | "@typescript-eslint/restrict-plus-operands": "error"
|
253 | }
|
254 | ```
|
255 | More information on this change can be found [in this eslint blog post](https://eslint.org/blog/2019/01/future-typescript-eslint]).
|
256 |
|
257 | #### New rules
|
258 |
|
259 | * `shopify/jest/no-if` ([#232](https://github.com/Shopify/eslint-plugin-shopify/pull/232))
|
260 |
|
261 | Refer to the [Rules of Hooks documentation](https://reactjs.org/docs/hooks-rules.html) to learn more about the following rules.
|
262 |
|
263 | * `'react-hooks/rules-of-hooks': 'error'` // Only use Hooks at the top level of a React functional component or from within another custom hook.
|
264 | * `'react-hooks/exhaustive-deps': 'error'` // Checks for missing useEffect dependencies
|
265 |
|
266 |
|
267 | #### Updated Plugins
|
268 |
|
269 | | Package | Old version | New version |
|
270 | | ---------------------------------- | ----------- | ----------- |
|
271 | | `eslint-plugin-sort-class-members` | `1.3.1` | `1.4.0` |
|
272 | | `eslint-plugin-promise` | `4.0.0` | `4.0.1` |
|
273 | | `eslint-plugin-node` | `7.0.1` | `8.0.1` |
|
274 | | `eslint-plugin-jsx-a11y` | `6.1.1"` | `6.2.1` |
|
275 | | `eslint-plugin-jest` | `21.22.0` | `21.23.0` |
|
276 | | `eslint-plugin-import` | `2.14.0` | `2.16.0` |
|
277 | | `eslint-plugin-graphql` | `2.1.0-0` | `3.0.3` |
|
278 | | `eslint-plugin-eslint-comments` | `3.0.1` | `3.1.1` |
|
279 | | `eslint-plugin-babel` | `5.1.0` | `5.3.0` |
|
280 | | `eslint-plugin-utils` | `2.1.0` | `2.3.0` |
|
281 |
|
282 | #### Added Plugins
|
283 |
|
284 | | Package | Version |
|
285 | | -------------------------------- | ------- |
|
286 | | eslint-plugin-react-hooks | 1.5.0 |
|
287 | | @typescript-eslint/eslint-plugin | 1.5.0 |
|
288 | | "@typescript-eslint/parser | 1.5.0 |
|
289 | | babel-eslint | 10.0.1 |
|
290 |
|
291 | #### Removed Plugins
|
292 |
|
293 | | Package |
|
294 | | ------- |
|
295 | | eslint-plugin-mocha |
|
296 | | eslint-plugin-ava |
|
297 | | eslint-plugin-flowtype |
|
298 | | eslint-plugin-chai-expect |
|
299 | | eslint-plugin-lodash |
|
300 | | eslint-plugin-jquery |
|
301 |
|
302 | ### Changed
|
303 |
|
304 | * `jest/no-vague-titles` added `every` and `descriptive` as vague words. ([#221](https://github.com/Shopify/eslint-plugin-shopify/pull/221))
|
305 |
|
306 | ## [26.3.0] - 2019-02-21
|
307 |
|
308 | ### Added
|
309 |
|
310 | * Updated `eslint-plugin-react` and enabled `react/jsx-fragments` rule to prefer using `<>` over `<React.Fragment>` when defining fragments ([#223](https://github.com/Shopify/eslint-plugin-shopify/pull/223))
|
311 |
|
312 | ## [26.2.0] - 2019-02-14
|
313 |
|
314 | ### Added
|
315 |
|
316 | * `images-no-direct-imports` ([#219](https://github.com/Shopify/eslint-plugin-shopify/pull/219))
|
317 |
|
318 | ## [26.1.2] - 2019-01-02
|
319 |
|
320 | ### Fixed
|
321 |
|
322 | * `jest/no-vague-titles` no longer flags when the word `call` is used. ([#203](https://github.com/Shopify/eslint-plugin-shopify/pull/203))
|
323 | * Update `eslint-plugin-prettier` to 3.0.1 so it does not crash when given an unparsable file ([#212](https://github.com/Shopify/eslint-plugin-shopify/pull/212))
|
324 |
|
325 | ### Changed
|
326 |
|
327 | * `jest/no-vague-titles` added `should` and `properly` to vague rules and new configuration to `allow` words. ([#208](https://github.com/Shopify/eslint-plugin-shopify/pull/208))
|
328 |
|
329 | ## [26.1.1] - 2018-10-31
|
330 |
|
331 | ### Fixed
|
332 |
|
333 | * `typescript-eslint-parser` pinned at `20.0.0` to avoid [a known issue](https://github.com/eslint/typescript-eslint-parser/issues/535) ([#201](https://github.com/Shopify/eslint-plugin-shopify/pull/201))
|
334 |
|
335 | ## [26.1.0] - 2018-10-30
|
336 |
|
337 | ### Added
|
338 |
|
339 | * `shopify/no-ancestor-directory-import` ([#149](https://github.com/Shopify/eslint-plugin-shopify/pull/149))
|
340 |
|
341 | ### Fixed
|
342 |
|
343 | * Set TypeScript parser only on TS files. This makes sure you can extend from the typescript and react configs in either order. Previously you had to make sure typescript came first to avoid using the babel-eslint parser on typescript files. Now we suggest to extend from typescript, and then react to ensure some rules some JSX rules don't get inadventently disabled. ([#200](https://github.com/Shopify/eslint-plugin-shopify/pull/200))
|
344 |
|
345 | ## [26.0.0] - 2018-10-26
|
346 |
|
347 | ### Added
|
348 |
|
349 | * `shopify/eslint-comments` plugin with [eslint-plugin-eslint-comments](https://www.npmjs.com/package/eslint-plugin-eslint-comments) rules:
|
350 | - `eslint-comments/disable-enable-pair`,
|
351 | - `eslint-comments/no-aggregating-enable`
|
352 | - `eslint-comments/no-duplicate-disable`
|
353 | - `eslint-comments/no-unlimited-disable`
|
354 | - `eslint-comments/no-unused-disable`
|
355 | - `eslint-comments/no-unused-enable`
|
356 | - `eslint-comments/no-restricted-disable` (disabled)
|
357 | - `eslint-comments/no-use` (disabled)
|
358 |
|
359 | * `shopify/jest/no-snapshots` ([#182](https://github.com/Shopify/eslint-plugin-shopify/pull/182))
|
360 |
|
361 | ### Changed
|
362 |
|
363 | * Updated `plugin:shopify/prettier`, `plugin:shopify/react`, and `plugin:shopify/typescript` to use `overrides` ([#173](https://github.com/Shopify/eslint-plugin-shopify/pull/173))
|
364 | * Updated `import/order` rule to enforce ordering of internal, parent and sibling imports ([#189](https://github.com/Shopify/eslint-plugin-shopify/pull/189))
|
365 | * Updated `func-style` rule to allow arrow functions ([#188](https://github.com/Shopify/eslint-plugin-shopify/pull/188))
|
366 |
|
367 | ### Fixed
|
368 |
|
369 | * Rolling back `eslint-plugin-graphql` to `2.1.0-0` for multiple schema support ([#195](https://github.com/Shopify/eslint-plugin-shopify/pull/195))
|
370 |
|
371 | ## [25.1.0] - 2018-10-01
|
372 |
|
373 | ### Changed
|
374 |
|
375 | * Updated `typescript-eslint-parser` dependency to version 19.0.2 to support `typescript-estree`. ([#176](https://github.com/Shopify/eslint-plugin-shopify/pull/176))
|
376 |
|
377 | ## [25.0.1] - 2018-09-25
|
378 |
|
379 | ### Fixed
|
380 |
|
381 | * Restored `typescript-prettier` config to override `prettier` plugin parser. ([#171](https://github.com/Shopify/eslint-plugin-shopify/pull/171))
|
382 |
|
383 | ## [25.0.0] - 2018-09-25
|
384 |
|
385 | ### Fixed
|
386 |
|
387 | * Updated `plugin:shopify/prettier` to enable prettier linting. ([#170](https://github.com/Shopify/eslint-plugin-shopify/pull/170))
|
388 | * `strict-component-boundaries` now consistently uses the resolved path from the app root to perform its checks. This fixes a number of false-positives. ([#160](https://github.com/Shopify/eslint-plugin-shopify/pull/160))
|
389 |
|
390 | ## [24.2.0] - 2018-09-21
|
391 |
|
392 | ### Added
|
393 |
|
394 | * Added `plugin:shopify/graphql` to module index. ([#168](https://github.com/Shopify/eslint-plugin-shopify/pull/168))
|
395 |
|
396 | ### Fixed
|
397 |
|
398 | * Updated `no-vague-titles` rule to fix parsing issues in `getMethodName`. ([#167](https://github.com/Shopify/eslint-plugin-shopify/pull/167))
|
399 |
|
400 | ## [24.1.1] - 2018-09-19
|
401 |
|
402 | * Same as `24.1.0`
|
403 |
|
404 | ## [24.1.0] - 2018-09-19
|
405 |
|
406 | ### Added
|
407 |
|
408 | * Added `shopify/graphql` config using new `eslint-plugin-graphql` (`2.1.1.`) dependency. ([#165](https://github.com/Shopify/eslint-plugin-shopify/pull/165))
|
409 |
|
410 | ## [24.0.0] - 2018-08-30
|
411 |
|
412 | ### Fixed
|
413 | * `plugin:shopify/flow` now disables rules checked by Flow's static analyzer. ([#135](https://github.com/Shopify/eslint-plugin-shopify/pull/135))
|
414 | * `plugin:shopify/prettier` and `plugin:shopify/typescript-prettier` defer missing semicolon rules to a project´s `.prettierrc`. ([#135](https://github.com/Shopify/eslint-plugin-shopify/pull/135))
|
415 | * Updated `strict-component-boundaries` to exclude fixture imports. ([#117](https://github.com/Shopify/eslint-plugin-shopify/pull/117))
|
416 | * Updated `strict-component-boundaries` to exclude imports from node_modules. ([#140](https://github.com/Shopify/eslint-plugin-shopify/pull/140))
|
417 | * Updated `jest/no-vague-titles` to support `.each` syntax. ([#148](https://github.com/Shopify/eslint-plugin-shopify/pull/148))
|
418 |
|
419 | ### Changed
|
420 | * Namespaced `prefer-pascal-case-enums` and `prefer-singular-enums` under `typescript`. ([#141](https://github.com/Shopify/eslint-plugin-shopify/pull/141))
|
421 | * **Breaking:** Updated to eslint `v5.4.0`. Consuming projects must be using [supported](https://eslint.org/docs/user-guide/migrating-to-5.0.0#-nodejs-4-is-no-longer-supported) node versions, we recommend `^8.10.0`. See details on the v4 to v5 [migration guide](https://eslint.org/docs/user-guide/migrating-to-5.0.0). ([#151](https://github.com/Shopify/eslint-plugin-shopify/pull/151))
|
422 |
|
423 | ### Added
|
424 | * `shopify/prefer-singular-enums` ([#132](https://github.com/Shopify/eslint-plugin-shopify/pull/132))
|
425 | * `shopify/react-no-multiple-render-methods` ([#134](https://github.com/Shopify/eslint-plugin-shopify/pull/134))
|
426 |
|
427 | * New eslint rules and plugins rules: ([#151](https://github.com/Shopify/eslint-plugin-shopify/pull/151))
|
428 | * [`max-classes-per-file`](https://eslint.org/docs/rules/max-classes-per-file) (disabled)
|
429 | * [`no-self-assign`](https://eslint.org/docs/rules/no-self-assign)
|
430 | * [`require-unicode-regexp`](https://eslint.org/docs/rules/require-unicode-regexp) (disabled)
|
431 | * [`no-async-promise-executor`](https://eslint.org/docs/rules/no-async-promise-executor)
|
432 | * [`no-misleading-character-class`](https://eslint.org/docs/rules/no-misleading-character-class)
|
433 | * [`require-atomic-updates`](https://eslint.org/docs/rules/require-atomic-updates)
|
434 | * [`lines-between-class-members`](https://eslint.org/docs/rules/lines-between-class-members)
|
435 | * [`max-lines-per-function`](https://eslint.org/docs/rules/max-lines-per-function) (disabled)
|
436 | * [`multiline-comment-style`](https://eslint.org/docs/rules/multiline-comment-style) (disabled)
|
437 | * [`prefer-object-spread`](https://eslint.org/docs/rules/prefer-object-spread)
|
438 | * [`import/no-self-import`](https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-self-import.md)
|
439 | * [`import/no-cycle`](https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-cycle.md)
|
440 | * [`import/no-relative-parent-imports`](https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-relative-parent-imports.md)
|
441 | * [`jest/expect-expect`](https://github.com/jest-community/eslint-plugin-jest/blob/master/docs/rules/expect-expect.md)
|
442 | * [`jest/no-jasmine-globals`](https://github.com/jest-community/eslint-plugin-jest/blob/master/docs/rules/no-jasmine-globals.md)
|
443 | * [`jest/prefer-inline-snapshots`](https://github.com/jest-community/eslint-plugin-jest/blob/master/docs/rules/prefer-inline-snapshots.md) (disabled)
|
444 | * [`jest/no-test-return-statement`](https://github.com/jest-community/eslint-plugin-jest/blob/master/docs/rules/no-test-return-statement.md)
|
445 | * [`node/prefer-global/buffer`](https://github.com/mysticatea/eslint-plugin-node/blob/master/docs/rules/prefer-global/buffer.md)
|
446 | * [`node/prefer-global/console`](https://github.com/mysticatea/eslint-plugin-node/blob/master/docs/rules/prefer-global/console.md)
|
447 | * [`node/prefer-global/process`](https://github.com/mysticatea/eslint-plugin-node/blob/master/docs/rules/prefer-global/process.md0)
|
448 | * [`node/prefer-global/url-search-params`](https://github.com/mysticatea/eslint-plugin-node/blob/master/lib/rules/prefer-global/url-search-params.js)
|
449 | * [`node/prefer-global/url`](https://github.com/mysticatea/eslint-plugin-node/blob/master/docs/rules/prefer-global/url.md)
|
450 | * [`node/no-unsupported-features/es-builtins`](https://github.com/mysticatea/eslint-plugin-node/blob/master/docs/rules/no-unsupported-features/es-builtins.md) (disabled)
|
451 | * [`node/no-unsupported-features/es-syntax`](https://github.com/mysticatea/eslint-plugin-node/blob/master/docs/rules/no-unsupported-features/es-syntax.md) (disabled)
|
452 | * [`node/no-unsupported-features/node-builtins`](https://github.com/mysticatea/eslint-plugin-node/blob/master/docs/rules/no-unsupported-features/node-builtins.md)
|
453 | * [`react/no-unsafe`](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/no-unsafe.md)
|
454 | * [`react/jsx-props-no-multi-spaces`](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-props-no-multi-spaces.md)
|
455 | * [`typescript/no-inferrable-types`](https://github.com/nzakas/eslint-plugin-typescript/blob/master/docs/rules/no-inferrable-types.md)
|
456 | * [`typescript/no-var-requires`](https://github.com/nzakas/eslint-plugin-typescript/blob/master/docs/rules/no-var-requires.md)
|
457 |
|
458 |
|
459 | ## [23.1.0] - 2018-08-02
|
460 |
|
461 | ### Fixed
|
462 | * Updated `typescript-eslint-parser` dependency to version 17.0.1 in order to support TypeScript 3. ([#121](https://github.com/Shopify/eslint-plugin-shopify/pull/121))
|
463 | * Removed default prettier configurations. `plugin:shopify/prettier` and `plugin:shopify/typescript-prettier` now defer Prettier's config to a project's `.prettierrc`. ([#121](https://github.com/Shopify/eslint-plugin-shopify/pull/121))
|
464 |
|
465 | ### Changed
|
466 | * Included `all` as a vague term for `no-vague-titles` ([#114](https://github.com/Shopify/eslint-plugin-shopify/pull/114))
|
467 |
|
468 | ## [23.0.0] - 2018-07-16
|
469 | * **Breaking** `eslint-plugin-shopify` will no longer install `prettier` as a dependency. Please ensure you have added `prettier` to your `package.json` if you wish to use it.
|
470 |
|
471 | ### Added
|
472 | * `shopify/jsx-prefer-fragment-wrappers` ([#94](https://github.com/Shopify/eslint-plugin-shopify/pull/94))
|
473 | * `shopify/jest/no-vague-titles` ([#93](https://github.com/Shopify/eslint-plugin-shopify/pull/93))
|
474 | * `shopify/strict-component-boundaries` ([#98](https://github.com/Shopify/eslint-plugin-shopify/pull/98))
|
475 |
|
476 | ### Changed
|
477 | * **Breaking** Moved prettier to be a peerDependency, this avoids the potential for having multiple versions of prettier in the dependency graph. If you use prettier you will need to ensure you have it installed in your project as eslint-plugin-shopify will no longer install it for you ([#107](https://github.com/Shopify/eslint-plugin-shopify/pull/107))
|
478 | * **Breaking** Updated `typescript-eslint-parser` to support `typescript@2.9.1` ([#102](https://github.com/Shopify/eslint-plugin-shopify/pull/102))
|
479 |
|
480 | ## [22.1.0] - 2018-06-08
|
481 |
|
482 | ### Fixed
|
483 | * Updated `eslint-plugin-sort-class-members` dependency to version 1.3.1 in order to support node 10.
|
484 |
|
485 | ### Added
|
486 | * `shopify/prefer-pascal-case-enums` ([#96](https://github.com/Shopify/eslint-plugin-shopify/pull/96))
|
487 | * `shopify/react-prefer-private-members` ([#95](https://github.com/Shopify/eslint-plugin-shopify/pull/95))
|
488 |
|
489 | ## [22.0.0]
|
490 | * Updated dependencies
|
491 | * Added support for TypeScript 2.8
|
492 |
|
493 | ## [21.0.1] - 2018-04-25
|
494 | * Fixed the publish config for the package.
|
495 |
|
496 | ## [21.0.0] - 2018-04-25
|
497 |
|
498 | ### Added
|
499 | * `shopify/jsx-no-hardcoded-content` now accepts a `dom` option that allows specifying attributes on DOM elements and Web Components to be checked for hardcoded content.
|
500 |
|
501 | ### Removed
|
502 | * **Breaking:** turned off four rules that previously triggered errors in all cases:
|
503 | * `shopify/react-type-state` (TypeScript now addresses the issue this rule was meant to catch)
|
504 | * `promise/always-return`
|
505 | * `react/no-did-mount-set-state`
|
506 | * `no-undefined`
|
507 | * **Breaking:** turned off two rules in specific plugins:
|
508 | * `babel/no-invalid-this` (turned off for the `typescript` configs as TypeScript has better mechanisms for unsuring a valid `this` is used)
|
509 | * `no-process-env` (turned off for the `webpack` and `node` configs as both targets can benefit from use of `process.env`)
|
510 |
|
511 | ### Fixed
|
512 | * Fixed an issue where various rules were not correctly resolving paths in `node_modules`.
|
513 |
|
514 | ## [20.0.0] - 2018-03-15
|
515 | * **Breaking:** the version of TypeScript supported by this plugin is 2.7.x (in line with [typescript-eslint-parser](https://github.com/eslint/typescript-eslint-parser)’s TypeScript support)
|
516 | * Updated dependencies that support the new ESLint documentation URL metadata. Errors from these plugins are accompanied by a link to the documentation for the broken rule.
|
517 | * Dependencies are now strictly versioned for tighter control over the exact rules the plugin enforces.
|
518 |
|
519 | | Package | old | new |
|
520 | | -------------------------- | --------- | --------- |
|
521 | | `eslint-plugin-ava` | `^4.4.0` | `4.5.1` |
|
522 | | `eslint-plugin-import` | `^2.8.0` | `2.9.0` |
|
523 | | `eslint-plugin-jest` | `^21.5.0` | `21.14.1` |
|
524 | | `eslint-plugin-lodash` | `^2.5.0` | `2.6.1` |
|
525 | | `eslint-plugin-node` | `^5.2.1` | `6.0.1` |
|
526 | | `eslint-plugin-prettier` | `^2.4.0` | `2.6.0` |
|
527 | | `eslint-plugin-promise` | `^3.6.0` | `3.7.0` |
|
528 | | `eslint-plugin-react` | `^7.5.1` | `7.7.0` |
|
529 | | `eslint-plugin-typescript` | `^0.8.1` | `0.10.0` |
|
530 |
|
531 | * Added rules:
|
532 | - [`react/forbid-dom-props`](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/forbid-dom-props.md) (disabled)
|
533 | - [`react/jsx-child-element-spacing`](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-child-element-spacing.md) **error**
|
534 | - [`react/jsx-max-depth`](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-max-depth.md) (disabled)
|
535 | - [`react/jsx-sort-default-props`](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-sort-default-props.md) (disabled)
|
536 | - [`react/no-this-in-sfc`](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/no-this-in-sfc.md) **error**
|
537 | - [`import/group-exports`](https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/group-exports.md) (disabled)
|
538 | - [`import/no-self-import`](https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-self-import.md) **error**
|
539 | - [`import/no-default-export`](https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-default-export.md) (disabled)
|
540 | - [`import/no-useless-path-segments`](https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-useless-path-segments.md) **error**
|
541 | - [`jest/prefer-expect-assertions`](https://github.com/jest-community/eslint-plugin-jest/blob/master/docs/rules/prefer-expect-assertions.md) (disabled)
|
542 | - [`jest/valid-expect-in-promise`](https://github.com/jest-community/eslint-plugin-jest/blob/master/docs/rules/valid-expect-in-promise.md) **error**
|
543 | - [`jest/valid-describe`](https://github.com/jest-community/eslint-plugin-jest/blob/master/docs/rules/valid-describe.md) **error**
|
544 | - [`jest/consistent-test-it`](https://github.com/jest-community/eslint-plugin-jest/blob/master/docs/rules/consistent-test-it.md) **error**
|
545 | - [`jest/no-test-prefixes`](https://github.com/jest-community/eslint-plugin-jest/blob/master/docs/rules/no-test-prefixes.md) **error**
|
546 | - [`jest/lowercase-name`](https://github.com/jest-community/eslint-plugin-jest/blob/master/docs/rules/lowercase-name.md) (disabled)
|
547 | - [`jest/no-jest-import`](https://github.com/jest-community/eslint-plugin-jest/blob/master/docs/rules/no-jest-import.md) **error**
|
548 | - [`promise/valid-params`](https://github.com/xjamundx/eslint-plugin-promise/blob/master/docs/rules/valid-params.md) **error**
|
549 | - [`promise/no-new-statics`](https://github.com/xjamundx/eslint-plugin-promise/blob/master/docs/rules/no-new-statics.md) (disabled)
|
550 | - [`typescript/explicit-function-return-type`](https://github.com/nzakas/eslint-plugin-typescript/blob/master/docs/rules/explicit-function-return-type.md) (disabled)
|
551 | - [`typescript/no-non-null-assertion`](https://github.com/nzakas/eslint-plugin-typescript/blob/master/docs/rules/no-non-null-assertion.md) **error**
|
552 | * Updated `import/extensions` due to changes in its implementation: some extensions are explicitly allowed in `import`s: `.svg`, `.png`, `.jpg`, `.ico`, `.css`, `.sass`, `.scss`, `.less`, `.styl`. `.json` is still required as well.
|
553 | * Chore: updated CircleCI from v1 to v2.
|
554 |
|
555 | ## [19.0.1] - 2018-03-12
|
556 |
|
557 | ### Fixed
|
558 | * `shopify/jsx-no-hardcoded-content` rule now does not warn on all-whitespace strings as children. This was causing issues with indented JSX content, and is typically not an issue for different locales.
|
559 |
|
560 | ## [19.0.0] - 2018-01-17
|
561 |
|
562 | ### Added
|
563 | * `shopify/jest` config with [eslint-plugin-jest](https://www.npmjs.com/package/eslint-plugin-jest) rules:
|
564 | - `jest/no-disabled-tests` (disabled)
|
565 | - `jest/no-focused-tests`
|
566 | - `jest/no-identical-title`
|
567 | - `jest/no-large-snapshots` (limited to 12 lines)
|
568 | - `jest/prefer-to-have-length`
|
569 | - `jest/prefer-to-be-null`
|
570 | - `jest/prefer-to-be-undefined`
|
571 | - `jest/valid-expect`
|
572 | * Added `shopify/webpack` config
|
573 | * Added `shopify/polaris` config
|
574 | * Added `shopify/webpack/no-unnamed-dynamic-imports` rule
|
575 | * Added `shopify/prefer-module-scope-constants` rule
|
576 | * Added `shopify/jsx-no-complex-expressions` rule
|
577 | * Added `shopify/jsx-no-hardcoded-content` rule
|
578 | * Added `shopify/polaris-no-bare-stack-item` rule
|
579 | * Added `shopify/polaris-prefer-sectioned-prop` rule
|
580 | * Added `shopify/react-initialize-state` rule
|
581 | * Added `shopify/react-type-state` rule
|
582 | * Added [`implicit-arrow-linebreak`][] rule
|
583 | * Added [`lines-around-comment`][] rule (as a [special
|
584 | rule][lines-around-comment-special]).
|
585 | * Added [`no-unexpected-multiline`][] rule (as a [special rule][no-unexpected-multiline-special]).
|
586 | * Added [`flowtype/no-flow-fix-me-comments`](https://github.com/gajus/eslint-plugin-flowtype/blob/677e55c6a0f1dd355268a0f19618cd2696424c53/.README/rules/no-flow-fix-me-comments.md)
|
587 | * Added [`react/jsx-one-expression-per-line`][]
|
588 | * Added [`react/destructuring-assignment`][]
|
589 | * Added [`react/no-access-state-in-setstate`][]
|
590 | * Added [`react/button-has-type`][]
|
591 | * Added [`react/jsx-curly-brace-presence`][]
|
592 | * Added [`typescript/member-naming`](https://github.com/nzakas/eslint-plugin-typescript/tree/master/docs/rules/member-naming.md)
|
593 | * Added [`typescript/no-array-constructor`](https://github.com/nzakas/eslint-plugin-typescript/tree/master/docs/rules/no-array-constructor.md)
|
594 | * Added `yarn prettier` script (prettifies source files)
|
595 |
|
596 | [`implicit-arrow-linebreak`]: https://eslint.org/docs/rules/implicit-arrow-linebreak
|
597 | [lines-around-comment-special]: https://github.com/prettier/eslint-config-prettier/blob/5399175c37466747aae9d407021dffec2c169c8b/README.md#lines-around-comment
|
598 | [`lines-around-comment`]: https://eslint.org/docs/rules/lines-around-comment
|
599 | [no-unexpected-multiline-special]: https://github.com/prettier/eslint-config-prettier/blob/5399175c37466747aae9d407021dffec2c169c8b/README.md#no-unexpected-multiline
|
600 | [`no-unexpected-multiline`]: https://eslint.org/docs/rules/no-unexpected-multiline
|
601 | [`react/jsx-one-expression-per-line`]: https://github.com/yannickcr/eslint-plugin-react/tree/master/docs/rules/jsx-one-expression-per-line.md
|
602 | [`react/destructuring-assignment`]: https://github.com/yannickcr/eslint-plugin-react/tree/master/docs/rules/destructuring-assignment.md
|
603 | [`react/no-access-state-in-setstate`]: https://github.com/yannickcr/eslint-plugin-react/tree/master/docs/rules/no-access-state-in-setstate.md
|
604 | [`react/button-has-type`]: https://github.com/yannickcr/eslint-plugin-react/tree/master/docs/rules/button-has-type.md
|
605 | [`react/jsx-curly-brace-presence`]: https://github.com/yannickcr/eslint-plugin-react/tree/master/docs/rules/jsx-curly-brace-presence.md
|
606 |
|
607 | ### Changed
|
608 | * Updated dependencies to their latest versions (full details in [#63](https://github.com/Shopify/eslint-plugin-shopify/pull/63))
|
609 | * **Breaking:** `node.js` minimum supported node version update to `8.9.4` (LTS).
|
610 | * **Breaking:** Changed `eslint-config-shopify` codebase to `trailingComma: 'all'` and drop support for Node.js 6
|
611 | * **Breaking:** Updated prettier to 1.9.2, introducing a change in function parens style (set to `arrowParens: 'always'`):
|
612 |
|
613 | ```js
|
614 | // Before
|
615 | const foo = myArray.map(foo => {});
|
616 |
|
617 | // After
|
618 | const foo = myArray.map((foo) => {});
|
619 | ```
|
620 |
|
621 | #### ⚠️ Upgrade path
|
622 |
|
623 | Your project config files (`package.json`, `.prettierrc`, `.eslintrc`…)
|
624 | may need to be updated like so:
|
625 |
|
626 | ```diff
|
627 | "singleQuote": true,
|
628 | "bracketSpacing": false,
|
629 | "trailingComma": "all",
|
630 | + "arrowParens": "always"
|
631 | ```
|
632 | * Prettified source files using the new config
|
633 |
|
634 | ## [18.3.1] - 2017-12-21
|
635 |
|
636 | ### Changed
|
637 | * Changed `eslint-config-shopify` codebase to follow es5 trailingComma [[#61](https://github.com/Shopify/eslint-plugin-shopify/pull/61)]
|
638 |
|
639 | ## [18.3.0] - 2017-12-18
|
640 |
|
641 | ### Added
|
642 | * Added `shopify/no-debugger`, which behaves the same as ESLint's `no-debugger` but without a fixer.
|
643 |
|
644 | ## [18.2.0] - 2017-12-04
|
645 | ### Added
|
646 | * Added a `typescript-prettier` config to run prettier against typescript projects.
|
647 |
|
648 | ## [18.1.0] - 2017-12-01
|
649 |
|
650 | ### Added
|
651 | * Added a `typescript` and `typescript-react` config [[#54](https://github.com/Shopify/eslint-plugin-shopify/pull/54)]
|
652 |
|
653 | ### Changed
|
654 | * `plugin:shopify/prettier` will now enforce trailing commas in function parameter calls [[#55](https://github.com/Shopify/eslint-plugin-shopify/pull/55)]
|
655 | * `comma-dangle` will now enforce multi-line function parameters [[#55](https://github.com/Shopify/eslint-plugin-shopify/pull/55)]
|
656 | * Removed `plugin:shopify/esnext` as an included extension of the `plugin:shopify/prettier` config. `plugin:shopify/esnext` must now be extended by the consumer to use the `plugin:shopify/prettier`. [[#53](https://github.com/Shopify/eslint-plugin-shopify/pull/53)]
|
657 |
|
658 | Example (`package.json`):
|
659 | ```
|
660 | "eslintConfig": {
|
661 | "extends": [
|
662 | "plugin:shopify/esnext",
|
663 | "plugin:shopify/prettier"
|
664 | ]
|
665 | }
|
666 | ```
|
667 |
|
668 | ## [18.0.0] - 2017-10-31
|
669 | ### Changed
|
670 | * Turned off `class-methods-use-this`
|
671 |
|
672 | ## [17.2.1] - 2017-10-30
|
673 | ### Changed
|
674 | * Turned off `babel/semi` rule in prettier config
|
675 |
|
676 | ## [17.2.0] - 2017-10-25
|
677 | ### Added
|
678 | * Added a prettier config [[#46](https://github.com/Shopify/eslint-plugin-shopify/pull/46)]
|
679 |
|
680 | Example:
|
681 | ```
|
682 | "eslintConfig": {
|
683 | "extends": [
|
684 | "plugin:shopify/prettier"
|
685 | ]
|
686 | }
|
687 | ```
|
688 |
|
689 | ### Changed
|
690 | * Replace all `warn` with `error` [[#48](https://github.com/Shopify/eslint-plugin-shopify/pull/48)]
|
691 | * `space-before-function-paren` now uses `asyncArrow` option (eg. `async () => {}`) [[#43](https://github.com/Shopify/eslint-plugin-shopify/pull/43)]
|
692 | * Enable `padding-line-between-statements` for directives. [[#44](https://github.com/Shopify/eslint-plugin-shopify/pull/44)]
|
693 |
|
694 | ### Removed
|
695 | * `lines-around-directive` was deprecated in ESLint `v4.0.0`. [[#44](https://github.com/Shopify/eslint-plugin-shopify/pull/44)]
|
696 |
|
697 |
|
698 | ## [17.1.0] - 2017-09-19
|
699 |
|
700 | ### Added
|
701 | * New rules ([#41](https://github.com/Shopify/eslint-plugin-shopify/pull/41)):
|
702 | - `import/no-anonymous-default-export`
|
703 | - `jsx-a11y/anchor-is-valid`
|
704 | - `no-buffer-constructor`
|
705 | - `node/no-extraneous-import` (disabled)
|
706 | - `node/no-extraneous-require`
|
707 | - `for-direction`
|
708 | - `getter-return`
|
709 | - `react/boolean-prop-naming` (disabled)
|
710 | - `react/default-props-match-prop-types`
|
711 | - `react/no-redundant-should-component-update`
|
712 | - `react/no-typos`
|
713 | - `react/no-unused-state`
|
714 | - `react/jsx-closing-tag-location`
|
715 | - `array-bracket-newline` (disabled)
|
716 | - `array-element-newline` (disabled)
|
717 | - `function-paren-newline`
|
718 | - `padding-line-between-statements` (disabled)
|
719 | - `semi-style`
|
720 | - `switch-colon-spacing`
|
721 |
|
722 |
|
723 | ### Changed
|
724 | - Updated dependencies ([#41](https://github.com/Shopify/eslint-plugin-shopify/pull/41)):
|
725 | - `eslint`
|
726 | - `babel-eslint`
|
727 | - `eslint-plugin-import`
|
728 | - `eslint-plugin-jsx-a11y`
|
729 | - `eslint-plugin-node`
|
730 | - `eslint-plugin-react`
|
731 | - `jquery-dollar-sign-reference` no longer flags assignments from `await` expressions
|
732 |
|
733 | ### Removed
|
734 | - `jsx-a11y/href-no-hash` replaced with `jsx-a11y/anchor-is-valid`
|
735 |
|
736 | ## [17.0.0] - 2017-08-17
|
737 | ### Changed
|
738 | - `eslint` upgrade to `4.3.0`
|
739 | - `node.js` minimum supported node version update to `6.11.1` (LTS).
|
740 | - Update dependencies:
|
741 | - `eslint-plugin-ava`: `^4.2.0` → `^4.2.1`.
|
742 | - `eslint-plugin-babel`: `^4.1.1` → `^4.1.2`.
|
743 | - `eslint-plugin-lodash`: `^2.4.2` → `^2.4.4`.
|
744 | - `eslint-plugin-mocha`: `^4.9.0` → `^4.11.0`.
|
745 | - `eslint-plugin-node`: `^4.2.2` → `^4.2.3`.
|
746 | - `eslint-plugin-react`: `^7.0.0` → `^7.0.1`.
|
747 |
|
748 |
|
749 | ## [16.0.1] - 2017-05-29
|
750 | ### Changed
|
751 | - Turned off [`prefer-destructuring`](http://eslint.org/docs/rules/prefer-destructuring) ([#30](https://github.com/Shopify/eslint-plugin-shopify/pull/30))
|
752 |
|
753 | ## [16.0.0] - 2017-05-16
|
754 | ### Added
|
755 | - New rule: [`babel/semi`](https://github.com/babel/eslint-plugin-babel/releases/tag/v4.1.0)
|
756 | - New rule: [`flowtype/no-types-missing-file-annotation`](https://github.com/gajus/eslint-plugin-flowtype#eslint-plugin-flowtype-rules-no-types-missing-file-annotation)
|
757 | - New rule: [`jsx-a11y/accessible-emoji`](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/accessible-emoji.md)
|
758 | - New rule: [`jsx-a11y/alt-text`](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/alt-text.md)
|
759 | - New rule: [`jsx-a11y/aria-activedescendant-has-tabindex`](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/aria-activedescendant-has-tabindex.md)
|
760 | - New rule: [`jsx-a11y/iframe-has-title`](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/iframe-has-title.md)
|
761 | - New rule: [`jsx-a11y/interactive-supports-focus`](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/interactive-supports-focus.md)
|
762 | - New rule: [`jsx-a11y/media-has-caption`](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/media-has-caption.md) (disabled)
|
763 | - New rule: [`jsx-a11y/no-autofocus`](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/no-autofocus.md)
|
764 | - New rule: [`jsx-a11y/no-distracting-elements`](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/no-distracting-elements.md)
|
765 | - New rule: [`jsx-a11y/no-interactive-element-to-noninteractive-role`](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/no-interactive-element-to-noninteractive-role.md) (disabled)
|
766 | - New rule: [`jsx-a11y/no-noninteractive-element-interactions`](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/no-noninteractive-element-interactions.md)
|
767 | - New rule: [`jsx-a11y/no-noninteractive-element-to-interactive-role`](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/no-noninteractive-element-to-interactive-role.md)
|
768 | - New rule: [`jsx-a11y/no-noninteractive-tabindex`](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/no-noninteractive-tabindex.md)
|
769 | - New rule: [`jsx-a11y/no-redundant-roles`](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/no-redundant-roles.md)
|
770 | - New rule: [`lodash/prefer-some`](https://github.com/wix/eslint-plugin-lodash/blob/master/docs/rules/prefer-some.md)
|
771 | - New rule: [`react/forbid-elements`](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/forbid-elements.md) (disabled)
|
772 | - New rule: [`react/forbid-foreign-prop-types`](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/forbid-foreign-prop-types.md)
|
773 | - New rule: [`react/no-will-update-set-state`](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/no-will-update-set-state.md)
|
774 | - New rule: [`react/void-dom-elements-no-children`](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/void-dom-elements-no-children.md)
|
775 | - New rule: [`no-await-in-loop`](http://eslint.org/docs/rules/no-await-in-loop)
|
776 | - New rule: [`prefer-promise-reject-errors`](http://eslint.org/docs/rules/prefer-promise-reject-errors)
|
777 | - New rule: [`require-await`](http://eslint.org/docs/rules/require-await)
|
778 | - New rule: [`prefer-destructuring`](http://eslint.org/docs/rules/prefer-destructuring)
|
779 | - New rule: [`no-compare-neg-zero`](http://eslint.org/docs/rules/no-compare-neg-zero)
|
780 | - New rule: [`capitalized-comments`](http://eslint.org/docs/rules/capitalized-comments) (disabled)
|
781 | - New rule: [`no-multi-assign`](http://eslint.org/docs/rules/no-multi-assign)
|
782 | - New rule: [`nonblock-statement-body-position`](http://eslint.org/docs/rules/nonblock-statement-body-position) (disabled)
|
783 | - New rule: [`template-tag-spacing`](http://eslint.org/docs/rules/template-tag-spacing)
|
784 |
|
785 | ### Removed
|
786 | - Deprecated: [`babel/no-await-in-loop`](https://github.com/babel/eslint-plugin-babel/releases/tag/v4.1.1)
|
787 | - Deprecated: [`jsx-a11y/img-has-alt`](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/CHANGELOG.md#500--2017-05-05)
|
788 | - Deprecated: [`jsx-a11y/onclick-has-focus`](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/CHANGELOG.md#500--2017-05-05)
|
789 | - Deprecated: [`jsx-a11y/onclick-has-role`](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/CHANGELOG.md#500--2017-05-05)
|
790 | - Deprecated: [`jsx-a11y/jsx-space-before-closing`](https://github.com/yannickcr/eslint-plugin-react/blob/master/CHANGELOG.md#700---2017-05-06)
|
791 |
|
792 |
|
793 | ## [15.2.0] - 2017-03-06
|
794 | ### Changed
|
795 | - `eslint` upgrade to `3.17.x`
|
796 |
|
797 | ## [15.1.2] - 2017-02-23
|
798 | ### Fixed
|
799 | - `jquery-dollar-sign-reference` now checks assignments from `LogicalExpression` / `BinaryExpression`
|
800 |
|
801 | ## [15.1.1] - 2017-01-17
|
802 | ### Added
|
803 | - Added `eslint-index` package ([#4](https://github.com/Shopify/eslint-plugin-shopify/pull/4))
|
804 | - Added `rules-status` and `rules-omitted` scripts ([#4](https://github.com/Shopify/eslint-plugin-shopify/pull/4))
|
805 | - Added new `eslint-plugin-react` rules: `no-array-index-key`, `require-default-props` ([#4](https://github.com/Shopify/eslint-plugin-shopify/pull/4))
|
806 | - Added new `eslint-plugin-lodash` rules: `import-scope` ([#4](https://github.com/Shopify/eslint-plugin-shopify/pull/4))
|
807 | - Added new `eslint-plugin-promise` rules: `no-return-wrap`, `no-nesting`, `no-promise-in-callback`, `no-callback-in-promise`, `avoid-new`, `prefer-await-to-then`, `prefer-await-to-callbacks` ([#4](https://github.com/Shopify/eslint-plugin-shopify/pull/4))
|
808 |
|
809 | ### Changed
|
810 | - Updated `eslint-plugin-flowtype`, `eslint-plugin-lodash`, `eslint-plugin-mocha`, `eslint-plugin-promise`, `eslint-plugin-react` to their latest versions ([#4](https://github.com/Shopify/eslint-plugin-shopify/pull/4))
|
811 | - Updated `react/prefer-stateless-function` rule to include `ignorePureComponents` flag ([#4](https://github.com/Shopify/eslint-plugin-shopify/pull/4))
|
812 |
|
813 | ### Removed
|
814 | - Removed `eslint-find-rules` package ([#4](https://github.com/Shopify/eslint-plugin-shopify/pull/4))
|
815 |
|
816 | # Pre-15.1.1 Changelog
|
817 |
|
818 | Changes were originally tracked in Shopify's [JavaScript monorepo](https://github.com/Shopify/javascript/blob/f10bf7ddbdae07370cfe7c94617c450257731552/CHANGELOG.md).
|
819 |
|
820 | [Unreleased]: https://github.com/Shopify/eslint-plugin-shopify/compare/v26.3.0...HEAD
|
821 | [26.3.0]: https://github.com/Shopify/eslint-plugin-shopify/compare/v26.2.0...v26.3.0
|
822 | [26.2.0]: https://github.com/Shopify/eslint-plugin-shopify/compare/v26.1.2...v26.2.0
|
823 | [26.1.2]: https://github.com/Shopify/eslint-plugin-shopify/compare/v26.1.1...v26.1.2
|
824 | [26.1.1]: https://github.com/Shopify/eslint-plugin-shopify/compare/v26.1.0...v26.1.1
|
825 | [26.1.0]: https://github.com/Shopify/eslint-plugin-shopify/compare/v26.0.0...v26.1.0
|
826 | [26.0.0]: https://github.com/Shopify/eslint-plugin-shopify/compare/v25.1.0...v26.0.0
|
827 | [25.1.0]: https://github.com/Shopify/eslint-plugin-shopify/compare/v25.0.1...v25.1.0
|
828 | [25.0.1]: https://github.com/Shopify/eslint-plugin-shopify/compare/v25.0.0...v25.0.1
|
829 | [25.0.0]: https://github.com/Shopify/eslint-plugin-shopify/compare/v24.2.0...v25.0.0
|
830 | [24.2.0]: https://github.com/Shopify/eslint-plugin-shopify/compare/v24.1.1...v24.2.0
|
831 | [24.1.1]: https://github.com/Shopify/eslint-plugin-shopify/compare/v24.1.0...v24.1.1
|
832 | [24.1.0]: https://github.com/Shopify/eslint-plugin-shopify/compare/v24.0.0...v24.1.0
|
833 | [24.0.0]: https://github.com/Shopify/eslint-plugin-shopify/compare/v23.1.0...v24.0.0
|
834 | [23.1.0]: https://github.com/Shopify/eslint-plugin-shopify/compare/v23.0.0...v23.1.0
|
835 | [23.0.0]: https://github.com/Shopify/eslint-plugin-shopify/compare/v22.1.0...v23.0.0
|
836 | [22.1.0]: https://github.com/Shopify/eslint-plugin-shopify/compare/v22.0.0...v22.1.0
|
837 | [22.0.0]: https://github.com/Shopify/eslint-plugin-shopify/compare/v21.0.1...v22.0.0
|
838 | [21.0.1]: https://github.com/Shopify/eslint-plugin-shopify/compare/v21.0.0...v21.0.1
|
839 | [21.0.0]: https://github.com/Shopify/eslint-plugin-shopify/compare/v20.0.0...v21.0.0
|
840 | [20.0.0]: https://github.com/Shopify/eslint-plugin-shopify/compare/v19.0.1...v20.0.0
|
841 | [19.0.1]: https://github.com/Shopify/eslint-plugin-shopify/compare/v19.0.0...v19.0.1
|
842 | [19.0.0]: https://github.com/Shopify/eslint-plugin-shopify/compare/v18.3.1...v19.0.0
|
843 | [18.3.1]: https://github.com/Shopify/eslint-plugin-shopify/compare/v18.3.0...v18.3.1
|
844 | [18.3.0]: https://github.com/Shopify/eslint-plugin-shopify/compare/v18.2.0...v18.3.0
|
845 | [18.2.0]: https://github.com/Shopify/eslint-plugin-shopify/compare/v18.1.0...v18.2.0
|
846 | [18.1.0]: https://github.com/Shopify/eslint-plugin-shopify/compare/v18.0.0...v18.1.0
|
847 | [18.0.0]: https://github.com/Shopify/eslint-plugin-shopify/compare/v17.2.1...v18.0.0
|
848 | [17.2.1]: https://github.com/Shopify/eslint-plugin-shopify/compare/v17.2.0...v17.2.1
|
849 |
|
\ | No newline at end of file |