1 | # Changelog
|
2 |
|
3 |
|
4 |
|
5 | ## [24.0.0] - 2018-08-30
|
6 |
|
7 | ### Fixed
|
8 | * `plugin:shopify/flow` now disables rules checked by Flow's static analyzer. ([#135](https://github.com/Shopify/eslint-plugin-shopify/pull/135))
|
9 | * `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))
|
10 | * Updated `strict-component-boundaries` to exclude fixture imports. ([#117](https://github.com/Shopify/eslint-plugin-shopify/pull/117))
|
11 | * Updated `strict-component-boundaries` to exclude imports from node_modules. ([#140](https://github.com/Shopify/eslint-plugin-shopify/pull/140))
|
12 | * Updated `jest/no-vague-titles` to support `.each` syntax. ([#148](https://github.com/Shopify/eslint-plugin-shopify/pull/148))
|
13 |
|
14 | ### Changed
|
15 | * Namespaced `prefer-pascal-case-enums` and `prefer-singular-enums` under `typescript`. ([#141](https://github.com/Shopify/eslint-plugin-shopify/pull/141))
|
16 | * **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))
|
17 |
|
18 | ### Added
|
19 | * `shopify/prefer-singular-enums` ([#132](https://github.com/Shopify/eslint-plugin-shopify/pull/132))
|
20 | * `shopify/react-no-multiple-render-methods` ([#134](https://github.com/Shopify/eslint-plugin-shopify/pull/134))
|
21 |
|
22 | * New eslint rules and plugins rules: ([#151](https://github.com/Shopify/eslint-plugin-shopify/pull/151))
|
23 | * [`max-classes-per-file`](https://eslint.org/docs/rules/max-classes-per-file) (disabled)
|
24 | * [`no-self-assign`](https://eslint.org/docs/rules/no-self-assign)
|
25 | * [`require-unicode-regexp`](https://eslint.org/docs/rules/require-unicode-regexp) (disabled)
|
26 | * [`no-async-promise-executor`](https://eslint.org/docs/rules/no-async-promise-executor)
|
27 | * [`no-misleading-character-class`](https://eslint.org/docs/rules/no-misleading-character-class)
|
28 | * [`require-atomic-updates`](https://eslint.org/docs/rules/require-atomic-updates)
|
29 | * [`lines-between-class-members`](https://eslint.org/docs/rules/lines-between-class-members)
|
30 | * [`max-lines-per-function`](https://eslint.org/docs/rules/max-lines-per-function) (disabled)
|
31 | * [`multiline-comment-style`](https://eslint.org/docs/rules/multiline-comment-style) (disabled)
|
32 | * [`prefer-object-spread`](https://eslint.org/docs/rules/prefer-object-spread)
|
33 | * [`import/no-self-import`](https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-self-import.md)
|
34 | * [`import/no-cycle`](https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-cycle.md)
|
35 | * [`import/no-relative-parent-imports`](https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-relative-parent-imports.md)
|
36 | * [`jest/expect-expect`](https://github.com/jest-community/eslint-plugin-jest/blob/master/docs/rules/expect-expect.md)
|
37 | * [`jest/no-jasmine-globals`](https://github.com/jest-community/eslint-plugin-jest/blob/master/docs/rules/no-jasmine-globals.md)
|
38 | * [`jest/prefer-inline-snapshots`](https://github.com/jest-community/eslint-plugin-jest/blob/master/docs/rules/prefer-inline-snapshots.md) (disabled)
|
39 | * [`jest/no-test-return-statement`](https://github.com/jest-community/eslint-plugin-jest/blob/master/docs/rules/no-test-return-statement.md)
|
40 | * [`node/prefer-global/buffer`](https://github.com/mysticatea/eslint-plugin-node/blob/master/docs/rules/prefer-global/buffer.md)
|
41 | * [`node/prefer-global/console`](https://github.com/mysticatea/eslint-plugin-node/blob/master/docs/rules/prefer-global/console.md)
|
42 | * [`node/prefer-global/process`](https://github.com/mysticatea/eslint-plugin-node/blob/master/docs/rules/prefer-global/process.md0)
|
43 | * [`node/prefer-global/url-search-params`](https://github.com/mysticatea/eslint-plugin-node/blob/master/lib/rules/prefer-global/url-search-params.js)
|
44 | * [`node/prefer-global/url`](https://github.com/mysticatea/eslint-plugin-node/blob/master/docs/rules/prefer-global/url.md)
|
45 | * [`node/no-unsupported-features/es-builtins`](https://github.com/mysticatea/eslint-plugin-node/blob/master/docs/rules/no-unsupported-features/es-builtins.md) (disabled)
|
46 | * [`node/no-unsupported-features/es-syntax`](https://github.com/mysticatea/eslint-plugin-node/blob/master/docs/rules/no-unsupported-features/es-syntax.md) (disabled)
|
47 | * [`node/no-unsupported-features/node-builtins`](https://github.com/mysticatea/eslint-plugin-node/blob/master/docs/rules/no-unsupported-features/node-builtins.md)
|
48 | * [`react/no-unsafe`](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/no-unsafe.md)
|
49 | * [`react/jsx-props-no-multi-spaces`](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-props-no-multi-spaces.md)
|
50 | * [`typescript/no-inferrable-types`](https://github.com/nzakas/eslint-plugin-typescript/blob/master/docs/rules/no-inferrable-types.md)
|
51 | * [`typescript/no-var-requires`](https://github.com/nzakas/eslint-plugin-typescript/blob/master/docs/rules/no-var-requires.md)
|
52 |
|
53 |
|
54 | ## [23.1.0] - 2018-08-02
|
55 |
|
56 | ### Fixed
|
57 | * 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))
|
58 | * 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))
|
59 |
|
60 | ### Changed
|
61 | * Included `all` as a vague term for `no-vague-titles` ([#114](https://github.com/Shopify/eslint-plugin-shopify/pull/114))
|
62 |
|
63 | ## [23.0.0] - 2018-07-16
|
64 | * **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.
|
65 |
|
66 | ### Added
|
67 | * `shopify/jsx-prefer-fragment-wrappers` ([#94](https://github.com/Shopify/eslint-plugin-shopify/pull/94))
|
68 | * `shopify/jest/no-vague-titles` ([#93](https://github.com/Shopify/eslint-plugin-shopify/pull/93))
|
69 | * `shopify/strict-component-boundaries` ([#98](https://github.com/Shopify/eslint-plugin-shopify/pull/98))
|
70 |
|
71 | ### Changed
|
72 | * **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))
|
73 | * **Breaking** Updated `typescript-eslint-parser` to support `typescript@2.9.1` ([#102](https://github.com/Shopify/eslint-plugin-shopify/pull/102))
|
74 |
|
75 | ## [22.1.0] - 2018-06-08
|
76 |
|
77 | ### Fixed
|
78 | * Updated `eslint-plugin-sort-class-members` dependency to version 1.3.1 in order to support node 10.
|
79 |
|
80 | ### Added
|
81 | * `shopify/prefer-pascal-case-enums` ([#96](https://github.com/Shopify/eslint-plugin-shopify/pull/96))
|
82 | * `shopify/react-prefer-private-members` ([#95](https://github.com/Shopify/eslint-plugin-shopify/pull/95))
|
83 |
|
84 | ## [22.0.0]
|
85 | * Updated dependencies
|
86 | * Added support for TypeScript 2.8
|
87 |
|
88 | ## [21.0.1] - 2018-04-25
|
89 | * Fixed the publish config for the package.
|
90 |
|
91 | ## [21.0.0] - 2018-04-25
|
92 |
|
93 | ### Added
|
94 | * `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.
|
95 |
|
96 | ### Removed
|
97 | * **Breaking:** turned off four rules that previously triggered errors in all cases:
|
98 | * `shopify/react-type-state` (TypeScript now addresses the issue this rule was meant to catch)
|
99 | * `promise/always-return`
|
100 | * `react/no-did-mount-set-state`
|
101 | * `no-undefined`
|
102 | * **Breaking:** turned off two rules in specific plugins:
|
103 | * `babel/no-invalid-this` (turned off for the `typescript` configs as TypeScript has better mechanisms for unsuring a valid `this` is used)
|
104 | * `no-process-env` (turned off for the `webpack` and `node` configs as both targets can benefit from use of `process.env`)
|
105 |
|
106 | ### Fixed
|
107 | * Fixed an issue where various rules were not correctly resolving paths in `node_modules`.
|
108 |
|
109 | ## [20.0.0] - 2018-03-15
|
110 | * **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)
|
111 | * 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.
|
112 | * Dependencies are now strictly versioned for tighter control over the exact rules the plugin enforces.
|
113 |
|
114 | | Package | old | new |
|
115 | | ------- | --- | --- |
|
116 | | `eslint-plugin-ava` | `^4.4.0` | `4.5.1` |
|
117 | | `eslint-plugin-import` | `^2.8.0` | `2.9.0` |
|
118 | | `eslint-plugin-jest` | `^21.5.0` | `21.14.1` |
|
119 | | `eslint-plugin-lodash` | `^2.5.0` | `2.6.1` |
|
120 | | `eslint-plugin-node` | `^5.2.1` | `6.0.1` |
|
121 | | `eslint-plugin-prettier` | `^2.4.0` | `2.6.0` |
|
122 | | `eslint-plugin-promise` | `^3.6.0` | `3.7.0` |
|
123 | | `eslint-plugin-react` | `^7.5.1` | `7.7.0` |
|
124 | | `eslint-plugin-typescript` | `^0.8.1` | `0.10.0` |
|
125 |
|
126 | * Added rules:
|
127 | - [`react/forbid-dom-props`](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/forbid-dom-props.md) (disabled)
|
128 | - [`react/jsx-child-element-spacing`](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-child-element-spacing.md) **error**
|
129 | - [`react/jsx-max-depth`](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-max-depth.md) (disabled)
|
130 | - [`react/jsx-sort-default-props`](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-sort-default-props.md) (disabled)
|
131 | - [`react/no-this-in-sfc`](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/no-this-in-sfc.md) **error**
|
132 | - [`import/group-exports`](https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/group-exports.md) (disabled)
|
133 | - [`import/no-self-import`](https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-self-import.md) **error**
|
134 | - [`import/no-default-export`](https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-default-export.md) (disabled)
|
135 | - [`import/no-useless-path-segments`](https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-useless-path-segments.md) **error**
|
136 | - [`jest/prefer-expect-assertions`](https://github.com/jest-community/eslint-plugin-jest/blob/master/docs/rules/prefer-expect-assertions.md) (disabled)
|
137 | - [`jest/valid-expect-in-promise`](https://github.com/jest-community/eslint-plugin-jest/blob/master/docs/rules/valid-expect-in-promise.md) **error**
|
138 | - [`jest/valid-describe`](https://github.com/jest-community/eslint-plugin-jest/blob/master/docs/rules/valid-describe.md) **error**
|
139 | - [`jest/consistent-test-it`](https://github.com/jest-community/eslint-plugin-jest/blob/master/docs/rules/consistent-test-it.md) **error**
|
140 | - [`jest/no-test-prefixes`](https://github.com/jest-community/eslint-plugin-jest/blob/master/docs/rules/no-test-prefixes.md) **error**
|
141 | - [`jest/lowercase-name`](https://github.com/jest-community/eslint-plugin-jest/blob/master/docs/rules/lowercase-name.md) (disabled)
|
142 | - [`jest/no-jest-import`](https://github.com/jest-community/eslint-plugin-jest/blob/master/docs/rules/no-jest-import.md) **error**
|
143 | - [`promise/valid-params`](https://github.com/xjamundx/eslint-plugin-promise/blob/master/docs/rules/valid-params.md) **error**
|
144 | - [`promise/no-new-statics`](https://github.com/xjamundx/eslint-plugin-promise/blob/master/docs/rules/no-new-statics.md) (disabled)
|
145 | - [`typescript/explicit-function-return-type`](https://github.com/nzakas/eslint-plugin-typescript/blob/master/docs/rules/explicit-function-return-type.md) (disabled)
|
146 | - [`typescript/no-non-null-assertion`](https://github.com/nzakas/eslint-plugin-typescript/blob/master/docs/rules/no-non-null-assertion.md) **error**
|
147 | * 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.
|
148 | * Chore: updated CircleCI from v1 to v2.
|
149 |
|
150 | ## [19.0.1] - 2018-03-12
|
151 |
|
152 | ### Fixed
|
153 | * `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.
|
154 |
|
155 | ## [19.0.0] - 2018-01-17
|
156 |
|
157 | ### Added
|
158 | * `shopify/jest` config with [eslint-plugin-jest](https://www.npmjs.com/package/eslint-plugin-jest) rules:
|
159 | - `jest/no-disabled-tests` (disabled)
|
160 | - `jest/no-focused-tests`
|
161 | - `jest/no-identical-title`
|
162 | - `jest/no-large-snapshots` (limited to 12 lines)
|
163 | - `jest/prefer-to-have-length`
|
164 | - `jest/prefer-to-be-null`
|
165 | - `jest/prefer-to-be-undefined`
|
166 | - `jest/valid-expect`
|
167 | * Added `shopify/webpack` config
|
168 | * Added `shopify/polaris` config
|
169 | * Added `shopify/webpack/no-unnamed-dynamic-imports` rule
|
170 | * Added `shopify/prefer-module-scope-constants` rule
|
171 | * Added `shopify/jsx-no-complex-expressions` rule
|
172 | * Added `shopify/jsx-no-hardcoded-content` rule
|
173 | * Added `shopify/polaris-no-bare-stack-item` rule
|
174 | * Added `shopify/polaris-prefer-sectioned-prop` rule
|
175 | * Added `shopify/react-initialize-state` rule
|
176 | * Added `shopify/react-type-state` rule
|
177 | * Added [`implicit-arrow-linebreak`][] rule
|
178 | * Added [`lines-around-comment`][] rule (as a [special
|
179 | rule][lines-around-comment-special]).
|
180 | * Added [`no-unexpected-multiline`][] rule (as a [special rule][no-unexpected-multiline-special]).
|
181 | * Added [`flowtype/no-flow-fix-me-comments`](https://github.com/gajus/eslint-plugin-flowtype/blob/677e55c6a0f1dd355268a0f19618cd2696424c53/.README/rules/no-flow-fix-me-comments.md)
|
182 | * Added [`react/jsx-one-expression-per-line`][]
|
183 | * Added [`react/destructuring-assignment`][]
|
184 | * Added [`react/no-access-state-in-setstate`][]
|
185 | * Added [`react/button-has-type`][]
|
186 | * Added [`react/jsx-curly-brace-presence`][]
|
187 | * Added [`typescript/member-naming`](https://github.com/nzakas/eslint-plugin-typescript/tree/master/docs/rules/member-naming.md)
|
188 | * Added [`typescript/no-array-constructor`](https://github.com/nzakas/eslint-plugin-typescript/tree/master/docs/rules/no-array-constructor.md)
|
189 | * Added `yarn prettier` script (prettifies source files)
|
190 |
|
191 | [`implicit-arrow-linebreak`]: https://eslint.org/docs/rules/implicit-arrow-linebreak
|
192 | [lines-around-comment-special]: https://github.com/prettier/eslint-config-prettier/blob/5399175c37466747aae9d407021dffec2c169c8b/README.md#lines-around-comment
|
193 | [`lines-around-comment`]: https://eslint.org/docs/rules/lines-around-comment
|
194 | [no-unexpected-multiline-special]: https://github.com/prettier/eslint-config-prettier/blob/5399175c37466747aae9d407021dffec2c169c8b/README.md#no-unexpected-multiline
|
195 | [`no-unexpected-multiline`]: https://eslint.org/docs/rules/no-unexpected-multiline
|
196 | [`react/jsx-one-expression-per-line`]: https://github.com/yannickcr/eslint-plugin-react/tree/master/docs/rules/jsx-one-expression-per-line.md
|
197 | [`react/destructuring-assignment`]: https://github.com/yannickcr/eslint-plugin-react/tree/master/docs/rules/destructuring-assignment.md
|
198 | [`react/no-access-state-in-setstate`]: https://github.com/yannickcr/eslint-plugin-react/tree/master/docs/rules/no-access-state-in-setstate.md
|
199 | [`react/button-has-type`]: https://github.com/yannickcr/eslint-plugin-react/tree/master/docs/rules/button-has-type.md
|
200 | [`react/jsx-curly-brace-presence`]: https://github.com/yannickcr/eslint-plugin-react/tree/master/docs/rules/jsx-curly-brace-presence.md
|
201 |
|
202 | ### Changed
|
203 | * Updated dependencies to their latest versions (full details in [#63](https://github.com/Shopify/eslint-plugin-shopify/pull/63))
|
204 | * **Breaking:** `node.js` minimum supported node version update to `8.9.4` (LTS).
|
205 | * **Breaking:** Changed `eslint-config-shopify` codebase to `trailingComma: 'all'` and drop support for Node.js 6
|
206 | * **Breaking:** Updated prettier to 1.9.2, introducing a change in function parens style (set to `arrowParens: 'always'`):
|
207 |
|
208 | ```js
|
209 | // Before
|
210 | const foo = myArray.map(foo => {});
|
211 |
|
212 | // After
|
213 | const foo = myArray.map((foo) => {});
|
214 | ```
|
215 |
|
216 | #### ⚠️ Upgrade path
|
217 |
|
218 | Your project config files (`package.json`, `.prettierrc`, `.eslintrc`…)
|
219 | may need to be updated like so:
|
220 |
|
221 | ```diff
|
222 | "singleQuote": true,
|
223 | "bracketSpacing": false,
|
224 | "trailingComma": "all",
|
225 | + "arrowParens": "always"
|
226 | ```
|
227 | * Prettified source files using the new config
|
228 |
|
229 | ## [18.3.1] - 2017-12-21
|
230 |
|
231 | ### Changed
|
232 | * Changed `eslint-config-shopify` codebase to follow es5 trailingComma [[#61](https://github.com/Shopify/eslint-plugin-shopify/pull/61)]
|
233 |
|
234 | ## [18.3.0] - 2017-12-18
|
235 |
|
236 | ### Added
|
237 | * Added `shopify/no-debugger`, which behaves the same as ESLint's `no-debugger` but without a fixer.
|
238 |
|
239 | ## [18.2.0] - 2017-12-04
|
240 | ### Added
|
241 | * Added a `typescript-prettier` config to run prettier against typescript projects.
|
242 |
|
243 | ## [18.1.0] - 2017-12-01
|
244 |
|
245 | ### Added
|
246 | * Added a `typescript` and `typescript-react` config [[#54](https://github.com/Shopify/eslint-plugin-shopify/pull/54)]
|
247 |
|
248 | ### Changed
|
249 | * `plugin:shopify/prettier` will now enforce trailing commas in function parameter calls [[#55](https://github.com/Shopify/eslint-plugin-shopify/pull/55)]
|
250 | * `comma-dangle` will now enforce multi-line function parameters [[#55](https://github.com/Shopify/eslint-plugin-shopify/pull/55)]
|
251 | * 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)]
|
252 |
|
253 | Example (`package.json`):
|
254 | ```
|
255 | "eslintConfig": {
|
256 | "extends": [
|
257 | "plugin:shopify/esnext",
|
258 | "plugin:shopify/prettier"
|
259 | ]
|
260 | }
|
261 | ```
|
262 |
|
263 | ## [18.0.0] - 2017-10-31
|
264 | ### Changed
|
265 | * Turned off `class-methods-use-this`
|
266 |
|
267 | ## [17.2.1] - 2017-10-30
|
268 | ### Changed
|
269 | * Turned off `babel/semi` rule in prettier config
|
270 |
|
271 | ## [17.2.0] - 2017-10-25
|
272 | ### Added
|
273 | * Added a prettier config [[#46](https://github.com/Shopify/eslint-plugin-shopify/pull/46)]
|
274 |
|
275 | Example:
|
276 | ```
|
277 | "eslintConfig": {
|
278 | "extends": [
|
279 | "plugin:shopify/prettier"
|
280 | ]
|
281 | }
|
282 | ```
|
283 |
|
284 | ### Changed
|
285 | * Replace all `warn` with `error` [[#48](https://github.com/Shopify/eslint-plugin-shopify/pull/48)]
|
286 | * `space-before-function-paren` now uses `asyncArrow` option (eg. `async () => {}`) [[#43](https://github.com/Shopify/eslint-plugin-shopify/pull/43)]
|
287 | * Enable `padding-line-between-statements` for directives. [[#44](https://github.com/Shopify/eslint-plugin-shopify/pull/44)]
|
288 |
|
289 | ### Removed
|
290 | * `lines-around-directive` was deprecated in ESLint `v4.0.0`. [[#44](https://github.com/Shopify/eslint-plugin-shopify/pull/44)]
|
291 |
|
292 |
|
293 | ## [17.1.0] - 2017-09-19
|
294 |
|
295 | ### Added
|
296 | * New rules ([#41](https://github.com/Shopify/eslint-plugin-shopify/pull/41)):
|
297 | - `import/no-anonymous-default-export`
|
298 | - `jsx-a11y/anchor-is-valid`
|
299 | - `no-buffer-constructor`
|
300 | - `node/no-extraneous-import` (disabled)
|
301 | - `node/no-extraneous-require`
|
302 | - `for-direction`
|
303 | - `getter-return`
|
304 | - `react/boolean-prop-naming` (disabled)
|
305 | - `react/default-props-match-prop-types`
|
306 | - `react/no-redundant-should-component-update`
|
307 | - `react/no-typos`
|
308 | - `react/no-unused-state`
|
309 | - `react/jsx-closing-tag-location`
|
310 | - `array-bracket-newline` (disabled)
|
311 | - `array-element-newline` (disabled)
|
312 | - `function-paren-newline`
|
313 | - `padding-line-between-statements` (disabled)
|
314 | - `semi-style`
|
315 | - `switch-colon-spacing`
|
316 |
|
317 |
|
318 | ### Changed
|
319 | - Updated dependencies ([#41](https://github.com/Shopify/eslint-plugin-shopify/pull/41)):
|
320 | - `eslint`
|
321 | - `babel-eslint`
|
322 | - `eslint-plugin-import`
|
323 | - `eslint-plugin-jsx-a11y`
|
324 | - `eslint-plugin-node`
|
325 | - `eslint-plugin-react`
|
326 | - `jquery-dollar-sign-reference` no longer flags assignments from `await` expressions
|
327 |
|
328 | ### Removed
|
329 | - `jsx-a11y/href-no-hash` replaced with `jsx-a11y/anchor-is-valid`
|
330 |
|
331 | ## [17.0.0] - 2017-08-17
|
332 | ### Changed
|
333 | - `eslint` upgrade to `4.3.0`
|
334 | - `node.js` minimum supported node version update to `6.11.1` (LTS).
|
335 | - Update dependencies:
|
336 | - `eslint-plugin-ava`: `^4.2.0` → `^4.2.1`.
|
337 | - `eslint-plugin-babel`: `^4.1.1` → `^4.1.2`.
|
338 | - `eslint-plugin-lodash`: `^2.4.2` → `^2.4.4`.
|
339 | - `eslint-plugin-mocha`: `^4.9.0` → `^4.11.0`.
|
340 | - `eslint-plugin-node`: `^4.2.2` → `^4.2.3`.
|
341 | - `eslint-plugin-react`: `^7.0.0` → `^7.0.1`.
|
342 |
|
343 |
|
344 | ## [16.0.1] - 2017-05-29
|
345 | ### Changed
|
346 | - Turned off [`prefer-destructuring`](http://eslint.org/docs/rules/prefer-destructuring) ([#30](https://github.com/Shopify/eslint-plugin-shopify/pull/30))
|
347 |
|
348 | ## [16.0.0] - 2017-05-16
|
349 | ### Added
|
350 | - New rule: [`babel/semi`](https://github.com/babel/eslint-plugin-babel/releases/tag/v4.1.0)
|
351 | - New rule: [`flowtype/no-types-missing-file-annotation`](https://github.com/gajus/eslint-plugin-flowtype#eslint-plugin-flowtype-rules-no-types-missing-file-annotation)
|
352 | - New rule: [`jsx-a11y/accessible-emoji`](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/accessible-emoji.md)
|
353 | - New rule: [`jsx-a11y/alt-text`](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/alt-text.md)
|
354 | - 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)
|
355 | - New rule: [`jsx-a11y/iframe-has-title`](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/iframe-has-title.md)
|
356 | - New rule: [`jsx-a11y/interactive-supports-focus`](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/interactive-supports-focus.md)
|
357 | - New rule: [`jsx-a11y/media-has-caption`](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/media-has-caption.md) (disabled)
|
358 | - New rule: [`jsx-a11y/no-autofocus`](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/no-autofocus.md)
|
359 | - New rule: [`jsx-a11y/no-distracting-elements`](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/no-distracting-elements.md)
|
360 | - 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)
|
361 | - 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)
|
362 | - 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)
|
363 | - New rule: [`jsx-a11y/no-noninteractive-tabindex`](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/no-noninteractive-tabindex.md)
|
364 | - New rule: [`jsx-a11y/no-redundant-roles`](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/no-redundant-roles.md)
|
365 | - New rule: [`lodash/prefer-some`](https://github.com/wix/eslint-plugin-lodash/blob/master/docs/rules/prefer-some.md)
|
366 | - New rule: [`react/forbid-elements`](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/forbid-elements.md) (disabled)
|
367 | - New rule: [`react/forbid-foreign-prop-types`](https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/forbid-foreign-prop-types.md)
|
368 | - 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)
|
369 | - 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)
|
370 | - New rule: [`no-await-in-loop`](http://eslint.org/docs/rules/no-await-in-loop)
|
371 | - New rule: [`prefer-promise-reject-errors`](http://eslint.org/docs/rules/prefer-promise-reject-errors)
|
372 | - New rule: [`require-await`](http://eslint.org/docs/rules/require-await)
|
373 | - New rule: [`prefer-destructuring`](http://eslint.org/docs/rules/prefer-destructuring)
|
374 | - New rule: [`no-compare-neg-zero`](http://eslint.org/docs/rules/no-compare-neg-zero)
|
375 | - New rule: [`capitalized-comments`](http://eslint.org/docs/rules/capitalized-comments) (disabled)
|
376 | - New rule: [`no-multi-assign`](http://eslint.org/docs/rules/no-multi-assign)
|
377 | - New rule: [`nonblock-statement-body-position`](http://eslint.org/docs/rules/nonblock-statement-body-position) (disabled)
|
378 | - New rule: [`template-tag-spacing`](http://eslint.org/docs/rules/template-tag-spacing)
|
379 |
|
380 | ### Removed
|
381 | - Deprecated: [`babel/no-await-in-loop`](https://github.com/babel/eslint-plugin-babel/releases/tag/v4.1.1)
|
382 | - Deprecated: [`jsx-a11y/img-has-alt`](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/CHANGELOG.md#500--2017-05-05)
|
383 | - Deprecated: [`jsx-a11y/onclick-has-focus`](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/CHANGELOG.md#500--2017-05-05)
|
384 | - Deprecated: [`jsx-a11y/onclick-has-role`](https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/CHANGELOG.md#500--2017-05-05)
|
385 | - Deprecated: [`jsx-a11y/jsx-space-before-closing`](https://github.com/yannickcr/eslint-plugin-react/blob/master/CHANGELOG.md#700---2017-05-06)
|
386 |
|
387 |
|
388 | ## [15.2.0] - 2017-03-06
|
389 | ### Changed
|
390 | - `eslint` upgrade to `3.17.x`
|
391 |
|
392 | ## [15.1.2] - 2017-02-23
|
393 | ### Fixed
|
394 | - `jquery-dollar-sign-reference` now checks assignments from `LogicalExpression` / `BinaryExpression`
|
395 |
|
396 | ## [15.1.1] - 2017-01-17
|
397 | ### Added
|
398 | - Added `eslint-index` package ([#4](https://github.com/Shopify/eslint-plugin-shopify/pull/4))
|
399 | - Added `rules-status` and `rules-omitted` scripts ([#4](https://github.com/Shopify/eslint-plugin-shopify/pull/4))
|
400 | - Added new `eslint-plugin-react` rules: `no-array-index-key`, `require-default-props` ([#4](https://github.com/Shopify/eslint-plugin-shopify/pull/4))
|
401 | - Added new `eslint-plugin-lodash` rules: `import-scope` ([#4](https://github.com/Shopify/eslint-plugin-shopify/pull/4))
|
402 | - 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))
|
403 |
|
404 | ### Changed
|
405 | - 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))
|
406 | - Updated `react/prefer-stateless-function` rule to include `ignorePureComponents` flag ([#4](https://github.com/Shopify/eslint-plugin-shopify/pull/4))
|
407 |
|
408 | ### Removed
|
409 | - Removed `eslint-find-rules` package ([#4](https://github.com/Shopify/eslint-plugin-shopify/pull/4))
|
410 |
|
411 | # Pre-15.1.1 Changelog
|
412 |
|
413 | Changes were originally tracked in Shopify's [JavaScript monorepo](https://github.com/Shopify/javascript/blob/f10bf7ddbdae07370cfe7c94617c450257731552/CHANGELOG.md).
|
414 |
|
415 | [Unreleased]: https://github.com/Shopify/eslint-plugin-shopify/compare/v24.0.0...HEAD
|
416 | [24.0.0]: https://github.com/Shopify/eslint-plugin-shopify/compare/v23.1.0...v24.0.0
|
417 | [23.1.0]: https://github.com/Shopify/eslint-plugin-shopify/compare/v23.0.0...v23.1.0
|
418 | [23.0.0]: https://github.com/Shopify/eslint-plugin-shopify/compare/v22.1.0...v23.0.0
|
419 | [22.1.0]: https://github.com/Shopify/eslint-plugin-shopify/compare/v22.0.0...v22.1.0
|
420 | [22.0.0]: https://github.com/Shopify/eslint-plugin-shopify/compare/v21.0.1...v22.0.0
|
421 | [21.0.1]: https://github.com/Shopify/eslint-plugin-shopify/compare/v21.0.0...v21.0.1
|
422 | [21.0.0]: https://github.com/Shopify/eslint-plugin-shopify/compare/v20.0.0...v21.0.0
|
423 | [20.0.0]: https://github.com/Shopify/eslint-plugin-shopify/compare/v19.0.1...v20.0.0
|
424 | [19.0.1]: https://github.com/Shopify/eslint-plugin-shopify/compare/v19.0.0...v19.0.1
|
425 | [19.0.0]: https://github.com/Shopify/eslint-plugin-shopify/compare/v18.3.1...v19.0.0
|
426 | [18.3.1]: https://github.com/Shopify/eslint-plugin-shopify/compare/v18.3.0...v18.3.1
|
427 | [18.3.0]: https://github.com/Shopify/eslint-plugin-shopify/compare/v18.2.0...v18.3.0
|
428 | [18.2.0]: https://github.com/Shopify/eslint-plugin-shopify/compare/v18.1.0...v18.2.0
|
429 | [18.1.0]: https://github.com/Shopify/eslint-plugin-shopify/compare/v18.0.0...v18.1.0
|
430 | [18.0.0]: https://github.com/Shopify/eslint-plugin-shopify/compare/v17.2.1...v18.0.0
|
431 | [17.2.1]: https://github.com/Shopify/eslint-plugin-shopify/compare/v17.2.0...v17.2.1
|
432 |
|
\ | No newline at end of file |